RenPy. Урок 1. Базовые команды

от
GameDev    renpy, визуальные новеллы

Автор: lolbot

Курс посвящен не столько Ren'Py вообще, сколько моддингу everlasting_summer-1.2. Однако данные знания будут полезны и при создании игр на данном движке.

Целевая аудитория: желающие попробовать себя на роль сценариста и/или редактора.

Требуемые навыки: уметь редактировать текстовые файлы, обладать зачатками разума.

Что нам понадобится?Текстовый редактор, поддерживающий:
- Unicode, в частности UTF-8
Открыть спойлер
- Как CR/LF, так и Unix end of line
Открыть спойлер
- (желательно) замену табуляции на 4 пробела
Под Windows я использую AkelPad, под Linux - Kate


Как грузится Ren'Py?1. Компилирует все файлы *.rpy в папке /game/. Результат = *.rpyc-файлы
2. Загружает все *.rpyc-файлы из папки /game/
Вывод: если подложить .rpy-файл в любое место в папке /game/, то он подгрузится
Кстати, имя файла ни на что не влияет.


Структура rpy-файла- Текстовый, человекочитаемый файл
- 1 команда = 1 непустая строка файла
- Исключение - блоки
-- Блок имеет команду-шапку на первой строке.
-- А также команды-строки, входящие в него
--- Которые тоже могут быть блоками
-- Вложенные команды - на 4 пробела правее


Базовые команды label, jump и returnlabel <метка> - единственный в этом уроке блок
Команды внутри него выполняются сверху вниз
jump <метка> - переход к 1-й команде соответствующего блока
return - возврат к главному меню игры.


Базовые команды: описания и реплики"Вот так оформляется текст от имени автора"
th "Вот так оформляются мысли Семёна, те самые, которые с ~ по краям"
me "Реплика вслух от имени Семёна"

ОСТОРОЖНО: длинная строка не поместится в отведенную в игре рамочку.

Все говорящие
scene <фон> - очистить сцену и показать фон
Список фонов
show <персонаж> <спрайт> - показать спрайт
Список спрайтов
hide <персонаж> - скрыть персонажа. При смене фона hide можно не делать, scene скроет их.

play music <музыка> - начать играть музыку.
Список музыки
stop music - прекратить играть музыку.

# <коммент> - такие строки Ren'Py игнорирует
Пустые строки не влияют на выполнение кода, просто делают его понятнее визуально.

Все вместе


Возможные ошибки
Tab characters are not allowed in Ren'Py scripts. - где-то табуляция вместо пробелов.
is not terminated with a newline. (Check strings and parenthesis.) - не закрыта кавычка
intendation mismatch - проверьте, всегда ли отступаете по 4 пробела
expexted statement - неправильная команда
При передаче show/scene необъяленного изображения предупреждение возникнет лишь во время игры. Сверху появится надпись "Undefined images" и имя изображения.

При попытке передать play неправильную музыку, ошибка возникнет во время игры. Игра упадет с ошибкой KeyError: '<музыка>'



$регистрация модификации
Для того, чтобы появилась возможность запуска модификаций, нужно зарегистрировать ваш мод. Вставляем следующий код в начало rpy-файла:
init:
    $ mods ["<ник>__<название_метки_перехода>"] = u"<Название мода>"

Для запуска нужно перейти в меню "Моды и сценарии" и выбрать <Название мода>, после чего произойдет переход к метке <название_метки_перехода>.
Например:
init:
    $ mods ["student1__lesson2_task1"] = u"Сцена 1"
label student1__lesson2_task1:
...

Обратите внимание, ник нужно отсекать ДВУМЯ подчеркиваниями __

Домашнее задание урока 1
  • +1
  • views 50263