Всем привет!
Как говорится, не прошло и три года, а я уже со всех лап спешу донести наконец-таки очередную свою поделку «One Neko Story v0.02 pre-alpha2». На этот раз можно не только посмотреть на карту, но и даже поизучать и взаимодействовать предметами, NPC итд.
Но обо всём по порядку!
Новая версия представляет собой уже что-то более менее похожее на игру. Имеются три дополнительные локации: это комната главной героини, откуда собственно и начинается повествование истории, дом, в котором она проживает вместе с мамой и собственно небольшой подвал, он же погреб.
История начинается с того, что главной героине снится странный сон, который прерывается звуком будильника. Изначально (ещё в версии под VX Ace) это был небольшой вступительный ролик с титрами в виде сна. Сейчас мне показалось, что это выглядит немного блёкло, поэтому пока не хочу вставлять это в игру. Возможно в будущем это будет что-то типа отдельной видео вставки, а может что-то в виде комикса. В любом случае время подумать ещё будет.
В данной версии используется моя новая разработка плагин для RPG Maker MV — NPC. Не смотря на довольно короткое название это целый конструктор. Изначально планировалось, что это будет что-то типа упрощенного варианта диалогов. Мне не нравилось, что при каждом диалоге в новом месте (локации) приходилось создавать новое событие (event) на карте и с помощью кучи переменных, как локальных, так и глобальных разруливать варианты ведения разговора.
Конечно, при простеньких диалогов это было не так страшно, но чем больше появлялось ветвлений и вариантов ответов, запутаться становилось всё проще и проще. Так же было очень неудобно, когда NPC, с которым вёлся диалог, перемещался по карте. Это могло быть как в пределах одной карты, так и совершенно на других картах и при различных условиях.
Так появилась идея создать для каждого действующего лица свой сценарий поведения, который бы не был привязан к конкретному событию на карте. За основу были взяты уже имеющиеся персонажи (актёры / actors) из rpg maker. Во первых у них можно задать сразу аватарку, которая будет отображать в диалогах, а во вторых их можно сразу будет добавить в группу, если по сюжету это будет необходимо.
В самих событиях на карте, при активации вызывается команда вызова плагина:
После команды может идти либо цифра, которая укажет на ID актёра, либо это может быть название предмета события в виде текста.
Второй вариант был придуман несколько позже для того, что бы можно было взаимодействовать к предметами на карте. Для них тоже создаётся свой сценарий и сохраняется в отдельную папку.
Что бы не было путаницы в именах, была сделана древовидная структура в виде вложенной локации карт, например:
Все сценарии хранятся в папке data/npc. Если это сценарий для актёра, то он хранится прямо в корне папки NPC в формате JSON и имеет имя в виде «id_2.json», где 2 это ID актёра. Далее идёт название карт, например:
- neko_village это название главной карты
- mi_house это дом главной героини на карте
- attic это мансарда, где находится её комната
ну и далее название предметов для которых подготовлены сценарии взаимодействия с ними.
Каждый сценарий имеет свою структуру, в виде одного или нескольких блоков, а каждый блок предстаёт в виде исполняемых шагов:
При обращении к сценарию, плагин берёт номер блока, в котом сценарий остановился предыдущий раз, переходит на этот блок и начинает выполнение сценария с 0-го шага. Исполнение может быть принудительно прервано, может быть определён новый шаг или номер блока, а также выполнен мгновенный переход. Выполнение сценария заканчивается, когда достигнут последний шаг.
Каждый шаг представляет собой команду в поле «type» и вспомогательные данные. Например, команда «leader_text» выводит текстовое сообщения от лица главной героини, которое содержится в «content», а для отображения аватарки и эмоции используются данные из «face» и «faceIndex» соответственно. Для других команд могут быть использованы другие (свои) поля с данными.
С увеличением числа необходимых команд увеличивался и размер сценария, и как следствие росла сложность его редактирования. Уже легко было запутаться в структуре, переходах, а держать в голове все необходимы «переменные» вообще было не простой задачей. Но сложнее всего было в ситуации, когда сценарий нужно было «раздвинуть» и впихнуть новые данные, и все переходы на другие шаги начинали «плыть».
В результате чего мне пришла в голову очередная «безумная» идея создать свой визуальный редактор, в котором бы с лёгкостью можно было бы добавлять новые блоки, редактировать связи (переходы) и т.д.
На данном этапе редактор существует в виде тестовой версии и имеет примерно такой вид:
Пока это всё ещё в довольно-таки сыром виде, но уже можно более-менее наполнять сценарии и все файлы текущей pre-alpha версии созданы с его помощь. В ближайшем будущем скорее всего я выпущу его в виде отдельной программы, но пока загадывать рано.
Кроме плагина «NPC» в игре используются несколько переработанные плагины:
«Info Box» — используется для отображения сообщений сбоку, по аналогии со Skyrim ¬‿¬ Причём плагин сам перехватывает системные события добавление и убавление предметов, вооружения, золота или навыков:
«VX Style Choices» — меню выбора вариантов ответа, не виде отдельного окна, а возвращает его в область сообщений, как это было в ранних версиях RPG Maker.
«Big Avatar» — собственно плагин для отображения больших аватарок.
«Map Title» — плагин для отображения названия местности и других событий:
«Window Decor» — переработанный плагин для рамок окошек. Ранее (в VX Ace) средняя часть окошка дублировалась, в результате чего можно было делать красивое оформление. В RPG Maker MV почему-то посчитали это слишком большой роскошью и сделали вариант «тупо растянуть». В результате чего, если окно в виде линий, то всё ок, но, если это рисунок, всё превращается в растянутую кашу. Мой плагин, возвращает как было.
Ну и последние два плагина «Equips» и «Window Info» используются для манипуляций (снять/одеть/подобрать) с экипировкой и отображения информации по предметам и экипировки в целом:
Причём мне так же не понятно, по какой такой причине в стандартном варианте RPG Maker параметры и свойства предметов, а так же суммарные свойства не доступны игроку.
Данные плагины по возможности решили данный промах. При этом ещё в Notes предмета можно указать его классовую принадлежность, всего их 8 вариантов:
- NG (no grade) - серого цвета, низкий (crude) класс
- D grade - белого цвета, обычный (basic) класс
- C grade - зелёного цвета, надёжный (grand) класс
- B grade - синего цвета, раритетный (rare) класс
- A grade - фиолетового цвета, скрытый (arcane) класс
- S grade - красного цвета, героический (heroic) класс
- R1 grade - жёлтого цвета, эпический (epic) класс
- R2 grade - оранжевого цвета, легендарный (legendary) класс
Цвета пока примерные и в последствии всё возможно ещё поменяется.
Помимо персонажа Neko, подготовлены варианты для девушки, парня и кота. У кота некоторые слоты недоступны, потому что у него лапки (:
На этом пока всё, плагины пока выкладывать не буду, ибо они находятся в постоянной доработке.
Заранее большое спасибо за помощь в тестировании.
Как и в прошлый раз загрузки разбиты на две части:
Собственно, сам движок RPG Maker MV ~45Mb в архиве — Скачать движок «OneNekoStory_Engine.7z», который остался неизменным с прошлого раза.
И игровые файлы (в данном случае v0.02), папка «www» ~43Mb в архиве (добавились ресурсы в виде картинок, музыки и графики).
Архив «v0.02.7z» необходимо распаковать внутрь папки «OneNekoStory», туда, где расположена сама игра Game.exe — Скачать игровые файлы «v0.02.7z»
При дальнейших обновлениях вам будет достаточно скачать архив с новой версией и заменить содержимое папки www.