Давайте начнем с сообщений и для этого создадим НПС, который будет просто приветствовать нашего героя.
Я выбрал ту же самую девку, что и в прошлых уроках. Движений ей мы не зададим, расположим на одном уровне с игроком (ведь она такой же персонаж), а триггер выставим по кнопке.
Теперь посмотрим на правую часть окна редактора событий. В большом поле «Содержимое» будут отображаться все команды данного ивента. Дать команду просто – достаточно двойного клика ЛКМ по пустой строке и перед нами открывается окно с кучей кнопок, расположенных аж на трех страницах.
Нас интересует самая верхняя кнопка «Показать сообщение…», после нажатия на которую, открывается окно, для ввода текста, который мы хотим каким-либо образом вывести на экран. Рассмотрим это окно:
Кликнув по полю «Лицо» мы можем выбрать фейс (если хотим этого), который будет отображаться слева от текста. Фейс нашей девки находится в файле Actor3.
Фейс – в мукере изображение с лицом персонажа, используемое для диалогов.
Фейссет – файл с набором фейсов из 8 штук.
Я уж не буду откладывать эту тему и сразу поясню, что все файлы фейссетов лежат в папке проекта по пути Папка проекта -> img -> faces. Они представляют из себя картинки в формате PNG размером 576х288 пикселей, которые движок разбивает на 8 частей, в каждую из которых можно поместить один отдельный фейс размером 144х144 пикселя. Файлы фейссетов, в отличие от чарсетов, не могут быть какого угодно размера и ограничены базовым.
Забегая вперед, замечу, что выводить в диалогах полноразмерные изображения персонажей, либо бюсты по пояс тоже возможно, просто это делается другой командой, которую мы еще разберем.
Ниже поля «Лицо» есть поле с кривым именем «Название». На самом деле, сюда можно ввести имя персонажа и оно будет выводиться над сообщением отдельно. Назовем нашу девку Шляпницей и продолжим.
В RPG Maker MV и более ранних, поля для введения имени персонажа нет
Справа, в поле сообщение, можно ввести любой текст. Обратите внимание на вертикальную полоску в правой его части – она указывает на границу окна диалога(либо экрана игры) и текст нужно переносить вручную на новую строку с оглядкой на этот ориентир. Да, автопереноса не завезли. Есть плагины на это дело, более того, есть плагины, цепляющие текст из файлов, как у взрослых движков, но об этом позже.
Давайте поэкспериментируем:
Я намеренно не перенес текст, что бы показать, как это будет выглядеть в игре. Вообще-то у нас имеется кнопка «предпросмотр», которая как бы призвана показывать внешний вид диалога в игре, чтобы нам каждый раз не запускать тест, но…
Как мы видим, сообщение обрезается чуть раньше, чем показано линией в окне ввода. И гораздо раньше, чем в самой игре:
Проблема заключается в используемых шрифтах и их размерах, они разные для поля ввода, окна предпросмотра и самой игры – в предпросмотре Verdana, а в игре и поле ввода M+1M Regular, но разного размера (ладно, кегля!).
Какой из этого выход? Их два. Первый самый простой – привыкнуть. Просто привыкнуть ориентироваться по полоске и помнить, что она не строгая и чуть-чуть левее, чем нужно. Так делают почти все.
Второй способ – заменить оба шрифта на одинаковый. В этом случае предпросмотр практически перестанет врать, но очень может быть, что начнет врать полоска-ограничитель. Такая вот хреновая альтернатива.
Как менять шрифты?
Для того, что бы изменить шрифт, его надо сперва скачать. Даже если вы хотите использовать какой-нибудь Time New Roman, который по дефолту есть в числе системных, вас все равно потребуется файл с ним, чтобы вложить его в папку fonts, которая находится в папке проекта. Потому, как сам мукер – десктопное приложение, а игра – вэбовское.
Мукер поддерживает шрифты с расширением woff(по умолчанию) и ttf.
Допустим, мне лень заморачиваться и я хочу себе Comic Sans MS, вот такой я говноед. Для этого я забивают в гугле «Comic Sans MS.ttf» и перехожу по первой же ссылке: allshrift.ru/font/comic-sans-ms/
Скачиваю, распаковываю архив и закидываю шрифт в папку Папка проекта ->font
Заодно, жму ПКМ по файлу со шрифтом и устанавливаю его в систему (Комик там есть, но вдруг у вас другой? Лучше перебздеть, чем недобздеть).
Далее нам нужна База Данных, где мы будем колдовать с вкладкой Система 2. Тут много разных настроек, но нас интересуют три строки в правой части окна:
Название файла основного шрифта – первая строка отвечает за шрифт в игре
Название файла основного шрифта – второй пункт с таким же названием (оно тупо не влезает из-за перевода) отвечает за шрифт цифр в игре
Резервные шрифты – указывает шрифты, установленные в системе, которые используются для
отображения символов, которых не найдется в шрифте первом. Ну, если не найдется.
А теперь внимание – ни в одной справке, ни в одном официальном уроке, короче нигде вам этого не скажут – эта же строка отвечает за шрифт в предпросмотре. Выяснилось исключительно опытным путем в многочисленных попытках исправить данный косяк.
В общем, кликаем на первую строку «Название файла…», удаляем то, что там есть и вставляем имя файла нашего нового шрифта вместе с расширением. Со второй строкой делаем то же самое, а вот в третью вбиваем уже название шрифта, а не файла.
Отыскать название можно в винде, вбив в поиске «шрифты» и открыв «Параметры шрифта» и там уже в поиске начать вбивать предполагаемое название.
Название – Comic Sans MS
Как мы видим, в строке «Резервные шрифты», кроме названия есть еще что-то после запятой. Это указано семейство шрифтов. Раньше стояло sens-serif, т.е. семейство без засечек. Теперь у нас будет семейство cursive, так как именно к нему относится наш шрифт.
Основные семейства(мало ли пригодится):
Serif – с засечками (засечки, это такие хреньки на концах букв, как у рыболовного крючка), типа Garamond, Georgia, New York, Times, Times New Roman
Sens-serif – без засечек, типа Arial, Geneva, Helvetica, Lucida Sans, Trebuchet, Verdana
Monospace – машинный шрифт, как у пишущей машинки, короче. Например – Courier, Courier New, Lucida Console, Monaco
Fantasy – художественные шрифты, типа Copperplate, Desdemona, Impact, Kino
Cursive – рукописные, типа Comic Sans MS, Lucida Handwriting, Zapf Chancery
Ну, давайте смотреть на результат!
Предпросмотр плюс-минус совпадает с полосой ограничения в редакторе и полностью совпадает с тем, что в игре! Мы победили проблему стандартных мукерских шрифтов, которые, если честно, всё равно говно и их по-хорошему менять стоило)
В RPG Maker MV и более ранних, данная проблема отсутствует, так как шрифт используется один для всего, а заменяется простой заменой файла в папке.
Уф. Казалось бы, такая ерунда, а не так-то просто делается! Ну, благо, достаточно эту процедуру провести один раз в начале разработки и потом забыть. Продолжаем изучать окно сообщения!
Слева от кнопки предпросмотра есть два переключателя режимов:
Положение окна отвечает за то, в какое место на экране игры будет выведено данное сообщение. Можно это сделать внизу, посередине и вверху.
Меню «Фон» нам предлагает три варианта отображения текста:
Обычный - в диалоговом окне, которое мы уже видели
Уменьшенная Освещенность, это когда текст выводится на слегка затемненном прозрачном поле
Прозрачный - т.е. просто поверх того, что происходит на экране.
Предпросмотр при этом не показывает то, как будет выглядеть и располагаться сообщение, а работает лишь с текстом.
Обратите внимание, что наличие или отсутствие в диалоге фейса влияет на вместимость окна, т.е. убрав морду персонажа, можно запихать больше текста в стандартное окно, при этом полоска-ограничитель сместится в право и по ней можно все так же ориентироваться, как и в предыдущих вариантах:
Наконец, у нас остается галочка в левом нижнем углу, под названием «Массовый ввод». Галочка нужна в тех случаях, когда текст реплики персонажа слишком длинный и не влезает в 4 строки стандартного диалогового окна. В этом случае все лишнее переносится вниз и выводится в игре нажатием кнопки.
Заметьте, что в содержимом ивента, массовый ввод превращается в три отдельных команды по выводу сообщения, с которыми в последствии мы можем работать, как с отдельными командами.
Предпросмотр, при массовом вводе показывает содержимое последней команды.
Окно ввода текста диалога умеет в различные плюшки, в частности, наведя на него курсор мыши и немного подождав, мы получаем объемную подсказку, по спец.тегам:
\V[n] – где n номер переменной, выводит значение переменной в тексте диалога
\N[n] – где n IDшник персонажа в базе данных, выводит имя персонажа
\P[n] – где n IDшник персонажа в партии (от 1 до 4), выводит имя персонажа.
\G – выводит название игровой валюты
\C[n] – выбор цвета текста, где n – номер цвета из базы. Номер можно узнать, нажав ПМК по полю ввода, выбрав «вставить индекс цвета» и кликнув по понравившемуся цвету:
Помните, что поставленная команда выбора цвета окрашивает весь последующий текст в этом сообщении. Если хотите вернуться к первоначальному – его нужно снова выбрать, проставкой спец.команды \C[n].
\I[n] – показать в диалоге иконку из набора иконок, в базе данных. Номер иконки добывается так же по ПКМ->вставить индекс иконки
\{ –шрифт на единицу больше
\} - шрифт на единицу меньше
\FS[n] – увеличение шрифта на заданное количество единиц
\PX[x] – устанавливает точку начала текста, идущего после команды, в окне по оси х(координаты в пикселях), относительно края окна, а не фейса!
\PY[y]- устанавливает точку начала текста, идущего после команды, в окне по оси y(координаты в пикселях), относительно края окна, а не фейса!
Х=20 Y=40 в данном случае
\\ - просто выводит символ обратного слеша, так как одиночный воспринимается, как команда и съедается движком.
\$ - открывает окно с деньгами (скин не влез, ищите в комментах)
\. – пауза в выводе текста 0.25 сек.
\| - пауза в выводе текста 1 сек
\! – ждать нажатия кнопки, прежде чем выводить следующий текст
\> - мгновенно вывести весь следующий текст
\< - удалить текст после выведения
\^ - вывод следующего сообщения без кнопки
Последняя группа команд может быть использована для придания диалогам эмоциональности, но…
Совет: не злоупотребляйте фиксированными паузами – игроков это бесит.
Еще совет: переносите слова всегда целиком. Не надо использовать черточку-перенос, вы не в школе и не книгу пишете. И старайтесь одну фразу упихать в одно окно, не надо долгих прокручивающихся опусов. Персонажи должны говорить емко и понятно.
Хотел еще рассказать о том, как менять вид самого диалогового окна, его подложки и рамки, но, увы – простыня слишком большая и картинок много. Потом разберемся, когда базу ковырять будем.
Увидимся на следующем уроке!