Анатолий Адонин

Анатолий Адонин 

Разработка на Python / Renpy

372subscribers

84posts

Showcase

16

16 Как отформатировать текст в Renpy

В 14-ом уроке мы рассмотрели как можно стилизовать текст для определённого персонажа. Теперь давайте разберёмся как сделать то же самое, но только для отдельных реплик, когда нам это нужно в единичных случаях.
В Renpy есть система тегов для форматирования текста. С двумя из них мы познакомились в 13-ом уроке, когда настраивали скорость печати текста. Напомню, что такие теги прописываются непосредственно внутри диалога персонажа.
В примере выше у нас открывающий тег {i} сообщает движку начало форматированного текста, а закрывающий {/i} - место окончания форматирования. Тег i делает текст наклонным.
Все доступные теги:
{i} Наклонный текст курсивом {/i}
{b} Жирный текст {/b}
{u} Подчёркнутый {/u}
{s} Зачёркнутый {/s}
{size=35} Устанавливаем размер шрифта {/size}
{size=+12} Шрифт увеличен на двенадцать единиц от того, что указан в настройках в gui.rpy {/size} (11-ый урок)
{size=-10} Уменьшен на 10 единиц от стандартного {/size}
{k=3} Межбуквенный интервал {/k}
{cps=20} Скорость печати текста, например, 20 символов в секунду {/cps}
{alpha=0.6} Делает текст полупрозрачным {/alpha}
{font=fonts/titanmedium.ttf} Устанавливаем указанный шрифт {/font}
{color="#ffaa00"} Устанавливаем указанный цвет {/color}
{image=images/smile.png} Позволяет добавить изображение в текст, например, эмодзи.
Стоит иметь в виду, что картинки должны быть такого же размера, что и текст, чтобы они не ломали форматирование.
{fast} Выводит всю реплику моментально, даже если в настройках стоит медленная скорость текста
{vert} Отображает текст вертикально
{horiz} Горизонтальный вывод текста (работает по умолчанию)
{space=100} Позволяет отступить от левого края определённое количество пикселей, например для "Красной строки"
{vspace=50} Отступает указанное количество пикселей от верхнего края
{a=https://renpy.org/} Ссылка на сайт {/a} - Позволяет добавить ссылку внутри текста
{w} - Ставит паузу в тексте
Пример: "Я думал{w} , что мы пойдём в парк?"
Сначала отобразиться текст "Я думал", а после клика игрока остальная часть фразы.
{w=1} - Остальная часть фразы будет дописана через секунду, без клика игрока.
{nw} - Начинает следующую реплику, не дожидаясь клика игрока. Это можно использовать для эффекта, когда один персонаж перебивает другого.
{nw=3} - Начинает следующую реплику через указанное количество секунд
Обратите внимание, что одни теги можно писать внутри других тегов, главное не путать их очерёдность.
Т.е. если у вас открывающий тег жирного текста находится внутри тега курсива, то и закрывающий тег жирного должен быть внутри курсива. Если открывающий тег подчёркивания внутри жирного тега, то и закрывающий должен быть внутри жирного тега.
Как видим на скриншоте выше, нужный текст отображается одновременно курсивом, жирным и подчёркнутым.
Иногда внутри реплики есть необходимость написать текст в кавычках. Но если просто поставить ещё одни кавычки - это приведёт к ошибке. Так как синтаксис строки будет нарушен.
Чтобы избежать этого достаточно прописать другие кавычки, например одинарные 'дождь'. Или обратный слеш с двойными кавычками \"дождь\".
Ещё один редкий случай, когда необходимо прописать символ процента %. Он тоже является спец символом, и чтобы избежать ошибок в тексте следует прописывать его двойным %%.
"Сегодня вероятно 90%%, что пойдёт дождь"
Символ \n (обратный слеш + n) позволяет переносить текст на новую строку
"Я думал,\n что мы пойдём в парк?"
***
Предыдущий урок:
15 Как добавить боковое (side) изображение персонажа в Renpy
Следующий урок:
17 Эффекты для смены изображений в Renpy
Subscription levels3

Личный состав

$1 per month
Участник экспедиции

Колонист

$2.65 per month
С комфортом до Бетельгейзе

Штурман

$5.3 per month
Штурмуем геймдев - Пошаговые уроки с нуля до профи
Учимся создавать игры на Renpy
Программируем на Python
Go up