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

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

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

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

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


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


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


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


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


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


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

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

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


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


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


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


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


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



Анимации

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


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

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

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

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

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


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

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

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


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


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


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


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

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

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


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


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


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


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


Поле «Звуки»

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

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


Напомню, что мукер поддерживает аудиофайлы в формате ogg и никто вам не запрещает закинуть в папку свои собственные звуки.


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

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

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


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

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

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

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

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


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


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

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


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


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


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

Лига Разработчиков Видеоигр

6.6K пост22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Спасибо за урок.

Вопрос по существу: можно ли создать предмет (одноразовый) который даёт скрытый эффект с приоритетом выше чем у смерти (100) который бы срабатывал при достижении нр 0? Или чревато багами?

Скрытый эффект не отображается на персонаже но действует, что бы не засорять визуальную часть.


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

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

Можно ли настроить один предмет на снятие нескольких разных эффектов состояния?

Можно без проблем. Просто даете этому предмету соответствующие параметры в Эффектах.

можно ли создать предмет (одноразовый) который даёт скрытый эффект с приоритетом выше чем у смерти (100) который бы срабатывал при достижении нр 0?

Так. Ну, начнем с того, что предмет, который будет использоваться автоматически использоваться сделать можно только ивентом. Да, можно создать ивент в бою, который будет использовать воскрешалку после НР=0. Но сперва будет применено состояние смерти, а потом предмет.
А так, как вы хотели не получится, так как у предметов приоритета нет в принципе.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Спасибо. Ещё такой вопрос про глобальные события.

Правильно понимаю что в них можно зашивать глобальный ивент, например "система кармы" при негативных ответах в диалогах с нпс, дают очки кармы, и если при диалоге игрок заработал +5кармы,то когда сработает глобальный ивент, "при достижении кармы 50 ед. Дать игроку экран с выбором плюшки" глобалка сработает в момент диалога или после него? Что бы не прерывать диалог

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Она сработает в момент, в котором будет стоят команда ее вызова, либо включения переключателя. Глобалка не стартует сама и не запустится просто потому, что карма стала равна 50 - нет такого условия запуска. Я бы лично при каждом прибавлении очков к карме ставил ветвление на карму=50. Если да, то запустить глобалку.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Тогда возвращаемся к концепции моровинда, и делаем привязку к "сну" персонажа, и в момент сна, срабатывают все глобальные события :D а в диалогах остаётся просто ая привязка к +- карме

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, это хороший вариант

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку