Найти в Дзене
RPG Maker World

RPG Maker MZ: урок №16. База Данных: Состояния, Анимации, Общие События

Продолжаем разбираться с базой данных. Для тех, кому приятнее разбираться в видео формате, есть это самое видео: Состояния – это бафы и дебафы в стандартной боевой системе, т.е. всякие пассивные статусы, которые навешиваются как на Персонажей, так и на Противников. Состояние навешивается с помощью навыка, либо в качестве Особенности при использовании, например, оружия или брони. Список состояний допускает расширение до 2000 штук, в Основных настройках можно задать название каждого статуса и выбрать его иконку. С этим все, как и везде. Ограничение – параметр, указывающий на принудительные действия персонажа. Применяется в том случае, если мы отбираем у игрока управление и хотим, чтобы персонаж что-то делал, не реагируя на команды. Можно заставить атаковать рандомного противника, рандомного союзника, рандомного кого угодно или просто постоять/полежать без движения. Вариант «Нет» - для случаев, когда ограничения для данного статуса не нужны. Приоритет – уже знакомый нам параметр, но тут п

Продолжаем разбираться с базой данных. Для тех, кому приятнее разбираться в видео формате, есть это самое видео:

Состояния – это бафы и дебафы в стандартной боевой системе, т.е. всякие пассивные статусы, которые навешиваются как на Персонажей, так и на Противников.

Состояние навешивается с помощью навыка, либо в качестве Особенности при использовании, например, оружия или брони.

Список состояний допускает расширение до 2000 штук, в Основных настройках можно задать название каждого статуса и выбрать его иконку. С этим все, как и везде.

Ограничение – параметр, указывающий на принудительные действия персонажа. Применяется в том случае, если мы отбираем у игрока управление и хотим, чтобы персонаж что-то делал, не реагируя на команды. Можно заставить атаковать рандомного противника, рандомного союзника, рандомного кого угодно или просто постоять/полежать без движения. Вариант «Нет» - для случаев, когда ограничения для данного статуса не нужны.

Приоритет – уже знакомый нам параметр, но тут попроще, чем у Противников. В стандартной боевой системе (и не только) допускается одновременное наложение нескольких состояний. Они оказывают свое влияние, согласно приоритету – от большего к меньшему. Т.е., если наш персонаж будет одновременно и берсерком с рандомной атакой и превращен в камень, то сработает то, у чего большее число в приоритете. Второе игнорируется, так как использует разные ограничения. Ну, а если ограничения одинаковые, либо не конфликтуют, то оба состояния будут выполнять по очереди. Например, отравление и берсерк. При равном приоритете первым выполняется состояние, у которого меньше ID-номер.

[SV] Анимация – нужно для боковой боевки, она же Side View. Определяет набор анимаций для героя, получившего состояние. Отображается только на персонажах.

[SV] Доп. анимация – дополнительные эффекты вокруг персонажа, отображающие основные статусы.

Ниже у нас идет поле «Условия удаления». Каждое состояние должно чем-то сниматься. Самый простой вариант, это придумать предмет-лечилку для его снятия, или навык. Но можно еще и задать другие варианты.

-2

Удалить в конце боя – ну, тут понятно, состояние спадает с персонажа после завершения битвы.

Удалить с помощью ограничения – состояние будет удалено при наложении другого состояния с другим типом ограничений

Удалить автоматически – тут два варианта. Конец Действия – удалить через какое-то количество ходов персонажа. Может быть задан примерный диапазон. Конец Хода – удалить после того, как будет совершено какое-то количество ходов в битве вообще. Удалить путем повреждения – состояние удаляется тогда, когда у героя снимается сколько-то очков из полоски НР в процентах.

После прохождения – состояние удаляется после прохождения определенного количества шагов. Подходит для состояний, которые остаются после битвы.

Поле «Сообщения» мы уже видели в Навыках, не вижу смысла тратить на него время. То же самое относится и к Особенностям, да и к Примечаниям.

Важно: первое состояние в списке ВСЕГДА должно соответствовать смерти. Тут почти то же самое, что с навыками Атака и Защита, только изменение этого состояния еще и к багам приводит. Просто оставьте его как оно есть. Если у вас в игре вообще нет в нем необходимости, то можно его не применять. Можно изменить ему название и иконку, но помните – первое состояние в списке всегда отвечает за ситуацию, когда полоска НР = 0.

Анимации

Здесь мы вступаем на территорию, впервые за долгие годы, даже десятилетия, подвергшуюся серьезным изменениям в новой версии движка. Эта часть урока неактуальна для MV чуть менее, чем полностью.

Анимациями в мукере называют различные спецэффекты: взрывы, вспышки, молнии и т.д., применяющиеся преимущественно в бою, но не только.

Долгое время они просто хранились в виде картинок формата PNG, как спрайтовая раскадровка. Но, начиная с версии MZ, все анимации создаются и редактируются с помощью трехмерного редактора Effekseer и интегрируются в игру в виде моделей и сопутствующих файлов.

-3

Программа Effekseer бесплатна, но описание работы в ней – тема для отдельного курса и в этом рассматриваться не будет.

Ссылка на оф.сайт программы (там есть туториалы на английском) https://effekseer.github.io/en/

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

-4

Разработчики движка заботливо положили нам аж 120 красивых эффектов на самые разные случаи жизни. Список расширяется до 1000 штук, а ограничение снимается плагином, как и всегда.

В Основных настройках у нас привычная возможность изменить название анимации. Название не видно игроку, так что нужно только для разработчика. Обычно никто их не меняет.

Тип отображения – три варианта центрирования анимации. Для каждой цели – анимация будет центрирована по цели. В центре всех целей – по геометрическому центру условно-описанного квадрата, который включает в себя все цели. В центре экрана – тут, думаю, все и так понятно.

Галочка «По нижнему краю» отвечает за центрирование по низу цели, а не по ее середине.

Поле Эффект Частиц – тут задаются настройки самой анимации.

Имя файла – выбираем нужный нам эффект.

Масштабирование – позволяет изменять его размеры.

Скорость – определяет скорость воспроизведения анимации

Поворот – вот тут интересно. Поскольку в MZ мы имеем дело с 3D эффектами, то и осей для поворотов готового эффекта у нас три. Но, к сожалению, нет нихера ни полноценного окна с предпросмотром, ни отображения осей на экране теста. Поэтому поворотами пользоваться придется на ощупь. Неудобно до усрачки, честно скажу.

Смещение Х и Y – не путать с поворотом. Это просто смещение готовой анимации по горизонтали и вертикали, соответственно.

Поле «Звуки»

-5

Тут можно выбрать звуковой файл из папки audio -> se, который будет проигрываться при воспроизведении анимации. Можно выбрать несколько звуков, которые будут накладываться друг на друга. Время старта воспроизведения задается в кадрах (1 секунда = 60 кадров). Напомню, что мукер поддерживает аудиофайлы в формате ogg и никто вам не запрещает закинуть в папку свои собственные звуки.

Поле «Вспышка» задает параметры вспышки самой цели. Это эффект мерцания самого изображения цели, достигающийся кратковременным окрашиванием картинки в заданный цвет, как правило белый.

-6
-7

В открывающемся меню задается стартовый кадр, продолжительность вспышки (тоже в кадрах), цвет по RGB и его интенсивность, она же прозрачность наложенного цвета.

Ну, и наконец, знакомое поле предпросмотра, позволяющее изменить изображение цели и фон. Предпросмотр производится со звуком – берегите ухи.

-8

Далее у нас вкладка «Тайлсеты», но мы ее разобрали, поэтому переходим к «Общим событиям», они же Глобальные ивенты.

-9

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

В самой вкладке нет ничего сложного – список до 2000 штук, название, которое использует только разработчик, два варианта триггера – автоматический и параллельный, а так же выбор переключателя, который может запускать данный ивент.

Глобалки, однако, крайне полезная и удобная вещь.

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

Во-вторых глобалки позволяют заранее отдельно кодить какие-то подключаемые и отключаемые фичи, без необходимости копировать их на локации.

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

В расширенном курсе я обязательно коснусь их использования и покажу все на практике, а на сегодня, полагаю, достаточно. Урок вышел короткий, но все, что оставалось от базы в один не впихнуть, поэтому как-то так. На следующем уроке мы базу добьем, а еще через пару, думаю, добьем и сам курс!