Найти в Дзене
RPG Maker World

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

Обещал урок вчера, а делаю сегодня. Обещал про переменные и переключатели, а говорить сначала будем про простейшие команды) Просто, для работы с переменными и переключателями нам потребуется как-то наглядно все демонстрировать, а я ужас как не люблю учителей, которые показывают что-то, при этом говоря: «Как я это сделал сейчас неважно!». Важно. Ученики должны иметь возможность самостоятельно повторить все действия из урока, понимая при этом, что они делают, а не тупо копируя последовательность. Кстати, есть и видео версия: https://youtu.be/CaM9_HFMcrE Давайте начнем с сообщений и для этого создадим НПС, который будет просто приветствовать нашего героя. Я выбрал ту же самую девку, что и в прошлых уроках. Движений ей мы не зададим, расположим на одном уровне с игроком (ведь она такой же персонаж), а триггер выставим по кнопке. Теперь посмотрим на правую часть окна редактора событий. В большом поле «Содержимое» будут отображаться все команды данного ивента. Дать команду просто – достаточн

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

Кстати, есть и видео версия: https://youtu.be/CaM9_HFMcrE

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

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

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

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

-2

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

-3

Фейс – в мукере изображение с лицом персонажа, используемое для диалогов.

Фейссет – файл с набором фейсов из 8 штук.

Я уж не буду откладывать эту тему и сразу поясню, что все файлы фейссетов лежат в папке проекта по пути Папка проекта -> img -> faces. Они представляют из себя картинки в формате PNG размером 576х288 пикселей, которые движок разбивает на 8 частей, в каждую из которых можно поместить один отдельный фейс размером 144х144 пикселя. Файлы фейссетов, в отличие от чарсетов, не могут быть какого угодно размера и ограничены базовым.

-4

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

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

В RPG Maker MV и более ранних, поля для введения имени персонажа нет

Справа, в поле сообщение, можно ввести любой текст. Обратите внимание на вертикальную полоску в правой его части – она указывает на границу окна диалога(либо экрана игры) и текст нужно переносить вручную на новую строку с оглядкой на этот ориентир. Да, автопереноса не завезли. Есть плагины на это дело, более того, есть плагины, цепляющие текст из файлов, как у взрослых движков, но об этом позже.

Давайте поэскпериментируем:

-5

Я намеренно не перенес текст, что бы показать, как это будет выглядеть в игре. Вообще-то у нас имеется кнопка «предпросмотр», которая как бы призвана показывать внешний вид диалога в игре, чтобы нам каждый раз не запускать тест, но…

-6

Как мы видим, сообщение обрезается чуть раньше, чем показано линией в окне ввода

-7

Проблема заключается в используемых шрифтах и их размерах, они разные для поля ввода, окна предпросмотра и самой игры – в предпросмотре Verdana, а в игре и поле ввода M+1M Regular, но разного размера (ладно, кегля!).

Какой из этого выход? Их два. Первый самый простой – привыкнуть. Просто привыкнуть ориентироваться по полоске и помнить, что она не строгая и чуть-чуть левее, чем нужно. Так делают почти все.

Второй способ – заменить оба шрифта на одинаковый. В этом случае предпросмотр практически перестанет врать, но очень может быть, что начнет врать полоска-ограничитель. Такая вот хреновая альтернатива.

Как менять шрифты?

Для того, что бы изменить шрифт, его надо сперва скачать. Даже если вы хотите использовать какой-нибудь Time New Roman, который по дефолту есть в числе системных, вас все равно потребуется файл с ним, чтобы вложить его в папку fonts, которая находится в папке проекта. Потому, как сам мукер – десктопное приложение, а игра – вэбовское.

Мукер поддерживает шрифты с расширением woff(по умолчанию) и ttf.

Допустим, мне лень заморачиваться и я хочу себе Comic Sans MS, вот такой я говноед. Для этого я забивают в гугле «Comic Sans MS.ttf» и перехожу по первой же ссылке: allshrift.ru/font/comic-sans-ms/

Скачиваю, распаковываю архив и закидываю шрифт в папку Папка проекта ->font

Заодно, жму ПКМ по файлу со шрифтом и устанавливаю его в систему (Комик там есть, но вдруг у вас другой? Лучше перебздеть, чем недобздеть).

-8

Далее нам нужна База Данных, где мы будем колдовать с вкладкой Система 2. Тут много разных настроек, но нас интересуют три строки в правой части окна:

Название файла основного шрифта – первая строка отвечает за шрифт в игре

Название файла основного шрифта – второй пункт с таким же названием (оно тупо не влезает из-за перевода) отвечает за шрифт цифр в игре

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

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

-9

В общем, кликаем на первую строку «Название файла…», удаляем то, что там есть и вставляем имя файла нашего нового шрифта вместе с расширением. Со второй строкой делаем то же самое, а вот в третью вбиваем уже название шрифта, а не файла.

Отыскать название можно в винде, вбив в поиске «шрифты» и открыв «Параметры шрифта» и там уже в поиске начать вбивать предполагаемое название.

-10

Название – 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

-11

Ну, давайте смотреть на результат!

-12
-13

Предпросмотр плюс-минус совпадает с полосой ограничения в редакторе и полностью совпадает с тем, что в игре! Мы победили проблему стандартных мукерских шрифтов, которые, если честно, всё равно говно и их по-хорошему менять стоило)

В RPG Maker MV и более ранних, данная проблема отсутствует, так как шрифт используется один для всего, а заменяется простой заменой файла в папке.

Уф. Казалось бы, такая ерунда, а не так-то просто делается! Ну, благо, достаточно эту процедуру провести один раз в начале разработки и потом забыть. Продолжаем изучать окно сообщения!

Слева от кнопки предпросмотра есть два переключателя режимов:

Положение окна отвечает за то, в какое место на экране игры будет выведено данное сообщение. Можно это сделать внизу, посередине и вверху.

-14
-15

Меню «Фон» нам предлагает три варианта отображения текста:

Обычный - в диалоговом окне, которое мы уже видели

Уменьшенная Освещенность, это когда текст выводится на слегка затемненном прозрачном поле

Прозрачный - т.е. просто поверх того, что происходит на экране.

-16
-17

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

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

-18
-19

Наконец, у нас остается галочка в левом нижнем углу, под названием «Массовый ввод». Галочка нужна в тех случаях, когда текст реплики персонажа слишком длинный и не влезает в 4 строки стандартного диалогового окна. В этом случае все лишнее переносится вниз и выводится в игре нажатием кнопки.

-20

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

-21

Предпросмотр, при массовом вводе показывает содержимое последней команды.

Окно ввода текста диалога умеет в различные плюшки, в частности, наведя на него курсор мыши и немного подождав, мы получаем объемную подсказку, по спец.тегам:

\V[n] – где n номер переменной, выводит значение переменной в тексте диалога

\N[n] – где n IDшник персонажа в базе данных, выводит имя персонажа

\P[n] – где n IDшник персонажа в партии (от 1 до 4), выводит имя персонажа.

\G – выводит название игровой валюты

\C[n] – выбор цвета текста, где n – номер цвета из базы. Номер можно узнать, нажав ПМК по полю ввода, выбрав «вставить индекс цвета» и кликнув по понравившемуся цвету:

-22

Помните, что поставленная команда выбора цвета окрашивает весь последующий текст в этом сообщении. Если хотите вернуться к первоначальному – его нужно снова выбрать, проставкой спец.команды \C[n].

\I[n] – показать в диалоге иконку из набора иконок, в базе данных. Номер иконки добывается так же по ПКМ->вставить индекс иконки

-23

\{ –шрифт на единицу больше

\} - шрифт на единицу меньше

\FS[n] – увеличение шрифта на заданное количество единиц

\PX[x] – устанавливает точку начала текста, идущего после команды, в окне по оси х(координаты в пикселях), относительно края окна, а не фейса!

\PY[y]- устанавливает точку начала текста, идущего после команды, в окне по оси y(координаты в пикселях), относительно края окна, а не фейса!

-24

Х=20 Y=40 в данном случае

\\ - просто выводит символ обратного слеша, так как одиночный воспринимается, как команда и съедается движком.

\$ - открывает окно с деньгами

-25

\. – пауза в выводе текста 0.25 сек.

\| - пауза в выводе текста 1 сек

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

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

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

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

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

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

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

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

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