50

RPG Maker MZ: урок №7. Текст, диалоговые окна, фейсы и шрифты

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


Кстати, есть и видео версия:

https://youtu.be/CaM9_HFMcrE

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


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


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

Нас интересует самая верхняя кнопка «Показать сообщение…», после нажатия на которую, открывается окно, для ввода текста, который мы хотим каким-либо образом вывести на экран. Рассмотрим это окно:

Кликнув по полю «Лицо» мы можем выбрать фейс (если хотим этого), который будет отображаться слева от текста. Фейс нашей девки находится в файле 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 сек

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

\> - мгновенно вывести весь следующий текст

\< - удалить текст после выведения

\^ - вывод следующего сообщения без кнопки


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

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

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


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


Увидимся на следующем уроке!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

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

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"