kirillkrm (kirillkrm) wrote in gamer,
kirillkrm
kirillkrm
gamer

Categories:

RPG-Maker VC Axe. Как оно, вообще, создаётся?

1000.jpg

Чтобы не писать излишне большой комментарий, ну, и накрутить себе просмотров, конечно же, решил создать отдельную тему в ответ на предложение basic_dormouse по подробнее описать свою работу в RPG-Maker VC Axe.

Если Вы сами хотите опробовать программу «на зуб», мой пост лучше не читать. Вы потратите время с большой пользой, если:
- Поищите уже готовые игры на базе RPG-Maker. Они даже продаются в Steam и, как правило, стоят копейки. В основном, это «тёплые и ламповые» РПГшки в очень низком для современных мониторов разрешении с пошаговой боевой системой и милой 2Д графикой. Но можно найти и исключения. С помощью скриптов бои делаются даже реалтаймовыми. С графикой вообще полное раздолье. Не нравится аниме стилистика, рисуйте и вставляйте в игру, что хотите.
- Так же найдите на Youtube видеоуроки по движку. Они есть на русском языке, например, здесь. Мне лично с видеоуроками удобнее, чем с инструкциями или статьями. Так проще найти ответ на извечно-волнующий вопрос: «Это всё хорошо, что Вы тут понаписали, но, едрить, куда конкретно тыкать-то?!» ( «Эй, чукча, тут недавно американская подлодка всплывала, куда поплыла?» - «Направление: зюйд-зюйд-вест, однако!» - «Самый умный, да!? Ты мне рукой покажи!»).

Однако если интересен мой личный опыт, прошу, под кат.

В базе движок RPG-Maker VC Axe состоит из двух больших «блоков»: графика и события.

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

Тайлы настраиваются в специальном меню. Шкаф, стену, горшок с цветами, и т.д. можно сделать: проходимыми, непроходимыми или проходимыми по определённым правилам (только сверху, только снизу и т.д.).

Например, в собственной игре я нарисовал вот такую мини-локацию:

1000.jpg
Перед Вами лавка волшебницы. Все чёрные квадратики – это и есть графика. Я нарисовал локацию, вставив в каждый квадратик какой-то тайл: стену, бочку, вешалку с одеждой, половинку окна, флаг и т.д.

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

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

Помимо стен в игре есть столы (стойки). Это непроходимые тайлы через которые можно разговаривать с персонажами, но если поставить на стол какой-нибудь горшок с цветком, герой начнёт проходить и сквозь стол тоже.

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

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

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

Вариантов решения было два: либо создать два разных набора тайлов, и в одном делать пиво проходимым, а в другом нет; либо делить тайлы на две группы, где: тайл «бутылка с пивом» - проходимый, а тайл «бутылка с пивом + кружка с пивом» - уже непроходимый. К сожалению, когда рисуешь, игра не показывает свойства тайла, приходится их запоминать. Увы, часто я забываю, какому набору тайлов какую проходимость выставил.

Однако графика («рисование локаций») это не та вещь, из-за которой Вы начнете требовательно (и громко, так чтобы соседи слышали) спрашивать у своего компа: «Ну, чего ты ещё от меня хочешь-то!?».

Самое трудоёмкое – это события. Возвращаясь к нашему скриншоту:

1000.jpg

События – это белые квадраты. В приведённой локации их девять:
1. Котик
2. Девушка за стойкой (первая ученица волшебницы)
3. Девушка в правом нижнем углу (вторая ученица)
4. Дверь на входе (это событие, а не графика).
5. Дверь в комнату волшебницы (тоже событие).
6. Волшебница.
7. Выпившая волшебница (это для нас волшебница одна, для игры это два разных события, хоть и связанные между собой)
8. Кристалл.
9. Разбитая бутылка с вином (тоже событие, а не графика).

Создаются события просто. Кликаешь на экране и ставишь «создать событие», а вот настройка – это ад.

Самое простое из перечисленных событий - это «котик». Создаём, выбираем графику (находим котика), дозволяем событию в случайном порядке передвигаться по локации. Всё! Вернее, я ещё добавил небольшой диалог. Если герой кликнет на событие, он удивится, что у волшебниц котик белый, а не чёрный, как полагается (черного котика я в картинках не нашёл). Здесь всё просто. Открываем меню данного события, и при контакте просим выдать нужное сообщение. Прописываем фразу героя, ставим под сообщением нужное лицо (или морду), и всё. Правда, ещё надо удостовериться, что в меню запуска стоит галочка «при касании», а не «автоматически», иначе герой начнёт удивляться белому котику постоянно и будет делать это до тех пор, пока игра не зависнет.

Входная дверь – уже сложнее. Да, двери это сложно! При контакте двери должны открываться. Это нужно прописать. Анимация открытия состоит из нескольких рисунков. Дверь открывается не без шума, поэтому нужно выбрать звук (выбрав из доступных трэков). Проделав всё это, Вы обнаружите, что дверь открывается, и всё! Выходить на улицу герой не будет, т.к. в меню события надо добавить команду: «Перенести героя в точку Х».

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

Ученица за столом (её зовут Блесс) выполняет разом несколько функций:
- Она продаёт товары в лавке.
- Она даёт квест.
- Она принимает квест! (это тоже важно и отдельно прописывается)
- Она даёт награду за квест (см. предыдущий пункт)
- Наконец, она включает переключатель, который заставляет дверь в комнату волшебницы открыться.

Соответственно, нашу Блесс (событие) пришлось долго настраивать, чтобы она: не начала выдавать награду до того, как даст квест; не забывала торговать с героем и т.д. Делается это с помощью переключателей. Сначала идёт диалог при знакомстве. Создаём в событии отдельную страницу. Пишем диалог. Далее начинаем «играться» с переключателями внутри события.

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

За выполнение квеста, ученица соглашается пропустить героя к наставнице, но как Блесс поймёт, что квест выполнен? Только если прописать условие, что подсобытие «награда» включится, только если у героя есть в инвентаре нужный девушке предмет, иначе должно запуститься другое подсобытие (где героиня спрашивает, как продвигаются поиски предмета). Если ключевая вещь доставлена, необходимо отдельно прописать выдачу награды и изъятие предмета, иначе Блесс будет выдавать награду постоянно.

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

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

Про саму волшебницу я вообще «умру» объяснять. С ней куча диалогов, куча событий, а ещё она должна встретить героя, либо в пьяном, либо в трезвом виде в зависимости от того, после какой цепочки событий герой входит в помещение. Заметьте, именно «либо-либо», а не в том и в другом виде сразу! :)

Как правило, тестовый запуск любой локации превращается в кошмар. Герой пробегает там, куда ходить не должен. Спотыкается об то, обо что не должен. Диалоги начинаются хрен пойми с какого места. Двери не открываются или наоборот открываются, когда не надо, и во всём этом бардаке есть только один «островок стабильности» - это котик. Вот котик работает, как надо. Без претензий. Все остальное – открывай каждое событие, смотри «портянку» введенных тобой команд и ключей, и тыкайся, тыкайся, тыкайся!
Tags: .игры и люди, .форма: байки из игр
Subscribe

promo gamer декабрь 14, 2012 10:36 42
Buy for 100 tokens
Советы авторам! 0. Если ваша статья крупнее расписания лекций третьего курса на четверг - прячьте под кат все, кроме одного небольшого скриншота\картинки и одного-двух абзацев. По кату обязательно кликнут и прочтут остальное, не беспокойтесь. 1. Определите для себя, о какой игре вы…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments