Работа со скриптами Renpy

Любой скрипт в формате Renpy представляет собой простой текстовый файл в кодировке UTF-8. В начале работы со скриптом проверьте, что в вашем редакторе выбрана именно эта кодировка!

Текст скрипта включает в себя служебные команды языка Renpy, определяющие то, что происходит на экране и то, что в каждый момент времени слышит игрок, дополнительную информацию в виде комментариев, и собственно фразы персонажей. Как и в большинстве языков программирования, для облегчения чтения и работы над скриптом, каждый отдельный блок команд, каждый комментарий и каждая отдельная фраза персонажа занимают одну строку. Структура скрипта последовательная, линейная. Поддерживаются переходы. Это значит, что команды исполняются одна за другой по порядку строк, но с помощью специальных служебных команд можно исключить какой-либо участок последовательных строк из обработки. Или обрабатывать этот участок как-то иначе.

Комментарии обозначаются знаком «решётка» — #, который идёт в начале строки. Такая строка игрой не учитывается вовсе, она как бы не видна для неё. Все команды Renpy пишутся на английском языке. Некоторые из команд могут предваряться особыми служебными символами, например «символом доллара» — $. Они обрабатываются игрой наравне с другими. Любой текст фраз персонажей, будь то повествование рассказчика, мысли главного героя или прямая речь персонажа, заключается в обычные кавычки ("). Не забывайте комментировать строки оригинальных английских фраз, когда добавляете для них свой перевод, просто добавляя в начале английской строки символ #. Внизу этого поста я приложил картинку с примером того, как в результате должен выглядеть скрипт.

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

Команды, которые обозначают работу с персонажами и сценами:

scene — смена сцены (фона)
with locationchange — эффект смены сцены
with locationskip — эффект смены сцены
with dissolve — стирает отображение сцены
show — отображает указанного персонажа на экране
hide — скрывает указанного персонажа
with charaenter — обозначает появление нового персонажа (его изображение вдвигается из-за границ экрана)
with charachange — изменение картинки персонажа
with charamove — перемещение персонажа по экрану
with charaexit — выдвигает изображение персонажа за границы экрана
play sound — проигрывает определённый звук. Обычно по названию звука понятно, что именно это за звук.

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

Также иногда встречаются сложные команды, содержащие в своих строках фразы персонажей. Пример такой команды — команда doublespeak, которая отображает специальный эффект, когда два персонажа говорят что-нибудь одновременно. Разумеется, такие фразы тоже надо переводить, поэтому это ещё одна причина внимательно относится не только к тексту фраз, но и к командам Renpy. Ниже приведу пример применения такой команды из скрипта:

$ doublespeak (li, hh, «I don't see why it matters.», «I don't think it matters.»)

Команды, обозначающие фрагменты участков скрипта:

nvl — обозначает действия с полноэкранным оформлением текста. В начале такого сегмента всегда идёт команда nvl show. Когда сегмент полноэкранного текста заканчивается, идёт команда nvl hide. Если полноэкранный текст занимает несколько страниц, для очищения экрана при переходе на следующую страницу используется команда nvl clear.
label — начало определённого фрагмента текста. Это может быть как отдельная сцена, одна из составляющих всю главу, так и сюжетное ветвление, и даже просто отдельный выбор из набора каких-либо действий или фраз.
menu — соответственно, показывает меню. Ниже этой команды идёт перечисление пунктов, из которых формируется меню.

Некоторые рекомендации при работе над скриптом:

Лично я предпочитаю работать со скриптами Renpy в бесплатном текстовом редакторе Notepad++. Он обладает достаточно богатым функционалом и гораздо более быстрый и менее громоздкий, нежели чем, к примеру, MS Word. Среди удобств — поддержка цветового выделения текста и отображение в статусной строке внизу окна редактора номера текущей строки и положения курсора (в количестве символов) относительно её начала. Это позволит вам одновременно с переводом также контролировать максимальный размер строк (опять-таки можно посмотреть картинку внизу).

Если строка перевода получается чересчур длинной (превышает 260-270 символов) и сократить её без ущерба для смысла никак не удаётся, и эта строка не относится к полноэкранному фрагменту текста (текст в сегменте nvl), то эту строку можно разбить на две независимые, предваряя каждую соответствующим префиксом персонажа. Например:

Оригинал: hi «It's not like she's literally talking over me and stuff, obviously. It's hard to explain. They have more energy than I do. It's like, an aggressiveness. I don't feel like I have to match it, but I want to. I think maybe your sister has that effect on people.»
Перевод: hi «Не то чтобы она могла перекричать меня буквально или ещё что, разумеется. Это сложно объяснить. Они гораздо энергичнее меня. Это, знаешь, как напористость. И вроде бы я не обязан этому соответствовать, но мне хочется.»
hi «Наверное, твоя сестра оказывает такое влияние на окружающих.»


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

Если захотите этим воспользоваться, необходимо целиком записать данный текст в файл под названием userDefineLang.xml, который находится в каталоге «<Имя диска>:\Documents and Settings\<имя пользователя>\Application Data\Notepad++\» в случае с Windows XP, или в каталоге «<Имя диска>:\Users\<имя пользователя>\AppData\Roaming\Notepad++\» в случае с Vista и старше. Если вы уже работали с Notepad++ и у вас в этих каталогах уже есть этот файл, то тогда просто добавьте в него приведённый фрагмент текста, удалив начальный тег <NotepadPlus> и конечный тэг </NotepadPlus>, в конец файла (перед закрывающим тэгом </NotepadPlus>). Если вы всё сделали правильно, то в пункте «Синтаксис» главного меню N++ в самом низу появится пункт 'Renpy'.

2ytoi7t.jpg

И ещё один важный момент. Никогда не забывайте делать резервные копии своих наработок в скриптах. Даже не смотря на то, что ваши наработки вы должны также заносить на Ноту, будет обидно, если вы в случае какого-либо досадного инцидента потеряете почти полностью отредактированный скрипт. Например, я взял себе за правило после каждой сессии работы над скриптом копировать его в другой каталог на другом диске.
Написал Swordsman 20 мая 2013, 11:49 Перевод 7 комментариев

Комментарии

Наконец то этот список выложили.....

Taliys 21.05.13 в 06:24 · # ·
0

скрытые комментарии (6 шт.)

Не понял, какой список?

Swordsman 21.05.13 в 06:58 · # ·
0

Список тех команд и служебной разметки

Taliys 21.05.13 в 07:20 · # ·
0

Но я то об этом не знал :)
Да и те кого я спрашивал эти команды не узнавали.

Taliys 25.05.13 в 08:48 · # ·
0

У меня спросить нужно было :Р

6_aman 25.05.13 в 12:35 · # ·
0

:)

Taliys 25.05.13 в 14:25 · # ·
0
Перевод
Перевод:
текст с английского на русский
Создан:
8 июня 2012, владелец: CookiezEater
Скачали:
463 чел.
Права доступа:
войти все
видеть чужие версии все
скачивать результат все
оценивать перевод группа
комментировать перевод группа
переводить группа
читать блог все
комментировать блог группа
писать в блог группа
анонсировать модераторы
редактировать оригинал модераторы
редактировать описание модераторы
управлять группой никто
Участие в группе после подтверждения создателем
Готово:
100.00% КП = 1.2