Команди RPG Maker VX/Задати маршрут
Задати маршрут (анг. Set Move Route) — команда подій в RPG Maker VX, яка дозволяє встановити маршрут, по якому буде рухатися подія або грав_чиня.
Це п'ята команда на другій сторінці.
Маршрут складається з окремих команд маршруту. Більшість команд маршруту стосується руху (кроки в різні сторони, зміна напрямку, тощо), але деякі також впливають на зовнішній вигляд (зміна графіки, режиму змішування кольорів, тощо) і синхронізації руху з іншими подіями (перемикачі, аудіо).
Налаштування[ ]
В лівій частині вікна показуються такі налаштування:
- зліва зверху вказується, для кого встановлюється маршрут:
- Грав_чиня (анг. Player),
- Ця подія (анг. This event),
- або можна вибрати потрібну подію зі списку;
- в центрі зліва є список вибраних команд маршруту,
- зліва знизу є пункт Опції (анг. Options):
- Повторювати дію (анг. Repeat Action) — якщо вибрано цей пункт, маршрут встановлюється як постійний, і команди маршруту повторюються так, як для маршрутів, вказаних в налаштуваннях; ця опція несумісна з чеканням на закінчення,
- Пропускати неможливі рухи (анг. Skip If Cannot Move) — якщо вибрати цей пункт і якийсь з кроків заблокований (іншою подією або об'єктом на карті), цей крок буде пропущено; якщо не вибрати, то подія чекатиме, поки шлях не буде розблокований;
- Чекати на закінчення (анг. Wait for Completion) — якщо вибрати цей пункт, виконання наступних команд буде призупинене до кінця маршрутів (як при використанні команди Пауза).
Справа знаходиться список доступних дій. При натисканні на команду вона додається в список команд (якщо в списку команд вибрана якась команда, нову команду буде додано перед нею). Щоб видалити команду, треба натиснути на неї мишкою, а потім натиснути на клавішу Delete на клавіатурі.
Всі команди розділено на три стовпчика.
В першому стовпчику доступні такі команди:
- Крок вниз (анг. Move Down),
- Крок вліво (анг. Move Left),
- Крок вправо (анг. Move Right),
- Крок вверх (анг. Move Up),
- Крок вниз і вліво (анг. Move Lower Left),
- Крок вниз і вправо (анг. Move Lower Right),
- Крок вверх і вліво (анг. Move Upper Left),
- Крок вверх і вправо (анг. Move Upper Right),
- Випадковий крок (анг. Move at Random),
- Крок до грав_чині (анг. Move toward Player),
- Крок від грав_чині (анг. Move away from Player),
- 1 крок вперед (анг. 1 Step Forward),
- 1 крок назад (анг. 1 Step Backward),
- Стрибок... (анг. Jump...) — вказує, на скільки пікселів по вертикалі подія піднімається відносно своєї звичайної позиції,
- Пауза... (анг. Wait...) — встановлює чекання в кадрах (1/60 долях секунди) перед виконанням наступної команди маршруту.
В другому — такі:
- Погляд вниз (анг. Turn Down),
- Погляд вліво (анг. Turn Left),
- Погляд вправо (анг. Turn Right),
- Погляд вверх (анг. Turn Up),
- Поворот на 90° вправо (анг. Turn 90° Right),
- Поворот на 90° вліво (анг. Turn 90° Left),
- Поворот на 180° (анг. Turn 180°),
- Поворот на 90° випадково (анг. Turn 90° Right or Left),
- Погляд випадково (анг. Turn at Random),
- Погляд на грав_чиню (анг. Turn toward Player),
- Погляд від грав_чині (анг. Turn away from Player),
- Перемикач УВ (анг. Switch ON...),
- Перемикач ВИМ (анг. Switch OFF...),
- Змінити швидкість... (анг. Change Speed...),
- Змінити частоту... (анг. Change Frequency...).
В третьому такі:
- Анімацію руху УВімкнути (анг. Walking Animation ON) — вмикає анімацію під час руху поміж клітиними,
- Анімацію руху ВИМкнути (анг. Walking Animation OFF) — вимикає анімацію для руху поміж клітинами,
- Анімацію кроків УВімкнути (анг. Stepping Animation ON) — вмикає анімацію для подій, які стоять,
- Анімацію кроків ВИМкнути (анг. Stepping Animation OFF) — вимикає анімацію для подій, які стоять,
- Фікасцію напрямку УВімкнути (анг. Direction Fix ON) — робить так, щоб подія не міняла напрямок під час руху або взаємодії з грав_чинею,
- Фікасцію напрямку ВИМкнути (анг. Direction Fix OFF),
- Проходимість УВімкнути (анг. Through ON) — робить так, щоб подія могла пересуватися через заблоковані клітини,
- Проходимість ВИМкнути (анг. Through OFF),
- Невидимість УВімкнути (анг. Transparent ON),
- Невидимість ВИМкнути (анг. Transparent OFF),
- Змінити графіку... (анг. Change Image...) — міняє графіку події (але не дозволяє змінити конкретний кадр або напрямок),
- Змінити непрозорість... (анг. Change Opacity...) — вказує, наскільки прозора подія, від 0 о 255,
- Змінити режим змішування... (анг. Change Blend Mode...) — змінює режим змішування кольорів для графіки події:
- Норма (анг. Normal) — фон ніяк не видно, графіка ставиться над фоном,
- Додавання (анг. Add) — компоненти кольорів графіки додаються до компонентів кольорів фону (таким чином, графіка події освітлює фон під ним),
- Видаленні (анг. Sub) — компоненти кольорів віднімаються від компонентів кольорів фону (таким чином, графіка події затемнює фон під ним),
- Грати звуковий ефект... (анг. Play SE...),
- Скрипт... (анг. Script...) — виконати скрипт на мові Ruby.
Принцип роботи[ ]
Взаємодія з маршрутами подій[ ]
Якщо у події є власний маршрут, його буде тимчасово призупинено на час виконання заданого маршруту. Але після виконання заданого маршруту подія повернеться до власного з того кроку, який був перед заданням.
Наприклад, якщо у події власний маршрут складається з кроків «вліво, вліво, вліво, вправо, вправо, вправо», і на третьому кроці буде задано маршрут «вверх, вниз», то кроки будуть такими:
- вліво (власний маршрут),
- вліво,
- вліво
- вверх (заданий маршрут),
- вниз,
- вправо (повернення до власного маршруту не з його початку, а з моменту призупинення),
- вправо,
- вправо.
Блокування керування[ ]
Якщо маршрут задається для грав_чині, в цей час керування з клавіатури буде заблоковане.
Маршрути для інших персонаж_ок не блокують керування. Однак якщо вибрана галочка Чекати на закінчення (анг. Wait for Completion) і подія не є паралельною, то керування буде також заблоковане. Ця галочка працює так же, як команда Пауза.
Технічні подробиці[ ]
Внутрішній формат[ ]
Команда описується декількома командами:
- спочатку йде команда 205, яка вказує реальний маршрут,
- потім йде команда 505, яка впливає лише на зовнішній вигляд маршруту в редакторі (вона показує команди маршруту на окремих рядках).
У команди 205 два параметри:
- нульовий — ціле число: чий маршрут міняється (
-1
— грав_чині,0
— цієї події, інші числа вказують номер події); - перший — об'єкт
RPG::MoveRoute
, який описує маршрут.
У команди 505 лише один параметр — об'єкт RPG::MoveCommand
, який описує команду маршруту. Команда 505 використовується лише для показу списку команд в редакторі.
Команда 505 не створюється для команди з кодом 0 («місце додавання команд»), якою закінчується об'єкт RPG::MoveRoute
в команді 205.
Використання в коді на Ruby[ ]
Щоб вказати маршрут для події, треба створити об'єкт-примірник класу RPG::MoveRoute
і присвоїти його події через метод force_move_route
:
r = RPG::MoveRoute.new r.list = [ RPG::MoveCommand.new(3), RPG::MoveCommand.new(4), RPG::MoveCommand.new(0) ] r.repeat = false $game_map.events[8].force_move_route(r)
Замість 8
в останньому рядку треба поставити номер потрібної події. В list
треба поставити потрібні коди та параметри команд (доступні коди можна подивитися на сторінці RPG::MoveCommand
). У цьому прикладі використовуються команди 3
(крок вправо) та 4
(крок вверх). Останнім кодом має бути 0
(кінець команд).
Щоб присвоїти маршрут геро_їні, треба використовувати метод force_move_route
глобального об'єкта $game_player
(примірника класу Game_Player
):
r = RPG::MoveRoute.new r.list = [ RPG::MoveCommand.new(3), RPG::MoveCommand.new(4), RPG::MoveCommand.new(0) ] r.repeat = false $game_player.force_move_route(r)
Якщо потрібно вказати параметри для команди RPG::MoveCommand
, вони вказується після коду в квадратних скобках. Наприклад, ось так можна змінити графіку головної героїні на графіку кішки:
r = RPG::MoveRoute.new r.list = [ RPG::MoveCommand.new(41, ['Animal', 1]), RPG::MoveCommand.new(0) ] r.repeat = false $game_player.force_move_route(r)
Якщо потрібно задати маршрут з великою кількістю кроків, і не потрібні параметри, можна скоротити код таким чином:
r = RPG::MoveRoute.new r.list = [3,4,3,4,1,2,1,2,0].map do |x| RPG::MoveCommand.new(x) end r.repeat = false $game_player.force_move_route(r)
В цьому випадку замість 3,4,3,4,1,2,1,2,0
можна написати потрібні коди (самі коди беруться з RPG::MoveCommand
).