Команди RPG Maker VX/Задати маршрут

Матеріал з РПГ.укр
Перейти до: навігація, пошук
Вікно налаштування.

Задати маршрут(анг. Set Move Route)команда подій в RPG Maker VX, яка дозволяє встановити маршрут, по якому буде рухатися подія або грав_чиня.

Це п'ята команда на другій сторінці.

Показати команду на скриншоті

Друга сторінка команд подій в RPG Maker VX.png

Маршрут складається з окремих команд маршруту. Більшість команд маршруту стосується руху (кроки в різні сторони, зміна напрямку, тощо), але деякі також впливають на зовнішній вигляд (зміна графіки, режиму змішування кольорів, тощо) і синхронізації руху з іншими подіями (перемикачі, аудіо).

Налаштування[ ]

В лівій частині вікна показуються такі налаштування:

  • зліва зверху вказується, для кого встановлюється маршрут:
    • Грав_чиня(анг. 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).