rpg maker mv обучение

Rpg maker mv обучение

rpg maker mv обучение

Урок №1: Создание простого интерактивного меню. (Этот метод не будет работать на андройде и иос, онли фор пека)

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

Что нам нужно для того что бы сделать интерактивное меню:
1) Rpg Maker MV (можно и Vx ace, но я пользуюсь онли MV)
2)Так как наше меню будет стилизовано под планшетный компьютер, нам нужны картинки планшета, и кнопок. У меня кнопки всего 3, но можно сделать сколько угодно, просто каждая кнопка увеличивает схему, да и я лентяй.
3) Я хочу что бы мы могли открыть планшет по нажатию кнопки «Е», поэтому я использую плагин Button Common Event.
4) Фотошоп (или аналогичная программа, например инстаграм, ну а если вы программист то еще лучше)

Когда вы нашли (нарисовали) нужные картинки, располагаем их в фотошопе, как показано на первом скрине. Нам нужен сам планшет, на экране которого располагаются 3 неактивные кнопки, и отдельные картинки уже активных кнопок. Теперь сохраняем всё это в папке Pictures, у вас должно выйти что то вроде того что на втором скрине. Итого у нас вышло 4 картинки, первая это Tablet, а остальные три, это But1, But2, и But3. Так их и будем называть.

Переходим в мейкер. Открываем базу данных, общие события и начинаем делать сам код.
Во-первых нам нужен звук включения, так что ставим «Воспроизвести SE», звук выбирайте на свой вкус, у меня это будет кошачье мяуканье. Во-вторых нам нужно что бы персонаж не мог двигаться во время того как мы работаем с планшетом. Заходим в «Установить маршрут движения», ждать 1 секунду, и самое главное не забываем поставить галочку на «повторить движение». Теперь игрок будет стоять на месте пока планшет активен. Начинается самое интересное(муторное), Заходим в «показать изображение» и выбираем наш «Tablet», обязательно ставим ему номер 1, положение и всё остальное настраивается по вкусу. Делаем метку, метка это наша кнопка. Сколько кнопок столько в итоге будет меток, поэтому я бы порекомендовал назвать их по простому, например But1, But2 и так далее.

Начинаем делать код самой кнопки. Делаем цикл, и показываем саму кнопку. «Показать изображение», but1, номер ставим обязательно 2, это очень важно. Теперь что бы всё не появлялось слишком быстро, и не было глюков, нам нужно прибегнуть к функции ждать. Смотрите пятый скрин, мне очень трудно вам объяснить по какому принципу всё это работает, но это важно. Я поставил 4 кадра, и что главное каждый кадр нужно указывать в отдельной строке, как на скрине. Теперь делаем первые кнопки. Итак, заходим в ветвление условий, если кнопка [Ок] нажата, ждём 3 кадра, и дальше уже задаём ей функцию которая вам нужна. Например что бы при нажатии у вас срабатывало какое то другое общее событие, ну в общем что хотите, то там и прописывайте. Я это трогать не буду. Самое главное что после всего нужно поставить «Прервать цикл».

Дальше по аналогии с кнопкой Enter програмим кнопку Esc. Ветвление условий, если кнопка [Отмена] нажата, ставим какой нибудь звук, который будет обозначать что планшет закрыт, и удаляем изображения 1 и 2, то есть Tablet и But1, теперь делаем ту же функцию с маршрутом что и в начале, но без галочки «повторить движение», ждём еще 30 кадров, и ставим там «выйти из режима обработки событий» то бишь просто прекращаем его выполнение. Вся схема показана на седьмом скрине.

Источник

Rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

Где найти официальную справку на русском языке?
http://strelokhalfer.github.io/mv-help/ (неполностью переведено)

Где найти купленные DLC?
\Steam\steamapps\common\RPG Maker MV\dlc

Почему моя база данных пуста? Где взять полную базу данных?
https://dl.dropboxusercontent.com/u/17078211/RMMV_data.rar
Вы можете скопировать все файлы в свой проект или только те, которые вам нужны. Не забудьте сначала создать резервную копию своего проекта.

Мои игры сильно тормозят! В чем дело?
Тормоза начинаются при использовании анимации? Если да, обновите ваш MV. Это баг самой программы, который уже был исправлен в новых версиях. Если вы используете последнюю версию, попробуйте отключить некоторые плагины (чтобы проверить, не вызывают тормоза именно они), проверьте свои события / общие события на режим работы «автозапуск» и «параллельно», подобное очень негативно сказывается на производительности.

Сам редактор MV (UI) имеет размытый текст! ACE выглядел круче! Могу я это исправить?
Верно, MV имеет, скажем, жесткое сглаживание текста. Некоторым это мешает, но, похоже, не существует способа изменить его (плагины не могут модифицировать саму программу). ACE использовал очень мало сглаживания, поэтому текст смотрелся более четким. Это личное предпочтение, которое также может зависеть от вашего монитора.

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

Я добавил символ «!» в название фона параллакса, чтобы использовать его в качестве нижнего слоя (parallax mapping), но теперь все размыто! То же самое происходит с плагинами!
Баг программа, с версии 1.1 должны были исправить.

Как мне сохранить свою карту, чтобы я мог открыть ее в Photoshop для создания параллакса?
В MV есть встроенная функция «Сохранить как изображение», но она уменьшает размер. Я считаю, что это ошибка, которая будет исправлена, но до тех пор вам придется использовать другой метод. Вот бесплатный плагин, который будет экспортировать для вас полные карты: Orange Mapshots [forums.rpgmakerweb.com]

Я надеялся, что будет больше стандартных ресурсов.
Существует много дополнительного контента, который поставляется отдельно (некоторые могут быть доступны только в том случае, если вы предварительно сделали предзаказ). Проверьте папку DLC в папке самого мейкера, на наличие дополнительного контента. Должна быть папка с именем «BaseResource», содержащая много файлов. Они не все добавляются в ваш проект автоматически; Вам нужно добавить их в свой проект вручную. Их убирают для уменьшения размера проекта на выходе. Вы должны удалить неиспользуемые активы из своего проекта, прежде чем экспортировать свою игру, иначе финальный вес архива будет слишком огромен.

Есть ли другие бесплатные ресурсы, ассеты, графика?
Да, KADOKAWA MV Character Sprites. [forums.rpgmakerweb.com]

Могу ли я (легально) использовать ресурсы из старых версий RM в MV? А на мобильном?
Да, до тех пор, пока вы обладаете лицензией на эти версии RM.

Могу ли я в MV использовать ресурсы из Ace или из более старых версий?
MV использует более крупные спрайты, поэтому вам либо придется их конвертировать (см. Следующий вопрос), либо вы можете использовать плагин для изменения размера сетки, чтобы он соответствовал Ace. Но если вы это сделаете, редактор не будет правильно отображать графику (но будет работать игра). Бака-тян объясняет это так:
С помощью плагина Shaz вы можете изменить размер сетки, но только для игры. Редактор покажет вам сетку 48x48px; Поэтому вам нужны обычные 32x32px плитки в подпапке и увеличенная версия в основной папке тайлов, чтобы вы могли видеть ее в редакторе. После того, как вы закончите игру, вы можете удалить расширенную версию, так как самой игре потребуется только версия 32x32px из подпапки.

Источник

ТЕМА: Покодим (уроки программирования для RPG maker MV)

Покодим (уроки программирования для RPG maker MV) 2 года 11 мес. назад #107204

rpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучениеrpg maker mv обучение

С чего начать?
(для тех, кто совсем ничего не знает)

В RPG maker MV язык javaScript. А потому начать надо именно с его основ. Сейчас информации в интернете столько, что найти можно всё. А так как в интернете есть ВСЁ, то найти что-то действительно хорошее всё сложнее

1) Я бы посоветовал начать с сайта «CodeAcademy»

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

Больше, чем просто самоучитель. Здесь можно «баттлиться» знаниями с другими пользователями, смотреть размещенный чужой код и прокачиваться прямо как в РПГ

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

4) Если вы хотите закрепить знания JS или пойти вглубь, то отлично подойдет курс из этой раздачи, а точнее «Бонус 1. Премиум курс по JavaScript (24 урока, 19,5 часов)»

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

5) Более заумный сайт, который еще ближе к справке-документации. Обычно бывает полезным в более сложных вопросах, начинать с него я бы не советовал developer.mozilla.org

Пишем свой первый скрипт

Вызов общего события по нажатию кнопки

МЕЙКЕР:
Для начала попробуем осуществить первые два пункта. На первый взгляд нет ничего проще сделать то же самое на ивентах:

rpg maker mv обучение

rpg maker mv обучение

rpg maker mv обучение

Проверка нажатия клавиш

ЗАДАЧА:
Как видим, в стандартной проверке нажатия клавиш учитывается нажатие на клавишу, а не ее отпускание. Мы конечно можем добавить паузу, как учит тот же небезызвестный Сириус, однако подобная реализация далека от идеала.
Давайте попробуем исправить это программно и перевести события в код

ПОИСК
1) Заходим в один очень полезный файлик, в котором содержатся команды для мейкера docs.google.com/spreadsheets/d/1-Oa0cRGp. etnvh7OHs/edit#gid=0 и ищем нужное нам
2) Если не знаем ЧТО исктаь остается гуглить

5) открываем ветвление условий и вместо «кнопка нажата» вставляем первую команду в поле «скрипт», надеясь, что всё произойдет удачно и пока не заморачиваясь над тем какая кнопка указана параметром. Учитывая,что в ветвлении кнопка «энтера» названиа ok, предполагаем что нам надо жать энтер

rpg maker mv обучение

6) На этот раз нам повезло. Именно isTriggered позволяет нам фиксировать нажатие кнопки как однократное

СПРАВКА
1) Еще один способ, позволяющий найти нужное. Находясь в редакторе нажимаем F1 (это вызовет открытие справки мейкера).
2) Затем мотаем в самый низ в раздел JS Library и ищем КАК же может называться инициализация нажатия кнопок. В данном случае это Input.
2) Находим строчку isLongPressed, isTriggered и прочие и просто пробуем. Способ требует более глубоких знаний, так как информации много, а конкретных примеров в справке практически нет.

Подключение всех клавиш клавиатуры

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

rpg maker mv обучение

rpg maker mv обучение

Добавляем другие клавиши клавиатуры

1) Давайте попробует найти коды остальных клавиш. Ввводим в гугле «клаивши js» и переходим по первой ссылке learn.javascript.ru/keyboard-events
2) Сайт оказывается довольно полезным. Ставим курсор туда, куда нас просят, а ниже мы видим код клавиши. В данном случае код клавиши ‘b’ то ли 98, то ли 66, а потому пробуем и то, и то

rpg maker mv обучение

3) В редакторе ставим курсор на одну из строк внутри массива Input.keyMapper, жмем кнопку CTRL+SHIFT+D и строчка дублируется. Теперь вместо pageup пишем ‘b’, а вместо цифры подставляем по очереди 66 и 98

rpg maker mv обучение

Как видим, 98 не рабоатет, а вот 66 в самый раз! Теперь вписываем код в событие и радуемся

rpg maker mv обучение

Вызов общего события скриптом

rpg maker mv обучение

, сохраняем и проверяем. Всё работает! Делаем то же самое и для вызова первого события

rpg maker mv обучение

Замена ветвления событий кодом

rpg maker mv обучение

3) Вводим получившийся код в «скрипт события»

rpg maker mv обучение

, а остальное удаляем. Проверяем и поздравляем себя!

rpg maker mv обучение

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

3) Запускаем игру и видим, что у нас ничего не работает. Почему? В событии этот код запускался параллельным событием. Как же нам сделать то же самое кодом?

6) Зачем нам переписывать ее в свой плагин если мы можем скопировать ее в какую-нибудь переменную, а потом вызвать? Давайте так и сделаем. после тестов видим, что всё отлично работает!

Защищаем наши функции

КОДИМ
1) Давайте попробуем защитить наши переменные. Что надо сделать, чтоб переменные в нашей функции перестали быть глобальными? Конечно же,обернуть код в функцию, допустим назовем ее «a»

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

6) Кроме скобок подойдет любой символ, который бы показывал JS что перед нами выражение. Например унрарные плюсы или минусы

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

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

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

Источник

Rpg maker mv обучение

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

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

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

Начать мне хотелось бы с редактора. Как вы уже, наверное, заметили, в отличии от VX Ace в MV своего редактора нет. Скрипты лежат в открытом виде и можете спокойно их редактировать в любом текстовом редакторе. В одном из видеоуроков человек порекомендовал brackets. Опыта у меня не много в подобного рода редакторах, но мне понравился. Особенно очень удобно, когда начинаешь что-то писать, а тебе бац и сразу подсказки. Мелочь, а приятно. При желании можно выбрать удобную цветовую тему. Так что можете тоже попробовать совершенно бесплатно.

Для начала о том, что мы будем сегодня делать. Этот простой плагин рисует на экране небольшое окошко с иконкой и цифрой. Данные берутся из переменных (Variables) RPG Maker. А с помощью ключа (switch) можно включить или спрятать отображение данного окна. Теперь для чего? Например, NPC даёт герою задание, что нужно собрать 20 шишек. Понятно, что задание не сильно увеселительное, но можно игроку немного скрасить жизнь. Отображая, например, цифрами, сколько ему ещё осталось мучится. Выглядит это примерно так:

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

Итак, создадим новый файл ItemOnMap.js в папке нашего проекта, а именно js\plugins. Этого уже достаточно, чтобы он уже появился в списке доступных плагинов, однако всё же стоит добавить его описание:

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

Открываем комментарий и описываем различные параметры:

Далее указывается описание плагина (@plugindesc) и собственно кто автор (@author)

Затем следуют перечисления параметров нашего плагина. Тут надо быть очень внимательными, ибо эти название затем используются в скрипте. И если что-то напутать, ничего не получится. Один параметр состоит из трёх частей, собственно его названия @param (на английском языке и честно не знаю, можно ли писать на русском), описание данного параметра @desc (не знаю почему, но описание на русском не отображается) и значение по умолчанию @default. Данный параметр указывает какой ключ (switch) будет разрешать или запрещать отображение данного окошка.

Здесь указывает номер переменной (Variable) в которой хранится номер предмета, который должен собирать наш главный герой. Иконка этого предмета и отображается в нашем окошке.

Ну и завершает это всё последний параметр, который так же указывает на номер переменной (Variable) в которой хранится количество собранных предметов.

Закрываем комментарий и далее следует уже наш скрипт самого плагина.

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

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

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

А так это выглядит, когда мы подключаем наш плагин:

Вот тут очень важный и сложный момент. Для того, чтобы наше окно постоянно отображалось. Нам нужно втиснутся в основную функцию создания всех окон (createAllWindows). Если вы писали скрипты (или хотя бы пытались что-то изменить в чужих, как я, например) под VX Ace, то наверняка заметили схожий приём. Когда главная функция системы подменялась на нашу, а потом вызывалась внутри с такими же параметрами. Ну не суть важно, я думаю если кому интересно он спросит у знатоков, а тут просто для пояснения.

Сначала создаём «копию» основной функции системы:

Затем заменяем её уже своей функцией:

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

И затем уже добавляем создание нашего окошка:

Первые два числа — это координаты где на экране будет наше окно, а два другие его соответственно ширина и высота.

Затем это окно добавляется в систему и далее собственно уже функции нашего окна:

Честно скажу, назначение этого кусочка мне до конца не ясно. Однако сразу скажу, что без него не работает и кроме того опять же очень важно название — «ItemOnMap»!! Оно идёт везде одинаковое, ошибётесь на 1 букву будут ошибки.

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

Например, вот, по умолчанию отступ у всех окон 18px. Для того что бы наш текст и иконка были видны его стоит задать равным 0.

Далее, как я понимаю идёт инициализация нашего окна, с такими же параметрами как у главного.

Ну и самое интересное. Окно появилось, и остаётся только вывести в него информацию:

Для этого необходимо в функции update написать то, что мы хотим вывести в нашем окне.

Для начала его надо очистить, если этого не сделать всё будет накладываться друг на дружку и в конце концов будет выглядеть ужасно.

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

Установим настройки (цвет, размер) текста по умолчанию

Берём номер предмета, который нужно отобразить:

Проверяем, что бы он не был равен 0, иначе будет ошибка.

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

Если же показывать окно нельзя, то

Скроем его и закончим данную функцию.

Собственно, на этом всё, остаётся только не забыть закончить главную функцию плагина:

Как видите ничего сложного почти нет. Хотя по правде говоря было очень непросто сходу разобраться со всем этим, и, если бы не потраченные дни предварительного разбирания и ковыряния VX Ace, мне бы не удалось это всё сделать так «быстро». Однако надо сказать огромное спасибо авторам, что так же как в VX Ace, RMMV название функций и переменных очень схожи, что конечно хоть и не сильно, но всё же упрощает написание плагинов под RMMV.

Если вдруг будут какие-то вопросы, постараюсь в меру своих сил ответить.

p.s. огромное спасибо всем, кто мне помогал и помогает разбираться с премудростями RPG Maker, как здесь на форуме, так и в нашем горячо любимом чатике. Как видите мои глупые вопросы наконец вылились во что-то если не серьёзное, так во что-то не плохое это точно.

Если необходимо, что бы окно так же отображалось во время боя, то для этого достаточно перед строчкой «function ItemOnMap() <»

Добавить, по аналогии с «_Scene_Map_createAllWindows»:

Правда появятся небольшие проблемы:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *