Двигающиеся за Героем Актёры

Двигающиеся за героем персонажи и зверьки сделают вашу игру более живой, а персонажей — такими, о которых игрок будет помнить — возможно, как защитников или товарищей. Помимо этого, такие персонажи могут быть полезными помощниками или рассказывать истории о вашем игровом мире!

В этом руководстве вы узнаете, как создать простого Актёра, который будет следовать за вашим Героем.

Базовый пример

Для первого примера давайте сделаем неинтерактивного персонажа, который просто будет следовать за вашим Героем:

Можно жмакать!

Сначала создайте и нарисуйте Актёра, который будет следовать за вашим Героем. Вы можете анимировать его, или же оставить статичным.

Потом снимите отметку "Непроходимый" у этого Актёра: так как этот Актёр будет всё время следовать за Героем, могут возникнуть ситуации, где он, например, заблокирует за вами узкий коридор. Чтобы избежать этого, мы помечаем его как проходимого, чтобы игрок мог всегда пройти через него при необходимости.

Вы также можете изменить стиль его движения, чтобы он переворачивался горизонтально или, если вы создаёте игру в с видом сверху, смотрел туда, куда идёт. Для этого надо поменять значение выпадающего меню "Оставаться неизменным" на "Отразить по горизонтали" или "Вращаться в сторону движения".

Потом сверху переключитесь на вкладку "Сценарий" и добавьте событие "Когда герой движется". Привяжите к нему блок "Переместить этого Актёра", и поменяйте поле направления на "К герою". Также убедитесь, что в этом же блоке стоит флажок "Избегать касания с Героем".

Вы почти закончили — теперь разместите своего нового Актёра на сцене и протестируйте его!

На заметку

Актёры в Whimtale не могут перемещаться между Сценами. Если вам нужно будет сымитировать персонажа, следующего за Героем через сцены, вам потребуется разместить экземпляр этого Актёра на каждой Сцене, где вы хотите, чтобы существо находилось.

Создание продвинутого, интерактивного персонажа

Иногда хочется сделать персонажа, с которым может взаимодействовать Герой, и было бы грубо, если бы мы проходили сквозь таких персонажей. В таких случаях часто добавляют меню-диалоги, чтобы игроки могли общаться со своими последователями, а также могли бы поменяться с ними местами. Также с небольшим дополнением в сценариях мы можем сделать так, чтобы последователь всегда появлялся рядом с Героем при переходе между Сценами, даже если существует несколько входов в одну и ту же Сцену:

Можно жмакать! Попробуйте пройти через узкие коридоры и поменяться местами с последователем Героя.

Для этого варианта начните со всех предыдущих шагов, но сделайте Актёра непроходимым.

Дерево диалога и обмен позициями

Добавьте новое событие с названием "Когда герой коснулся", и присоедините к этому событию блок "Дать выбор". Этот блок покажет опции диалога с заголовком, и именно здесь мы разместим опцию для обмена позициями с персонажем, а также сможем позже добавить различные реплики, связанные с вашим сюжетом игры. Добавьте несколько "исходов" к этому блоку и назовите один как "Поменяться местами", а также добавьте другой вывод, который ничего не делает ("Just checking in" в демонстрации выше). Последний исход не будет подключен к каким-либо блокам и потому ничего не будет делать, а вот у исхода "Поменяться местами" будет несколько блоков смены позиции Актёра и Героя.

Нужно поменять их местами, и хотя у нас и есть блоки, которые могут получить положение Героя и Актёра, нам нужно запомнить позицию одного из них перед тем, как переместить другого. Для этого мы будем использовать переменные. Перейдите к вкладке Настройки вашего проекта и создайте две числовые переменные, назовите их Врем. X и Врем. Y. ("Врем." здесь значит "временный".) Затем вернитесь к сценарию персонажа-последователя и продолжите сценарий, добавив два блока "Задать переменную", оба соединённые с блоком "Получить моё местоположение". Убедитесь, что вы правильно храните значения X и Y и не путаете их.

Далее, после второго "Записать переменную", добавьте блок с названием "Перейти в местоположение", и соедините его входы X и Y с другим блоком с названием "Получить местоположение Героя". Это переместит Актёра на позицию Героя, после чего останется переместить Героя на старую позицию нашего Актёра, которую мы только что запомнили с помощью переменных. Для этого добавьте блок "Переместить Героя (программно)". Этот блок обычно используется для перемещения Героя между Сценами в определённые координаты, вычисляемые разными способами, но он также может использоваться для перемещения Героя внутри текущей Сцены. Эффект этого блока очень похож на работу Выходов в Сценах.

Нам не нужно менять Сцену, поэтому надо будет найти идентификатор текущей. Соедините вход "Идентификатор Сцены" с новым блоком "Текущий идентификатор Сцены". В конце заполните значения X и Y двумя блоками "Считать переменную", которые будут извлекать значения переменных Врем. X и Врем. Y.

Всегда появляться рядом с героем

Так как для имитации движения Актёра меж сцен мы фактически будем размещать отдельные копии нашего последователя, нам, скорее всего, потребуется также размещать их рядом с Героем при открытии каждой Сцены — это особенно важно для Сцен, в которые игрок может попасть через несколько входов.

Мы можем использовать тот же блок "Получить местоположение Героя", чтобы телепортироваться на его плитку при запуске Сцены! А чтобы переместить Актёра чуть подальше от Героя (чтобы он не стоял прям в Герое), добавьте команду "Переместить этого Актёра" и установите направление на "Прочь от героя, с обходом препятствий".

Вот и всё! Не стесняйтесь расширять блок "Дать выбор" дополнительными опциями, связанными с вашим сюжетом, и не забудьте добавить этого Актёра на все Сцены, где он должен присутствовать.

Полный сценарий