LuarZero

LuarZero

Пикабушник
поставил 7214 плюсов и 607 минусов
отредактировал 24 поста
проголосовал за 52 редактирования
149К рейтинг 424 подписчика 13К комментариев 50 постов 31 в горячем
58

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта

Вот и пришло время последнего урока в рамках базового курса. Мы рассмотрели практически все основные функции движка, углубляться в детали – тема для отдельного курса, а в этом нам осталось совсем немного.


Как обычно, видеоверсия для тех, кому так удобнее:

Плагины


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


Одна из основных ошибок любого новичка – набивание будущего проекта плагинами в дело и без дела. Как пример, из лично виденного: человеку нужно сделать кодовый замок. Человек сразу ищет плагин на это дело. Не находит, унывает. А ничего удивительного – кодовый замок делается за 2 минуты на ивентах, зачем кому-то писать для этого плагин?


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


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


Вы не найдете плагин, который сделает за вас игру. Вы не найдете плагин, который на 100% исполнит вашу мечту. Более того, для реализации какой-либо нетипичной для мейкера идеи скорее всего потребуется не один плагин, а целая группа.


Так недавно меня спросили в комментах – можно ли сделать на мукере игру с, цитирую, механиками, как фаллауте. Если кратко – да, можно. Ответ на вопрос «как?» - целая работа.


Во-первых, какие механики имеются ввиду? Если Статы, то для них есть переменные. Для вывода на экран значения переменных есть мощный плагин HUD maker.

Если изометрический вид – это вопрос графики. Есть HF pack, который изометрический. К нему можно добавить плагин от Galv’а на диагональное движение.

Если тактическая пошаговая боевка, то и на ивентах можно соорудить и плагин на это дело поискать. Что-то такое я видел…


Плагина может не оказаться. И базовый функционал тоже не сможет дать необходимое. Выхода три – нанимать программиста (дорого), учиться программировать (долго), отказаться от фичи (иногда губительно, но чаще нет). Есть четвертый вариант – движок сменить, но там, сцуко, тоже придется учиться программировать или нанимать кого-то…


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


Надеюсь, никто не рассчитывал увидеть рассмотрение всех плагинов в этом уроке? Просто их сотни и это только для MZ. Для VX Ace, например, скриптов были напилены тысячи. Тут никакого времени не хватит, чтобы это все обозревать, а у меня нет в планах превращения в мейкер-блогера, их и без меня вагон. Моя цель – дать вам старт и научить чему-то полезному. В частности самостоятельности в поиске решений.


Однако, одну полезную ссылочку оставлю:

https://makerdevs.com/mz/master-list

Это мастер-лист плагинов для MZ и MV. Крайне полезная штука. Иногда лучше искать в этом листе, чем в гугле.


А так же ссылки на сайты самых известных авторов плагинов:


Янфлай:

www.yanfly.moe (в прошлом году продался с потрохами и за большинство плагинов ВНЕЗАПНО захотел денег, хотя до этого раздавал их бесплатно. Сообщество не оценило такой кульбит с переобувкой, пришлось старые оставить бесплатными, а новые продавать под другим брендом)


Галв:

https://galvs-scripts.com/ (малоактивен, но навыпускал много полезного)


Мог:

https://mogplugins.wordpress.com (с этим что-то случилось, сносил и перепиливал бложик, сейчас заново заполняет вроде)


Виктор:

https://victorenginescripts.wordpress.com (только до версии MV включительно. Завязал с разработкой)


ДК:

https://dk-plugins.ru (наш, отечественный разраб!)


А теперь давайте возьмем какой-нибудь плагин и установим его в будущий проект. У меня в планах использование праллакс-маппинга (т.е. создание карт в фотошопе) по работе, вот и совместим приятное с полезным.


Плагин называется Cyclone Map, автор некий Худель (Hudell), и взять его можно тут: https://makerdevs.com/plugin/cyclone-maps


Вам нужно скачать файлик с расширением .js и положить этот в файл в Папка проекта –> js -> plugins


Иногда ссылка может вести не на скачивание файла, а на листинг кода на каком-нибудь гит-хабе, где он выглядит просто, как текст на экране. Нужно скопировать весь этот текст, перенести в Блокнот и сохранить в файл с произвольным (но понятным вам) названием на латиннице и окончанием .js


ПолОжили? Идем теперь в Управление Плагинами – открывается кнопкой с изображением кусочка паззла, пунктом в меню Инструменты или клавишей F10.

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

В строке «Название» ВНЕЗАПНО нельзя изменить название плагина. Но можно выбрать нужный из выпадающего списка. Нас интересует Циклон Мапс:

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Теперь будет достаточно нажать ОК и плагин начнет работать (при условии, что переключатель «Состояние» в положении ВКЛ). А вот как именно он будет работать – об этим написано в поле «Справка». Там же обычно находятся и все инструкции по настройке плагина.


Обычно находятся, но не всегда. Зависит от радивости программиста. Хорошие прогеры пишут подробную документацию. Посредственные – хер пойми какую. Я тут натыкался по просьбе одной подписчицы на плагин Журнала Квестов – вот уж жопа так жопа. Как оно работает можно понять только методом экспериментального тыка.


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


Генератор Персонажей

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Что может быть проще этого я не знаю. Если вы хоть раз пользовались каким-нибудь генератором персонажей (даже в играх), то поймете, как он работает.


Отдельно по пунсктам меню пробегусь:

Случайно – рандомная генерация. Обычно выдает лютую дичь.

Аватар – сохранить фейс. Нажимаем кнопку и вылезает окошко с пустым файлом для набора фейсов:

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Импорт – открыть существующий файл. Чтобы, например, его дополнить или изменить, замостив существующую морду новой.

Экспорт – сохранить файл. Сохраняется весь набор целиком в том виде, в каком он открыт в редакторе.


Обратите внимание, что мукер держит в памяти последний открытый файл в том состоянии, на котором вы его последний раз открыли. Это неудобно. Нет, не так. ЭТО П***ЕЦ КАК МЕШАЕТ! Я не знаю, за каким хером это добавили в MZ, но путает невероятно. В МВ открывался по умолчанию чистый лист.


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


Персонаж – сохранения чарсета в один из восьми слотов на листе. Импорт-Экспорт работают так же.

В нокауте – сохраняет лежачий чар этого персонажа в трех позах. В MV поза была одна – прогресс, сука.

Боец – сохранение листа с боевыми анимациями.


Сохранить настройки (и Загрузить настройки) – возможность сохранить сгенерированного персонажа в json файле, что бы потом не подбирать на глаз все его элементы, если вдруг понадобится еще чего-то догенерировать, например, того же перса, только в другой одежде.

Усе. Вот и весь генератор.


Как добавить новые детали в генератор? Найти, скачать и закинуть в папку с Генератором. Она находится не в папке проекта, а в папке движка. Если вы его покупали в стиме, то там и ищите – в common apps где-то. В папке движка будет и папка generator со всем содержимым.


Как добавить в генератор не этих сраных чибиков, а нормальных высоких персов? Никак. Это придется генератор переписывать, а переписывать нельзя – лицензия не позволяет. Пользуйтесь сторонними или рисуйте сами, как все делают.


Файловая структура проекта.

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

Давайте посмотрим, как устроен проект в проводнике, где что лежит и как этим пользоваться.

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Папка audio – внутри папки bgm, bgs, me и se. Как мы знаем, первая с музыкой, вторая со звуками окружения, третья с фанфарами, четвертая со звуковыми семплами.

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

Папка data – тут хранится, по сути, вся ваша игра. Все настройки, все карты, весь ивентовый код, словом все в формате json.

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Как-то раз я видел новичка, который спрашивал, где лежат картинки карт, которые он намаппил. Так вот, они нигде не лежат. Мукер просто хранит данные о том, какой тайл из набора на каких координатах лежит. Конкретно эта информация хранится в файлах MapНомер_карты.json. То же самое касается и всего остального.


Папка effects – здесь у нас анимации спецэффектов, их модельки и текстурки.

Папка font – понятно, что шрифты.

Папка icon – иконка вашей игры. Та, будет у эксешника и в трее отображаться. Может быть заменена на другую. Размер 128х128 пикселей.

Папка img – почти вся графика игры.

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Battleback 1 и 2 – задники для боевки. Размеры – не меньше выбранного размера окна. Дефолтные 1000х740

Characters – чарсеты

Enemies – батлеры (боевые изображения) врагов для фронтальной боевки

Faces – фейсы

Parallaxes – праллаксы, они же задники для карт

Pictures – все изображения, которые мы планируем выводить с помощью команд ивентов

Sv_actors – боевые анимации персонажей для боковой боевки

Sv_enemies – батлеры врагов для боковой боевки

System – разные системные изображения:


Balloon – пузыри с эмоциями. Могут быть выведены специальной командой ивента. Файл – картинка в png, размер баллона 48х48 пикселей. Файл разбит на 15 строк по 8 кадров в каждой. Одна строка – одна эмоция. 10 эмоций нам уже предоставлены, еще 5 можно добавить свои. Либо удалить всё и поставить полностью свои. Увеличить размер файла нельзя.


ButtonSet – изображения кнопок для сенсорного управления. Можно заменить на свой.

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


IconSet – набор иконок для оружия, предметов, брони и т.д. Размер иконки 24х24 пикселя, ширина листа строго 640 пикселей. Высота листа произвольная. Т.е. список иконок можно расширять вниз до бесконечности.


Shadow1 – тень под героем в боковой боевке

Shadow2 – тень под врагом в боевке.

States – анимации состояний. Помните, мы в Базе Данных с ними сталкивались? Вот это и есть их файл.

Weapons1, 2 и 3 – мы уже разбирали, это файлы с боевым оружием.

Window – файл, в котором лежат скины для окон, курсоры и образцы цветов для цветного текста.


Возвращаемся в папку img


Папка tilsets – тайлсеты

Папка titles1 и 2 – титульники для стартового меню. Обычно удаляются все к чертовой матери и рисуется свой собственный один единственный.


Возвращаемся в корневой каталог


Папка js – родные мукерские скрипты и наши плагины

Папка movies – видоролики. Мукер поддерживает воспроизведение видео в формате webm, для чего есть команда ивента.


Save – сохранения игрового процесса.


Собственно, вот и вся структура, если кратко.

Что у нас осталось из того, что я не упомянул…

Поиск? В мукере есть Поиск ивента, если вы запутались в собственном коде и не помните где и что. Вызывается из меню ПКМ по карте в режиме ивентов, либо Ctrl+F.

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


Так же, если вы нажмете ПКМ по списку карт, то обратите внимание на пункты, которые я не упоминал:

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Загрузить образец карты – в мукер по дефолту загружено несколько десятков готовых карт. Вероятно для того, чтобы показать, как маппить не нужно. Вот посмотрите на них и мапьте лучше. Это образец работы на отъ***сь. Разумеется, я категорически не рекомендую вставлять эту халтуру в свои проекты. Во-первых, не вы такой один «умный», а во-вторых, на кой черт нужны игры, сделанные не то, что на одинаковой графике, а даже на одинаковых локациях!


Сдвиг – полезная функция. Часто бывает так, что маппишь и вдруг понимаешь, что карта маленькая и надо ее увеличить. Но При увеличении размера в редакторе, карта увеличивается снизу и справа. А если нам надо слева? Тогда придется сдвинуть вправо всю локацию целиком. Сдвиг дает такую возможность, главное помнить, что положительные значения по Х – это вправо, а положительные по Y – вниз. Впрочем, если перепутаете, всегда можно сдвинуть обратно.


Создать подземелье – типа генератор подземелий. Бесполезная функция. Генерирует лабиринты, либо данжи. На скорую руку для дальнейшей обработки разве что годится, но не более. Работает только на достаточно крупных картах где-то от 30х30 клеток и выше.


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


Вот и подошел к концу наш базовый курс. Рассказал обо всем, что может потребоваться начинающим мукеристам, но прошу меня понять – невозможно в рамках одного курса охватить все и сразу. Прошу так же понять, что ожидающийся на подходе курс «Расширенный» будет выходить пореже, так как возни с ним больше, да и выпускать по уроку раз в два-три дня, это та еще задачка, я даже как-то употел, пока эти 22 статьи писал! Как-никак 5 авторских листов вышло – на небольшую повесть тянет))


Так же впереди у нас сериал «От Идеи до Релиза», где будет пилить игру с полного нуля до 100% готовности. Возьмем что-нибудь несложное и не глобальное, чтобы проиллюстрировать все этапы разработки за разумный срок.


Всем удач на поприще игростроя. Делайте игры для людей, а не для себя и все получится!


P.S. На вопросы стараюсь отвечать в пределах разумного. Курирования и длительных личных консультаций не оказываю – у меня три проекта одновременно, поймите правильно!

RPG Maker MZ: урок №19. Плагины, Генератор Персонажей и Файловая структура проекта RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост
Показать полностью 11
36

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны

На прошлом уроке мы попрощались с Базой Данных, а в этом вернемся к локациям.


Кому удобнее, может возвращаться с помощью видео:

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


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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

В поле «Основные настройки» можно задать название карты в редакторе, отображаемое название, которое будет видеть игрок при переходе на локацию, тайлсет и размер карты в мукерских квадратах. Это мы уже знаем, но напоминание не лишнее.


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


i.gyazo.com/4eec18b1e769c7f6d8eb10e1916337e8.gif - гифка не влезла в пикабу))


Чаще всего применяется при создании карт мира, либо с помощью этого эффекта можно создать иллюзию долгого движения в одном направлении. Например, поезд, едущий вдоль леса. Карта сама по себе будет небольшой, но поезд будет ехать до тех пор, пока нам это не надоест.

Возможно зацикливание по горизонтали, вертикали, или обеим плоскостям.


«Шагов до столкновения» – вот тут мы снова должны немного отвлечься на стандартную боевую систему.


Как и некоторые прочие атавизмы, мейкер до сих пор продолжает насиловать труп системы случайных столкновений для боевой системы. Выглядит это так: персонаж идет по карте, совершает какое-то количество шагов и вызывается битва с мобом. Моба самого при этом на карте не видно, таким образом создатель игры освобождается от необходимости рисовать чарсеты этих самых мобов. Пользоваться этой системой или нет – решать только вам, так как никто не запрещает сделать ивентами мобов на карте. По факту – технология устарела еще 20 лет назад, так как в прежние времена являлась фичей для экономии памяти и вычислительных ресурсов.


Тем не менее, настройки для этой системы есть и параметр «Шагов до столкновения» определяет «среднее» количество шагов, которое сделает персонаж, чтобы вызвать битву. В кавычках потому, что это полное дно – реальное значение выбирается случайным образом и может быть от 1 до х2. Т.е. задаем 10 – получаем случайный разброс от 1 до 20. Счетчик задается каждый раз заново после битвы или перехода на локацию, после чего с каждым шагом его значение уменьшается на 1 и при достижении нуля вызывается битва. Причем, если персонаж движется по тайлу с параметром «куст», то счетчик уменьшается вдвое быстрее, а если использует транспорт, то вдвое медленнее. Счетчик невидим как игроку, так и разработчику, т.е. получается какой-то трудно контролируемый рандом.


«Автозапуск BGM и BGS» – как мы знаем, BGM это Background Music, т.е. музыка на фоне, в BGS Background Sound, т.е. звуки окружения. Мы уже разбирались с этим в предыдущем уроке, где я сказал, что можно настраивать звуковое сопровождение для каждой карты – это оно и есть.


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


«Указать фон битвы» - здесь можно задать фон для боев, которые будут происходить на этой карте. Принцип тот же, что и со звуками – выбор остается актуальным до тех пор, пока не будет изменен, так что сделав выбор в одном месте, следует делать его везде.


Галочка «Отключить бег» - запрещает бег на карте. Нажатие клавиши бега ничего не дает.


Поле «Панорама»

Так же называется праллаксом, при этом к реальному значению слова «праллакс» толком не имеет отношения. Имеется ввиду фоновая картинка, которую можно разместить под картой. Логичным будет вопрос «нафига?». Чтобы делать вот такие карты:

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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

«Зациклить горизонтально» и «Зациклить вертикально» - картинку можно прокручивать и, если это бесшовная текстура, то мы получаем плывущие по небу облака:

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


Галочка «Показать в редакторе» - включает показ картинки в редакторе.


Поле «Столкновения»

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Параметр «Частота» - определяет приоритет столкновений у мобов, но рассчитывается по более сложной формуле.


Допустим у нас три отряда мобов на карту. Первому зададим частоту 5, второму 3, а третьему 2. Общий «вес» отрядов будет равен 5+3+2=10. Вероятность столкновения с первым будет 5/10, со вторым 3/10, а с третьим 2/10. Это означает, что вероятность в процентах будет: 50% у первого, 30% у второго и 20% у третьего.


«Диапазон» - тут у нас два варианта. Вся карта – это понятно. Столкновения с данным отрядом будет происходить по всей карте. А вот по номеру региона нас вынуждает перейти к следующей теме.


Регионы

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Мы уже натыкались на вкладку R, когда рассматривали тайлсеты – это и есть регионы.


Мне писали в комментах то ли на ютубе, то ли на пикабу, что очень ждут тему Регионов, но, если честно, я решительно не понимаю такого интереса к этой функции движка. Регионы – это просто способ разбить локацию на различные области, видимые для разраба, но невидимые для игрока. А потом использовать номера регионов, как отличия этих областей в командах ивентов, плагинах и стандартной системе столкновений. И, в общем-то, это все :)


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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Теперь мы можем задать эти регионы, как зоны обитания отрядов врага:

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Заметьте, что одному отряду можно задавать до трех регионов обитания. Теперь, в зависимости от того, в какой области игрок будет находиться в момент истечения счетчика шагов, такой отряд противников и будет задействован в битве.


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


На этом с настройками карт все, но остается открытым вопрос – а что если карта не одна, а их много? Нам нужно как-то переходить с одной на другую, верно?


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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Как вы видим, в шаблонах у нас четыре команды. Разберемся сперва с перемещением.


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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

А также предлагается выбрать «Направление» - это выбор стороны, в которую будет повернут персонаж после телепорта.


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

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


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


«Дверь» - простой способ поставить дверь с уже запрограммированной анимацией открытия, выбором графики двери, звуками и телепортом для перемещения на другую локацию.

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Как видно на скрине, шаблонная команда заполняет ивент стандартным кодом. Сперва воспроизводится звук открытия двери, затем анимация (чар двери как бы поворачивается, но по факту просто сменяются кадры), затем игрок принудительно делает шаг вперед, звук перемещения и, собственно, само перемещение в выбранную точку.

Вы можете сделать дверь и вручную, но проще так.


«Клад» - простой способ создать сундук с лутом. Можно выбрать графику сундука и его содержимое – золото, предмет, оружие или броню. Но пусть вас не смущает возможность положить в сундук только что-то одно, так как это тоже просто ивент, который можно потом дополнить:

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Очень похоже на дверь, правда? Только вместо перемещения тут команда изменения золота/оружия/предметов/брони. Можно добавлять свои команды, чтобы в сундук давал игроку что-то еще.

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


«Гостиница» - шаблон для создания НПС, который позволяет отдохнуть. Можно выбрать чарсет для НПС и цену.

RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №18. Настройки локаций и Шаблоны RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Если откровенно, то традиционные jrpg-шные «гостиницы» (читай – места восстановления) в современных играх нужны чуть более чем никому. Но, шаблон есть и я должен был о нем рассказать.


На этом данный урок предлагаю всёкнуть, а следующий торжественно объявляю крайним последним в базовом курсе. Разберем систему плагинов, поиск, генератор персонажей и файловую структуру проекта.

Показать полностью 16
37

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины

Сегодня мы закончим разбираться с Базой и начнем потихоньку завершать сам курс.

Как обычно есть видос для тех, кому так удобнее постигать непостигаемое:

Вкладка «Система 1»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Здесь у нас находится первая часть глобальных настроек проекта.


В поле «Название игры» можно поменять это самое название. Заметьте, что имя папки с проектом при этом не изменится – в данном случае имеется в виду отображаемое название в стартовом меню.


«Начальная партия» - отвечает за состав партии на старте игры и должно включать хотя бы одного персонажа. Как мы помним, сделать игру совсем без героя невозможно технически.


«Валюта» - название игровой валюты, отображаемое в меню и при вызове количества денег различными ивентовыми командами.


«Цвет окна» - позволяет погонять по RGB цвет окон диалогов и менюшек.


«Изображение транспорта» - что это за транспорт такой, мы разберемся на следующем уроке, но те, кто в JRPG играл, знают, что есть такие штуки. Мукер предполагает использование трех видов транспорта – для движения по мелководью, большой воде и «воздуху». Кликнув на каждое из трех окон можно выбрать соотвествующую графику из чарсетов.


«Стартовые позиции» - определяет координаты и локацию, на которых будут находиться игрок и три вида транспорта. Обратите внимание, что стартовая позиция игрока должна быть указана в любом случае! Транспорт расставлять необязательно. Так же необязательно это делать через базу данных, можно и в редакторе на нужной локации место спавна указать.


«Начальный экран» - определяет вид титульного экрана старта игры. Здесь можно выбрать изображение и, если хочется, его рамку. Никто не требует от вас использовать одно из стандартных изображений, даже скорее наоборот – желательно сделать или стащить из гугла что-то оригинальное. Размер изображения определяется размером игрового окна (по дефолту это 816х624), формат – PNG. Изображения для титульника лежат в Папка проекта -> img -> titles1, а рамки в titles2. В принципе, рамка, это по сути просто второй слой, поверх первого.


Галочка «Отображать название игры» - выводит на титульный экран называние вашей игры. По факту, обычно не ставится, так как лучше красивым шрифтом нарисовать/написать это название прямо на титульнике.


Пункт «Окно команд» определяет смещение окошка стартового меню в пикселях. Заметьте, не координаты расположения окна, а именно то, на сколько его нужно сместить! Так же тут можно выбрать фон этого окна из уже знакомых вариантов. По факту этим мало кто пользуется, так как любители кастомного меню обычно обмазываются плагинами на это дело.

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

«Экран битвы» - здесь происходит выбор из двух типов боевых систем, боковой и фронтальной. При боковой герои стоят справа, а противники слева, а при фронтальной противник показан по центру экрана, а герои отсутствуют.

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Фронтальная боевка

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Боковая боевка


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


«Боевая система» - в сущности, у нас боевая система так или иначе пошаговая, т.е. противники и персонажи бьют друг-друга по очереди. Однако, мы можем выбирать то, как будет происходить распределение ходов.


Пошаговая – участники боя ходят строго по очереди.


В реальном времени – у персонажей появляется т.н. полоска АТВ (Acton Battle Time), скорость заполнения которой определяется характеристикой «ловкость». После заполнения полоски, персонаж может сделать ход. Полоска заполняется постоянно. У противников полоска не отображается, но их скорость ходов так же определяется по «ловкости».


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

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Поле «Опции»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


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


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


Смерть от пола – то же самое, применительно к повреждающему полу. Мы же помним, что пол – это лава, да? :)


Отображать ТР в окне состояния – включает и отключает полоску ТР в игре.


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


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


Включить автосохранение – в MZ впервые завезли автосохранки. Срабатывают после боя и при переходе на другую локацию. В предыдущих версиях движка отсутствуют.


Поля «Музыка» и «Звуки»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Тут все более-менее понятно – вы выбираете музыкальное и звуковое сопровождение для различных моментов в игре.


Вкладка «Система 2»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


Поле «Категории предметов» - отключает вкладки в меню предметов


Поле «[SV] Магические навыки» - название вообще непонятное. Определяет типы навыков, для которых нужна анимация кастования.


Поле «[SV] Движения атаки» - определяет набор движений и отображение оружия в бою, в зависимости от типа экипированного оружия.


Здесь нужно сделать отступление. Оба предыдущих поля актуальны для боковой боевки, что мы видим по префиксу [SV]. У каждого персонажа есть определенный набор обевых анимаций, а так же оружия, которое накладывается поверх изображения персонажа.

Файлы анимаций героя находятся в папке img -> sv_actors и выглядят следующим образом:

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Как видно из надписей, на этом листе расположены 18 комплектов анимации на разные случаи в бою. Размер базового квадрата боевого спрайта 64х64 пикселя, но, как и в случае с чарсетами, все это можно пропорционально увеличивать. Теперь, я думаю, понятно, что за Выпад, Взмах и Снаряд в движениях атаки? Остается разобраться с оружием.


Файлы с оружием для боя лежат в img->system и называются Weapons1, Weapons2 и Weapons3 соответственно. И вот тут придется немного поскрипеть мозгом, так как раскадровка этих файлов сделана довольно-таки неочевидно:

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Базовый размер сетки данного файла 96х64. У каждой анимации атаки три кадра Замах, Удар и Простой, т.е. кадр в котором персонаж ненадолго замирает после удара. Обратите внимание на расположение самого персонажа в данной раскадровке – я сюда его поставил чисто для визуализации наложения кадра на спрайт, в самом файле персонаж не нарисован. В процессе нанесения удара, спрайт смещается чуть вперед (на 16 пикселей), поэтому и оружие отрисовано с учетом его смещения.


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


Вот еще один шаблон для файла Weapons3, в нем мы видим только 6 мест для оружия. Наборы из этого файла называются «Пользовательский», причем в первом уже лежит какая-то магическая книга.

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Без плагина увеличить количество файлов с оружием для боя нельзя, т.е. нам доступно 30 вариантов визуализации.

Таким образом становится понятно, что поле «Анимация атаки» отвечает за выбор набора анимаций, в зависимости от типа экипированного оружия.


Поле «Расширенные настройки»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


Ширина и Высота экрана – устанавливает размер окна игры. Вот так просто. А до версии MZ приходилось плагины ставить.


Ширина и Высота интерфейса – определяет размер диалоговых окон, а так же экрана меню

С шрифтами мы с вами уже разбирались, поэтому на них останавливаться не буду.


Непрозрачность окна – функция, добавленная в обновлении 1.3.0, должна настраивать прозрачность окон меню… но не настраивает. Вероятно, позже будет пофикшена.


Вкладка «Типы»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Именно здесь изменяются и содаются Элементы, Типы умений, оружия, брони и экипировки. Я же говорил, что все в наших руках?:)


P.S. Количество ограничено до 99 вариантов. Расширяется, как обычно, плагином.


Вкладка «Термины»

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Вторая вкладка для изменения названий основных парамтров и единиц в игре.


«Основные характеристики» - в этом поле задаются названия для того, что по дефолту зовется уровнем, опытом, а так же названия трех полосок в меню персонажа. В левом столбце полные названия, а в правом сокращенные.


«Характеристики» - изменение названий тех самых характеристик, которые мы рассматривали во вкладке «Классы».


«Команды» - в верхней части названия пунктов меню, в т.ч. и боевого, в нижней – названия разделов в этих пунктах. Отключить ненужные пункты основного меню можно во вкладке «Система 2».


«Сообщения» - здесь следует отдельно рассмотреть первые 7 пунктов. Они отвечают за название соответствующих пунктов в Опциях, вызываемых из главного меню игры и доступным игроку для изменения:

RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост
RPG Maker MZ: урок №17. База Данных: Система, Типы и Термины RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Бег всегда – игрок будет перемещаться по картам бегом без удержания клавиши Shift.

Запомнить команду – запоминание последнего выбранного действия в бою


Сенсорный интерфейс – включает и отключает отображение на экране элементов сенсорного управления.


Уровни громкости :

BGM – Backgroung Music – музыка фона на локациях и битвах

BGS – Backgroung Sound – звуки фона локаций (пение птиц, звуки города и т.д.)

ME – Music Effects – музыка победы, поражения, всяческие фанфары и т.п.

SE – Sound Effects – все короткие звуковые эффекты в игре


Все прочие пункты отвечают за текстовые сообщения и названия в игре, их там много, но все понятно без объяснений.


На этом мы заканчиваем разбор Базы Данных и в следующем уроке рассмотрим настройку локаций, а так же регионы.

Показать полностью 16
45

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 штук, название, которое использует только разработчик, два варианта триггера – автоматический и параллельный, а так же выбор переключателя, который может запускать данный ивент.


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

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


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


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


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

Показать полностью 10
75

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды

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

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

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

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

В правой части до боли знакомый список, расширяемый до 2000 позиций, а в центре, не менее знакомые «Основные настройки».


Тут так же, как и в предыдущих, можно задать название предмету, выбрать его иконку из предложенных и указать краткое описание. Описание делать настоятельно рекомендую, так как игроку должно быть понятно, для чего данный предмет вообще нужен. Причем, для предметов восстанавливающих, например, здоровье, крайне желательно указывать, сколько именно этого здоровья будет восстановлено. Разумеется, это справедливо для тех случаев, когда предмет хиляет на какое-то конкретное количество единиц или процент, а не идет расчет по формуле.


Далее нам предлагается выбрать Тип предмета и тут есть 4 варианта:


Обычный предмет – предметы этого типа будут расположены во вкладке инвентаря «Предмет»

Важные – расположены, в свою очередь во вкладке «Важный предмет»

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Как правило, Обычными предметами делают всякие расходники, а Важными – квестовые вещи.


Но у нас остаются еще два варианта – «Скрытый А» и «Скрытый В». Эти предметы не отображаются в инвентаре вообще и могут быть показаны только в списке, вызываемом командой ивента «Выбрать предмет». Откровенно говоря, я не помню, чтобы кто-то пользовался скрытыми предметами, и это было оправдано с точки зрения сюжета и геймплея, но… наличие возможности лучше, чем ее отсутствие.


В этом же ряду можно указать цену предмета в игровой валюте. Цена, указанная в Базе, не является единственно возможной и, при желании, можно задавать каждому предмету цену отдельно, непосредственно при создании конкретного магазина.


«Потребляемое» - имеется ввиду, можно ли предмет израсходовать. Если поставить «Нет», то предмет будет возможно применить, но он не исчезнет после этого.


Остальные поля ничем не отличаются от аналогичных во вкладке «Навыки».


Обратите внимание на то, что тут тоже есть поле «Урон», которое отвечает за настройку эффекта применения. Точно так же имеется строка для формул, которые можно использовать для расчета действия того или иного предмета, в зависимости от прокачки того, кто применяет предмет.


Далее у нас следуют вкладки «Оружие» и «Броня»

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост
RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Ничего принципиально нового вы в них не найдете – точно такие же поля и пункты меню, какие мы разбирали до этого, разве что следует отметить поле «Изменение параметров».


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

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

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

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

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


Ок, давайте разберемся с этой вкладкой подробнее.

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

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


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


«Награды» - количество опыта(экспы) и золота(игровой валюты), которое фармится с моба после победы над ним.


«Добыча» - три строки для выбора дропающегося лута. Есть возможность дропать оружие, предметы и броню в количестве один штук для каждой строки. Ниже имеется настройка вероятности, с принципом «один к…».

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Поле «Шаблон действий» уже поинтереснее. Здесь задаются навыки моба и то, как часто и в каких случаях он будет их применять. Дело в том, что в мукере нет AI, т.е. искусственного интеллекта для врагов и максимум, что возможно, это заскриптовать определенные действия под определенные ситуации.

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

В окне «Действие» можно выбрать навык и задать ему приоритет. Приоритет отвечает за частоту использования навыка. Основным навыком является действие с наивысшим приоритетом, следом идет навык, чем приоритет ниже на единицу (выполняется в половине случаев), и навык с приоритетом ниже на две единицы (выполняется в трети случаев). При равных приоритетах оба навыка будут использованы примерно одинаковое количество раз.


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


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


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

Таким образом, значения 1 и 2 дадут использования навыка на 1, 3, 6, 9 ходах. Если первое значение задать 0, то моб выполнит действие перед началом боя, если 0 выставить на втором, то действие выполнится только один раз, на указанном ходу.


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


Магические Очки – то же самое, только для МР моба

Состояние – навык используется, если на моба повесили то или иное состояние


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


Переключатель – соответственно, возможность завязать все на переключатели.

Казалось бы всё – с полем «Особенностей» мы давно, хоть и не близко знакомы, Примечания привыкли оставлять для команд плагинов. Привыкли же? А то я уже который урок их пропускаю, думаю, понятно, что это поле лучше просто оставить, как есть.


Всё, да не всё. Дело в том, что вкладка «Противники» это просто данные о противниках, а персонажи вступают в бой с отрядами. Да, вот так. Переходим во вкладку «Отряды».

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Тут уже все значительно отличается, правда? Да, тот же список на 2000 потенциальных мест, но вот правая часть совсем другая.


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

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Поле «Основные настройки». Название в данном случае нужно только для разработчика, так как игроку показываются имена самих мобов, а не название отряда. Чтобы не ломать голову над этими названиями есть даже кнопка «Автоматически», которая … автоматически подберет вам это название.


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


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

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

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


Если мы хотим добавить моба в отряд, то нужно просто выбрать его из списка справа и нажать кнопку «Добавить». Там даже значок < поставили добрые японцы, чтобы, значит, даже полным дебилам было понятно, добавить – туда. Аналогично мобы и удаляются из отряда.


Кнопка «очистить» удаляет из отряда всех, а «выравнивать» - центрует моба на экране.


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


И, наконец, внизу мы видим поле «Событие битвы». Это точно такой же редактор событий, они же ивенты, со всем их функционалом, только для использования в бою.

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Условия запуска у событий битвы отличаются от обычных ивентов и завязаны на происходящее в бою.


В принципе, тут по названиям все понятно – вычисление хода идет по тому же принципу, что и у действий противников, ХРшки, переключатели – все это работает, как обычно. Галочка «конец хода» указывает на то, что сперва должно завершиться выполнение всех действий в бою, а потом уже начнет выполняться код ивента. Если галочка не стоит, то ивент сработает сразу, как только сможет.

RPG Maker MZ: урок №15. База Данных: Предметы, Оружие, Броня, Противники, Отряды RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

«Период» - указывает на то, когда и сколько раз ивент может быть выполнен.


Битва – один раз за битву.

Ход – один раз за ход

Момент – столько раз, сколько будет возможно.


Разумеется, все указания периода работают только тогда, когда соблюдены Условия.


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


Ладно, на сегодня этого достаточно, я полагаю)

Показать полностью 14
34

RPG Maker MZ: урок №14. База Данных: Навыки

Продолжаем продолжать, как говорит один известный блогер, и переходим к вкладке «Навыки»


Кто хочет, может перейти с помощью видео:

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

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Всего нам предоставлено 235 уже открытых слотов, из которых 139 заняты заготовленными скиллами, 87 пустых резервных и еще 9 - просто под разметку. Расширить список можно до 2000 штук, с помощью знакомой кнопки внизу.


Все действия в бою, как персонажей, так и их противников, кроме команд «Побег» и «Предмет» являются навыками, заранее внесенными в Базу Данных. Т.е. через навыки реализуется всё, кроме использования предметов и выхода из самого боя. Навыки можно применять не толкьо в бою, если у них стоит соответствующая опция.


В средине окна у нас четыре поля – «Основные настройки», «Вызов», «Сообщение» и «Требуемое оружие»


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


Ниже есть возможность выбрать Тип навыка из «Нет», «Магия» и «Особый» по умолчанию. Это тот самый тип навыка, который мы добавляли для использования в Классы. Типов изначально два, но их количество можно увеличивать, равно как и изменять их названия. По сути, это просто группировка нескольких навыков в одну семью.


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

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Расход МР и Расход ТР – эти пункты позволяют задать зависимость навыка от имеющихся в наличии единиц второй и третьей полоски в меню персонажа. По умолчанию, эти полоски обозначены, как МР – Магические очки (Мэджик поинт) и ТР – Тактические очки (Тэктикал поинт), но их название можно изменить, поэтому рекомендую воспринимать эти две полоски просто, как штуку, чье числовое значение можно изменять при использовании скилла.


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

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Расставляя галочки на нужных пунктах, мы можем добиться разных эффектов, объяснять которые особого смысла не вижу – тут все интуитивно понятно. Единственное, чего стоит коснуться, это варианта поля «Сторона» - Нет.


Если выбран пункт «Нет», то навык, казалось бы, невозможно применить вообще, так как не на кого. Зачем вообще этот вариант нужен? С его помощью можно запускать Глобальные Ивенты, до которых мы вскоре доберемся, а пока просто запомним, что есть такая фича.


Доступность – показывает, когда можно скилл использовать. На выбор даются 4 варианта:


Экран битвы – т.е. в бою

Экран меню – вне боя, из меню

Всегда – и в бою, и вне боя

Никогда – навык не может быть применен по желанию игрока.


Опять же мы имеем не совсем ясный вариант «Никогда». Скиллы с таким параметром можно применить только по скрипту, т.е. только тогда, когда это нужно по сюжету. Скилл применяется командой ивента, а не выбором игрока.


Ниже у нас находится поле «Вызов», имеющее 4 числовых параметра и два дополнительных пункта настроек.

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Скорость – величина, прибавляемая к базовому значению параметра «Ловкость», с помощью которого определяется очередность ходов в стандартной боевке. Чем значение выше, тем выше вероятность, что персонаж ударит первым.


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


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


Прирост ТР – мукер дает нам возможность с каждым применением какого-либо скилла, увеличивать значение третьей полоски. Почему бы и нет, как говорится.


Тип удара:

Точная атака – скилл невозможно отразить, парировать или контратаковать

Физическая атака – вероятность попадания вычисляется по показателям уклонения от физических атак (задается в поле «Особенности»)

Магическая атака – то же самое, только используется показатель магического уклонения


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

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Поле «Сообщение» отвечает за выводящиеся на экран информационные сообщения во время боя. Используются теги %1, который заменяется на имя пользователя скилла и %2 – заменяется на название скилла.


Если вбить в это поле «%1 колдует %2!», то при применении навыка в бою на экране будет написано, например: «Рид колдует Торнадо 1!» (если он кастовал Торнадо 1, разумеется).

Под полем есть даже три кнопки с уже забиндинными на них соответствующими фразами. Чтобы, значит, совсем клавиатурой не пользоваться;)

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

По личному опыту скажу, что 99% игроков никогда этот флуд не читают, и остался данный атавизм еще аж со времен текстовых RPG. Поэтому, обычно хватает простого названия у каких-то заклинаний, которые юзают мобы – игрок и так видит, что он использовал. А лишний текст только визуально перегружает экран, причем японцы это давно поняли и не использовали даже в той же final fantasy, которая во многом копируется мукером.


Тип оружия – тут все просто. На персонаже должно быть экипировано оружие определенного типа. Без него скилл применить невозможно. Типов можно выбрать два, работают они по принципу либо-либо. Т.е. если хотя бы один из типов есть, то скилл срабатывает. Вариант «Нет», соответственно, означает, что навык не требует какого-либо оружия для использования.

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Переходим к самой мякотке – поле «Урон»


Название, конечно же кривое, причем это не проблемы машинного перевода, а именно некорректное название. Поле отвечает необязательно за урон, но за результат применения скилла.

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

Тип - разделяется на повреждение и восстановление ХР и МР, т.е. первой и второй полоски, а так же на поглощение того и другого. Поглощение, это, условно говоря, вампиризм. Т.е. скилл отбитает у цели и отдает тому, кто этот скилл заюзал. Вариант «Нет» просто отключает это поле, указывая на то, что скилл не боевой, а, например, пассивный.


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


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


Формула. Вот то, о чем я так долго и упорно твердил в прошлом уроке. Именно в этой строке начинаешь понимать, что все эти Атаки, Защиты и прочие кривые – просто элементы формулы действия.


Как мы видим, у простой Атаки формула имеет вид: a.atk * 4 - b.def * 2


а – это герой, atk – сила атаки (определяется числом параметра Атака+параметры шмота), далее это все умножается на 4 и от полученного числа отнимается значение защиты(def) цели(b), умноженное на 2.


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

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

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


Опять же, в десятый раз повторюсь – да, для движка mp – это Магические Очки. Ну, так этот параметр в нем называется. Вам нужно просто запомнить, что имеется ввиду значение второй полоски. И то, что максимальный размер значения этой полоски зависит от параметра Макс.МР.

А уж саму полоску и параметр Макс.МР вы в игре можете переименовать и представить, как что-то другое, необязательно как ману. Я же говорил, что создание игр – это создание иллюзий на экране?)


В формулах можно производить операции сложения, деления, умножения, вычитания – т.е. простые арифметические действия. Также поддерживаются действия в скобках, и возведение в степень двойной звездочкой **, после которой степень и указывается.


При составлении собственной формулы, следует помнить, что перед любым тегом обязательно ставится указатель а или b (а – персонаж, b - цель) через точку.


Важно помнить, что всякого рода дополнительные характеристики из полей «Особенности», накладываемые на персонажа/класс/шмот и т.д. не учитываются в самой формуле, а применяются к результату ее вычислений!


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


Под строкой формулы мы видим еще две настройки. «Вариантность» отвечает за разброс итогового значения, высчитанного по формуле. Например, 20% будет означать, что значение будет колебаться в пределах 20% как в плюс, так и в минус. Т.е. эффективность скилла будет между 80% и 120% случайным образом.


Критический – определяет возможность крита для данного скилла. Крит – базовое значение по формуле, умноженное на 3.


Наконец, последнее поле «Эффекты». Здесь можно задать дополнительные сопутствующие эффекты действия, такие как наложение/снятие статусов, бафы/дебафы и т.д. В принципе, ничего сложного, поле нужно для создания всяких небоевых навыков, либо для придания боевым дополнительных характеристик.

RPG Maker MZ: урок №14. База Данных: Навыки RPG maker, Gamedev, Урок, Курс, Видео, Длиннопост

И последнее, что нужно сказать про Навыки – вы видите, что первыми двумя пунктами в списке идут Атака и Защита. Эти пункты отвечают за команды боевого меню – «Атака» и «Защита», соответственно. Команды эти отдельные и не относятся к какому-либо типу скилла, такому как «Особые», «Магия» и т.д. Мы еще коснемся этого момента, когда будем разбирать стандартную боевку. Пока достаточно просто запомнить, что первые два скилла в списке это отдельные пункты меню в бою.


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


Переваривайте пока, салямара!

Показать полностью 10
41

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы

Как бы удивительно ни прозвучало, но мы с вами рассмотрели основные команды ивентов! Вы скажете, мол, Луар, но ведь там этих команд целый вагон – три страницы как-никак, неужели остальные бесполезны? Они, безусловно, полезны и регулярно используются, но функции большинства из оставшихся интуитивно понятны из названия. Да, есть еще несколько команд, требующих незначительных разъяснений, но мы коснемся этого в самом конце курса в одном общем уроке, а пока отвлечемся от кода и обратим свое внимание на Базу Данных.


Для тех, кто предпочитает отвлекаться глазами и ушами, запилено видео:

Мы уже рассматривали вкладку Тайлсеты, а теперь давайте пройдемся по остальным:


Персонажи

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Персонаж – в мукере, один из героев игры, который может становиться членом команды (партии), управляться игроком (будучи на первом месте в списке партии) и вступать в бой.


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


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


Это не какие-то виртуальные люди или типа того. Это просто куски кода. Код НПС – находится в ивенте, причем необязательно том самом, который его отображает. Код персонажа – в базе и только в ней


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


Единственный персонаж, которым можно управлять как с клавиатуры, так и при помощи команд ивента, это тот, который находится на первом месте в списке текущей партии (но не списка в базе!). Его мукер маркирует, как «Игрок».


Со списком персонажей все должно быть понятно. Типичный мукерский список, как у тайлсетов, переменных и переключателей. По умолчанию открыто 8 слотов, список расширяется кнопкой внизу до 1000 (тысячи) штук. С трудом могу представить игру, где будет 1000 персонажей, ну, да ладно.


В окне «Основные настройки» можно ввести «название», которое будет отображаемым именем персонажа, а так же его прозвище, которое будет отображаться рядом с именем. Прозвище нужно ни для чего. Совсем. Никакого функционала с этими данными не связано, и прозвище существует просто так.


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


Правее от класса задается минимальный и максимальный уровень, который доступен для вкачивания. Без плагинов максимально возможный уровень – 99. Плагины на увеличение этого числа есть.


Ниже мы видим поле «Описание» - сюда можно вбить краткую биографию персонажа. Или анекдот. Главное примерно уложиться в размер этого маленького окошка – больше просто не влезет в экран меню.

Или ничего не вбивать – функциональность этого поля такая же, как у «прозвища».

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост
RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Ниже, в поле «Изображение», можно выбрать лицо персонажа, которое будет отображаться в меню, его чарсет и набор анимаций для битв (с ними позже разберемся)

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Еще ниже расположено поле «начальная экипировка» в которой задается … начальная экипировка персонажа. Здесь можно выбрать то оружие, броню и т.д., которое будет у персонажа при первом присоединении к партии (или с начала игры, если персонаж в партии находится сразу).

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

В правом верхнем углу находится поле «Особенности» с большим количеством различных характеристик, которые идентичны таковым в разделе БД «Классы», поэтому мы их рассмотрим позже.


И, наконец, поле «Примечание» - нужно для внесения каких-то заметок. Служит исключительно как блокнотик для разраба, никак не используется движком и не показывается игроку. Но! Рекомендую оставляют это поле пустым, так как многие плагины используют для внесения тегов, которые позволяют творить всякое разное.


Классы

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Классы – в мукере, набор характеристик, скиллов, параметров, а так же кривая прогрессии прокачки и кривые прокачки параметров. Применяется только к персонажам.


Список точно такой же, как и в Персонажах, расширяется до 1000 штук, название класса можно ввести или изменить в поле «Основные настройки».


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


Окно «Кривой опыта» имеет для удобства две вкладки:


До следующего уровня – количество опыта, необходимое для достижения следующего уровня


Всего – полное количество опыта, которое тратится на изучение уровня, с учетом того, которое было потрачено на предыдущие.

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост
RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


Ползунки задают данные для расчета кривой прогрессии опыта, которая вычисляется по сложной формуле:

[Базовое * [(уровень -1) ^ (0,9 + (ускорение1 / 250))] * уровень * (уровень + 1)] / [6 + [([уровень ^ 2] / 50) / ускорение2] + [ (уровень -1) * доп.значение]

Впрочем, обычному земному мукеристу эта формула, что козе логарифмы. Так же непонятно, неинтересно и неприменимо.Достаточно просто знать, что:


Базовое значение – собственно, задает базовое значение для вычислений. Может принимать значения от 10 до 50


Дополнительное значение – прибавляется к базовому и нужно для более тонкой настройки


Ускорение 1 – влияет на возрастание количества опыта, требуемого для получения следующего уровня


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


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


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


Здесь нужно пояснить - несмотря на то, что данные параметры представлены, как максимальное здоровье, мана, атака, защита и т.д., нужно осознавать и помнить, что это все просто числовые значения. Никто не говорит, что параметр «Атака» обязан называться именно так (название можно изменить) и отвечать за атаку. Это просто один из параметров, значение которого можно использовать в формуле для расчета результата действия в бою. А так же извлекать его в переменную и уже с ней что-то делать.


Да, по дефолту, параметр Макс.НР отвечает за максимально возможное количество очков здоровья на каждом из уровней и вы можете использовать этот параметр именно так. Но при этом, Макс.НР – просто число в характеристиках и первая полоска персонажа. Что показывает эта полоска – решать вам. Изначально ХПшки, но это может быть не РПГ, верно? Может, вы делаете симулятор свиданий и никакие ХПшки в нем нафиг не нужны? Тогда это будет, например, привлекательность. И в формулах вы будете это значение использовать не на уменьшение, а не увеличение. Ну, это чисто как пример.


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


Как бы то ни было, но кривые прокачки параметров есть и при желании их можно настроить под себя. Окно настроек тут попроще, никаких сложных формул – вам предлагается просто вручную задать значение параметра для каждого уровня, либо выбрать из шаблонов A, B, C, D, E. Можно так же задать начальное и конечное значение, а потом ползунком регулировать темп роста параметра (кнопка «Создать кривую»).

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

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


Все настройки выражаются в выборе скилла из базы и уровня на котором он появится у персонажа.

RPG Maker MZ: урок №13. База Данных: Персонажи, Классы RPG maker, Gamedev, Курс, Урок, Видео, Длиннопост

Ну и, наконец, «Особенности».


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


Шанс стать целью – определяет вероятность того, что враг будет выбирать представителя данного класса в качестве цели. Не путать с шансом на то, что по нему попадут.


Шанс попадания – меткость класса


Добавить тип навыка – добавляет пункт выбора навыка определенного типа в бою


Экипировка – разрешает/запрещает/блокирует слот определенного типа оружия/брони


Почему я указал именно эти 4 особенности? Потому, что все особенности по умолчанию отключены, либо имеют нулевое значение, если не указано иное! И таким образом, не указав «Шанс стать целью» мы получим ситуацию, в которой мобы НИКОГДА не атакуют представителя класса. Точно так же, как мы получаем абсолютно косой класс, забыв указать значение на «Шанс попадания». Без «Добавить тип навыка» мы лишимся всего, кроме стандартной простой атаки, а без разрешенной экипировки представитель класса не сможет ничего на себя надеть.


Все остальные Особенности – штука кастомная, кому-то нужная, а кому-то нет, там нужно смотреть по ситуации. Например, Шанс уклонения влияет на вероятность того, что противник промажет. Необязательная штука, но хотя бы небольшую вероятность иметь было бы неплохо, согласитесь? Равно, как и шанс крита.


Следует помнить, что все параметры класса не являются единственной составляющей в формулах боевки. Кроме того, следует так же помнить, что окно «Особенности» присутствует в разделе Персонажи, Классы, Оружие и Броня, причем если у одного персонажа будут указаны одинаковые Особенности в разных разделах, то их показатели суммируются!


Иначе говоря, если мы зададим Персонажу шанс уклонения 25%, его классу тоже 25%, то у него в игре уже будет 50%. А если добавить сюда броню на 25% уклонения и оружие с такими же 25% на уклонение, то получим неубиваемую имбу, так что это все нужно учитывать.


Ну, что? Не вывихнули мозг еще? В следующем уроке у нас Навыки – там формулы будут, точно вывихнем))

Показать полностью 10
53

RPG Maker MZ: урок №12. Работа с изображениями

Помните, в предварительных статьях к данному курсу я говорил, что мукер обладает необходимым функционалом для запиливания визуальных новелл? А что нужно для этого? В первую очередь нужна возможность выведения изображений на экран. Ее сегодня и рассмотрим.


Разумеется, для ценителей есть и видео версия:

Поле «Изображение» находится на второй странице списка команд ивента и содержит в себе пять этих самых команд:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

«Показать изображение» - выводит на экран любую картинку в формате png (мукер работает только с такими) согласно координатам заданным в поле «Позиция». Координаты могут быть заданы как вручную, так и взяты из переменных. Координатная сетка задана в пикселях относительно выбранного размера окна игры, а не карты, где нулевой точкой будет верхний левый угол. Положительные значения оси Х расположены справа от нуля, а положительные Y – ниже нуля. Т.е., как и в случае с тайловой сеткой, мы имеем «перевернутую» ось Y.


Размер окна игры по умолчанию: 816x624 пикселей, что может быть изменено в Базе Данных, но мы позже до этого доберемся. В MV размер окна средствами движка не изменяется, но для этого существуют специальные плагины.


Сложна, нипанятна! Давайте на практике рассмотрим – будет понятнее.

У нас есть НПС и диалоги с ними. Допустим, мы желаем видеть не эти маленькие фейсы в окне сообщения, а полноценные изображения персонажей по пояс. Возьмем Любителя Опят, удалим его фейс из окна сообщения и перед командой вывода этого сообщения добавим команду «Показать изображение»:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Выбираем из списка «Изображение» нужную картинку, в данном случае это будет Actor1_7. Как мы видим, каждому изображению можно присвоить соответствующий номер, причем, чем больше число в номере, тем выше приоритет отображения картинки, т.е. картинка 2 будет показана поверх картинки 1, например.


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


Картинка всегда выводится поверх всего, что происходит на карте и прикрепляется к окну, а не к карте. Т.е. при перемещении персонажа по карте, картинка продолжит статично висеть на экране.


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


Как же нам понять, какие координаты следует вводить, чтобы наша картинка оказалась, например, по центру экрана?


Есть два способа – дефолтный и лайвфпсчхакерский.


Дефолный представляет из себя геморрой с калькулятором.


Сперва выберем в поле «Позиция» вариант центр.

Мы знаем, что размер окна 816х624 пикселя. Делим ширину пополам и получаем 408 – это будет координата по Х.


С игреком сложнее. Если мы зададим координаты Y=624, то у нас нижняя половина чувака скроется за нижней границей экрана. Поэтому берем размеры картинки (330х350) и высоту делим на 2. Получаем 175 и из 624 отнимаем эти 175. Получаем Y=449

Итого Х = 408, а Y = 449. Вносим, сохраняем и проверяем.

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Так себе, да? Диалоговое окно хоть и имеет прозрачность, но все равно портит вид. Выход – картинку надо поднять еще выше. Как понять насколько выше? Можно, конечно, заскринить и тупо измерить в том же ФШ, но я и так скажу – примерно 170 пикселей. Как я определил? Да по тайлам. Сетка тайловая 48 пикселей, окно закрывает три с половиной тайла. Это примерно 170 пикселей и будет. 449-170=279


Давайте проверим штоле:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


Метод второй - лайфпсчнхак


Создаем в ФШ пустой лист размером 816х624. Делаем скриншот окна игры с открытым диалогом, например сочетанием Win+Shift+S или простым PrintScreen. Помещаем скрин на этот лист (Ctrl+V), только аккуратно, чтобы границы окна совпали с границами листа:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Теперь находим нашу картинку – Папка Проекта -> img -> pictures. Открываем в ФШ и перетаскиваем на первый лист.

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

А теперь просто скрываем нижний слой со скрином (нажать на иконку глаза в списке слоев, список вызывается нажатием на F7) и сохраняем в Папка Проекта-> img -> pictures, можно даже прямо с заменой исходного Actor1_7, только соседнюю вкладку с этой картинкой в ФШ закройте, а то он ругаться будет.

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

В итоге мы получаем лист размером с экран игры и теперь не нужно запариваться с координатами. Ставим в поле «Позиция» вариант «Верхний левый угол», а Х и Y у нас будут равны 0. И смотрим на результат:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Красота, а главное просто. Теперь вам даже скриншоты уже будут не нужны – просто открываете эту картинку, как шаблон и можно по ней центрировать другие изображения персонажей.


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


Ну, почти никогда.

Иногда нужно картинку сдвинуть. Например, персонаж появился по центру, сказал фразу, после чего красиво отъехал в левую сторону, уменьшился и на его месте появился уже другой.

Для этого нам потребуется команда «Переместить изображение».

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


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


Выбрали самый верхний инструмент (Перемещение) навели на линейку у левого рабочей области ФШ и потянули вправо с зажатой ЛКМ. Появившуюся направляющую тащим до края рисунка:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Кстати, если забыли, то линейки можно включить в настройках ФШ по сочетанию Ctrl+K.


Фотошоп нам подсказывает, что координата края рисунка по Х = 245 пикселей. А по Y нам не надо, там останется без изменений, так как мы планируем смещение по горизонтали.


Таким образом, мы понимаем, что конечная точка смещения будет находиться по Х= -245 (отрицательное, так как смещаем влево, относительно начала координат) и Y=0


Поле «Изменение скорости» предлагает нам на выбор 4 варианта перемещения – с ними тоже все просто и ясно по названиям.

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Поле «Продолжительность» задает время в кадрах, за которое должны произойти изменения. Я задам 30 кадров, так как полсекунды – вполне приемлемо, а вот секунда уже долго для диалога.

Вот такие настройки должны получиться в итоге.

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Теперь добавим ответ от лица героя.

Создаем сообщение, потом с помощью фотошопа делаем то же самое, что делали для изображения НПС, только с картинкой героя

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Тут можно сразу прикинуть координаты смещения. На этот раз после сообщения мы будем смещать его вправо и тут чуточку сложнее. Вычисляем с помощью направляющей координаты крайней правой точки рисунка – 556 будет, вычитаем это значение из ширины экрана 816-556=260. Смещаем вправо, поэтому Х=260.


Сохраняем все это дело и создаем необходимые команды в мукере. Должно получится следующее:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Будьте внимательны с номерами изображений! 1 – это у нас картинка с НПС, а 2 будет с героем. Номера действительны до тех пор, пока изображения не удалены с экрана. Если под одним и тем же номером попытаться отобразить две картинки, то последующая удалит предыдущую.


Проверяем, что получилось!

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Ну, так-то неплохо, но чего-то не хватает, верно? Не совсем понятно, кто из чуваков говорит. А уж если их диалог продолжится, то будет совсем плохо:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Что делать? На помощь придет команда «Оттенок изображения»

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Здесь мы можем задать изображению оттенок, причем, как вручную, так и воспользовавшись пятью шаблонами. Предлагаю просто выкрутить на максимум ползунок «Серый», тем самым обесцветив изображение неактивного участника диалога. Продолжительность выставлю в 1 кадр, так как не хочу тратить время на этот эффект.


Чтобы вернуть изображение в исходное состояние, достаточно будет просто применить шаблон «Стандарт» в команде.


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

Вот такой код получился:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Т.е. НПС или герой произносят фразу, становится серым, оппонент становится обычным, произносит фразу, становится серым и так далее. Код выглядит сложно, но писать подобное просто – создаешь один шаблон, дальше копировать-вставить в нужных местах, главное с номерами картинок не ошибиться.

Смотрим на примере:

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Ну, что? Более-менее понятно? Даже более-менее работает. Осталось лишь удалить картинки с экрана, так как они остаются висеть до тех пор, пока не получат команду на удаление. Команда максимально простая и требует лишь ввод номера картинки, с ней вы разберетесь сами.


Также самим вам я предлагаю разобраться с полями «Масштаб» и «Смешивание» в окошках показа изображения и его перемещения. Со смешиванием мы уже сталкивались, вы помните, что непрозрачность в мукере задается по шкале от 0 до 255, где 0 – невидимость, а 255 – отсутствие прозрачности. Режимы смешивания – это режимы вывода изображения на экран с учетом того, что было нарисовано на нем до этого. Их проще попробовать, чем заочно понять.


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


Кроме того, не буду я пристально рассматривать команду «Поворот изображения», потому как нечего там рассматривать. Две настройки – выбор номера картинки и скорость вращения относительно выбранной точки начала координат (верх-лево или центр). Если честно, то не припомню разумного и оправданного использования этой фичи.


Ах, да, чуть не забыл про то маленькое ДЗ, которое я дал на прошлом уроке!)

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

RPG Maker MZ: урок №12. Работа с изображениями RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Просто после каждого вопроса увеличиваем значение переменной на единицу, а после перехода по метке ставим ветвление с проверкой на равенство значения нужному количеству переспрашиваний.


Хотел задать вам на этот урок HUD на картинках, чтобы количество собранных грибов отображалось на экране, но… боюсь, это будет слишком сложно. Сделаем попозже!


Сайгакора!

Показать полностью 21
50

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа

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


Разумеется, для желающих есть и видео версия:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


Теперь перейдем к сегодняшним темам, и начнем с команды «Показать Выбор».

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Извините за политическую шутку, но показалось уместным:)


Команда располагается в поле «Сообщение» прямо под командой «Показать сообщение» и вызывает вот такое окно:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


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


Настройки справа:


Фон – то же самое, что и Фон у окна ввода сообщения, дает выбор между оконным режимом, уменьшенной освещенностью и прозрачностью


Положение окна (Справа, Середина, Слева) – определяет местоположение меню выбора на экране


По умолчанию – на каком из вариантов будет стоять курсор при появлении выбора. Учитывайте это, так как многие игроки любят скипать диалоги и случайно клацают пробелом тогда, когда нужно было сделать выбор. Возможность можно отключить, выбрав вариант «нет» и тогда курсор по умолчанию будет скрыт.


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


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

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Давайте сразу займемся самым сложным из НПС, которые у нас имеются – Любителем грибов.


Добавим в начальный диалог выбор для игрока, хочет ли он брать данный квест.

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

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Под сообщением ставим выбор с двумя вариантами:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Работает. Кстати, заметили, что фразы персонажей и НПС никак физически не привязаны к ним самим? Не знаю, нужно ли это пояснять, но на всякий случай – диалоги, это просто сообщения на экране с разными настройками. Т.е. в ивенте НПС прописываются не только его фразы, но и ответы игрока. Диалог двух НПС обычно пишется в ивенте одного из них, а второй выступает просто в роли болванчика для вида. Так проще, но иногда новички недоумевают, мол, как так, говорит герой, но команда на это сообщение находится не в нем, а черт знает где.

Нужно привыкать к тому, что НПС и герои – это просто графика на экране, а управляться она может откуда угодно.


Так, ну простой вариант выбора мы разобрали. А что если сделать длинный ветвистый диалог? Да, это возможно, но потребуется внимательность, так как лесенки из вложений дело опасное и трудночитаемое.


Обратимся к любителю мухоморов и запилим в его ивенте после первого сообщения диалог следующего вида:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Дальше, под вариантом «Сейчас принесу» включаем переключатель квеста(я его уже задействовал в ивентах мухоморов) и добавляем сообщение от лица героя, намекающее игроку на поставленную задачу.


Ниже, под вариантом «А зачем тебе мухоморы» выдаем сообщение, что НПС ими питается и вопрос, любит ли мухоморы наш герой.


Третий вариант с отказом оставляем как есть, так как он у нас выбран в качестве варианта отказа от квеста.

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Теперь под вопросом НПС мы создадим еще один выбор:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

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


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


Поскольку RPG Maker создан не для запиливания новелл (в отличие от Visual Novel Maker от этой же компании), то функции прокрутки сообщений взад-вперед в нем по умолчанию нет. Функции нет, но необходимость есть. Реализовать такую возможность удается с помощью команды «Метка».


Команда расположена в поле «Управление процессом» и вызывает простенькое окно настроек с единственной возможностью – ввести имя метки.

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Для погроммистов и сочувствующих – метка, это что-то вроде Go To.


Метка ставится в какой-либо части кода, к которой мы хотим иметь возможность вернуться при необходимости. Помним, да, что выполнение команд происходит подряд сверху вниз? Так вот, при обращении к метке, игра начинает заново выполнять команды ивента начиная с того места, где метка стоит.


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


Внимание: в команде «Переход к метке» нужно вводить имя метки без ошибок и точно так же, как вводили при ее создании! Регистр имеет значение, т.е. мукер различает большие и маленькие буквы. Язык ввода имени метки значения не имеет.

Создадим метку перед сообщением о том, что НПС ест мухоморы и обратимся к ней при выборе варианта «Повтори, я не расслышал»

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Кстати, если кто-то из вас играл в Final Fantasy IX, то может помните момент, где нужно было 63 раза переспросить НПС таким вот образом, чтобы увидеть пасхалку?) Подумайте – как можно такое реализовать, а я на следующем уроке расскажу, если не забуду.


Ну и давайте применим еще одну простенькую команду, которую я в названии анонсировал – «Ввести число».


Расположена она в поле «Сообщение» под «Показать выбор»

Эта команда делает лишь то, что запрашивает у игрока какое-либо число и записывает его значение в переменную. Всё. Тоже мне команда, скажете вы! И толку от нее? От нее толку немного, но иногда можно его извлечь, например, делая кодовый дверной замок.


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


Окей, нет проблем, создадим яму!

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Графика подходящей ямы лежит у нас на вкладке D, которую мы создавали в первых уроках.


Рассмотрим код этого ивента:


Сперва идет сообщение о том, что эта яма делает. Затем выбор из двух видов грибов и варианта отмены. Далее просим игрока ввести число, длиною в один разряд – нам больше и не нужно. Потом у нас идет ветвление, где сравнивается значение переменной «Мухоморы» и переменной «На выброс» и, если Мухоморы больше или равны ей, то вычитаем значение «На выброс» из значения «Мухоморы». И выводим простенькое сообщение, мол, операция прошла успешно.


Вроде бы все просто, верно? Проверим, как это все работает:

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа RPG maker, Gamedev, Урок, Курс, Видео, Гифка, Длиннопост

Как видно, все работает. Ввод цифр непосредственно с клавиатуры мукер из коробки не поддерживает (разумеется, есть плагины на этот случай) потому, что копирует механики классических JRPG, которые создавались под консольное управление. А в MZ добавили еще и кнопки на экране, которые можно тыкать мышью или жирными пальцАми на сенсорном экране. В MV таких кнопок нет.


Синьоронора!

Показать полностью 20
65

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента

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


Для любителей видео уроков я сделяль… видео урок:

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

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост
RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Что же они из себя представляют?


Переключатель – в мукере, по сути, является переменной, которая способна хранить лишь два значения: ноль или единицу, и только их. В движке эти значения обозначаются, как ВКЛ и ВЫКЛ, соответственно.


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


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


Итак, у нас есть переключатели, и они могут быть либо включены, либо выключены. Их команда располагается в поле «Внутренние данные», прямо над переменными:

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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


Что нам это дает?

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


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

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

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

На второй же странице внесем изменения в сообщение, которое отвечает за ситуацию с переменной равной нулю, а условиях запуска страницы поставим галочку в графе «переключатель» и выберем наш переключатель, соответственно.

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Теперь, НПС будет различать, выдавал ли он этот квест ранее. Проверим:

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Работает. Первый раз НПС дает квест, а в последующие напоминает, что уже просил об этой услуге.


Но почему я сделал именно так, а не просто создал новую страницу, задав на ней первое сообщение и включение переключателя, а на первой не поставил его в условиях?


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


В Содержимом все выполняется подряд, если условия выполнены, это мы с вами уяснили, я надеюсь. Теперь придется понять и запомнить то, как мукер обрабатывает условия страниц.

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


Сложно? Попробую объяснить.

Если у нас есть страницы 1,2 и 3, то проверка условий будет осуществляться сперва у 3, потом у 2 и потом у 1. Проверка идет в этом обратном порядке до тех пор, пока движок не натыкается на страницу, которую может запустить. Короче, тут как в армии – при прочих равных исполняется тот приказ, который был отдан последним:)


Именно поэтому я и поставил страницу с условием второй, а не первой. Да, понимаю, это не интуитивно нифига, но что поделаешь – такое уж устройство у движка.


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


Переходим в ивент опят:

Принцип тот же самый – копируем-вставляем страницу,создав новую (я рекомендую это делать потому, что так вы не накосячите с графикой и прочими настройками страницы), первая страница у нас будет без условий, но с сообщением, мол, тут растут опята, но нам они не нужны:

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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


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


Ну, с ее страницами все понятно – уже два раза показывал, повторяем то же самое. Как вы догадываетесь, квест будет завершаться командой выключения переключателя. Ее нужно вставить после сообщения «Ты собрал пять грибов!» - это и будет точка окончания квеста.

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

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


Так, теперь у нас есть квест, возможность его взять, выполнить и завершить. Но он многоразовый! У нас нет варианта диалога на случай, если мы квест уже выполнили! Что делать? Заводить еще один переключатель типа «квест Грибы вып.»? Можно так, но можно проще – воспользуемся Локальным Переключателем.


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


Локальные переключатели служат для ручного переключения страниц внутри ивента. Всего их 4 – A,B,C и D. Локальный переключатель А(например) использованный в одном ивенте, не имеет ничего общего с локальным переключателем А в ивенте другом.


Если вы заметили, то под локальные переключатели выделено отдельное поле в Условиях запуска страницы ивента.

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


Воспользуемся этой фичей и впихнем локалку сразу после выключения переключателя на сбор грибов:

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Теперь создаем страницу 3 (можно копированием, как и раньше), где пишем новое сообщение:

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Ну и остается нам немножко доработать Мухоморы и Опята. Если с Мухоморами все просто – ставим галочку и добавляем в условия переключатель Сбор Грибов, то у Опёнка, как мы видим, уже заюзано условие на сбор именно Опят.


Можно, конечно, включать переключатель Сбор Опят у ведьмы, но зачем? Это будет не совсем правильно – игрок же не общался с Любителем Опят. Поэтому просто скопируем страницу 2 ивента Опёнок и в копии поставим условием переключатель Сбор грибов.

RPG Maker MZ: урок №10. Переключатели, локальные переключатели и страницы ивента RPG maker, Gamedev, Курс, Урок, Видео, Гифка, Длиннопост

Не забудьте повторить это все и для мухоморов тоже.

Ну, что же? Проверим) Ссылкой с таймкодом я вам результат скину, так как в гифку не влезает)


youtu.be/aB-3WoCpsYM?t=1101


Напоследок скажу, что Переключатели – прекрасный инструмент для управления всем, что происходит в игре. Это ваши кнопки, которыми вы запускаете события, катсцены, заскриптованные моменты и т.д. А локальные переключатели – прекрасный способ делать одноразовые «исчезающие» ивенты. Попробуйте на досуге сделать наши грибы срываемыми, чтобы они пропадали с карты после того, как игрок их заберет. А я на следующем уроке это упомяну, если не забуду


Солёнора!

Показать полностью 14
Отличная работа, все прочитано!