Интерактивный Режиссёр
Интерактивный Режиссёр — это инструмент, который позволяет редактировать сценарий вашей игры прямо в Ren'Py, с предпросмотром результатов вашего редактирования в реальном времени. Режиссёр не предназначен для полной замены текстового редактора, который по-прежнему необходим для написания диалогов, выборов и логики визуальной новеллы.
Скорее, он предназначен для того, чтобы помочь вам режиссировать сценарий игры, добавляя:
Инструкции для изображений (say, show и hide).
Инструкции для переходов (with).
Инструкции для аудио (play, queue, stop и voice).
Использование Режиссёра
Вы можете получить доступ к режиссёру после запуска игры, нажав на клавиатуре клавишу D (без Shift). Если вы запускаете режиссёр впервые за сессию, Ren'Py перезагрузит игру, чтобы убедиться в наличии данных, необходимых для редактирования.
На первом экране режиссёра вы увидите список строк, которые были выполнены перед текущей строкой. Нажмите за пределами окна со строками, чтобы продвинуться по сценарию, или сделайте откат, чтобы вернуться назад. Нажмите «+» между строками, чтобы добавить строку, или «✎» перед строкой, чтобы её отредактировать.
При редактировании строки можно выбрать тип инструкции вместе с соответствующими параметрами. Выберите «Add», чтобы добавить новую строку, «Change», чтобы изменить существующую, «Cancel», чтобы отменить редактирование, и «Remove», чтобы удалить существующую строку.
Нажмите «Done», когда закончите редактирование.
Переменные
В пространстве имён director определено несколько переменных, которые управляют работой интерактивного режиссёра. Их можно установить с помощью инструкции define или изменить с помощью Python.
Scene, Show, и Hide
- director.tag_blacklist = { "black", "text", "vtext" }
Чёрный список тегов, которые не будут отображаться для инструкций show, scene или hide.
- director.scene_tags = { "bg" }
Набор тегов, которые будут представлены для инструкции scene и скрыты от инструкции show.
- director.show_tags = set()
Если не пуст, то для инструкции show будут представлены только теги, присутствующие в этом наборе.
- director.transforms = [ "left", "center", "right" ]
Список трансформаций, которые будут представлены в редакторе. В дополнение к ним, любая трансформация, определённая с помощью инструкции transform вне самого Ren'Py, будет добавлена в список трансформаций, который затем сортируется.
With
- director.transitions = [ "dissolve", "pixellate" ]
Список переходов, доступных для инструкции with. Поскольку переходы не могут быть определены автоматически, их необходимо добавлять вручную.
Play, Queue, Stop, и Voice
- director.audio_channels = [ "music", "sound", "audio" ]
Имена аудиоканалов, которые можно использовать с инструкциями play, show и stop.
- director.voice_channel = "voice"
Имя аудиоканала, используемого инструкцией voice.
- director.audio_patterns = [ "*.opus", "*.ogg", "*.mp3" ]
Список шаблонов аудиофайлов по умолчанию, которые используются для поиска доступных файлов в аудиоканале.
- director.audio_channel_patterns = { }
Словарь, сопоставляющий имя канала со списком шаблонов аудиофайлов, доступных в этом аудиоканале. Например, если он установлен как
{ 'sound' : [ 'sound/*.opus' ], 'music' : [ 'music/*.opus' ] }, то каналы music и sound получат собственные списки шаблонов.
Доступ
- director.button = True
Если True, режиссёр отображает экран с кнопкой для доступа к окну режиссёра. Если False, игра может предоставить собственный способ доступа, сделав доступным действие director.Start.
Межстрочный интервал
- director.spacing = 1
Отступ между строкой режиссёра (scene, show, hide, with, play, queue, и voice) и обычной строкой, или наоборот. Эти отступы должны быть равны 0 или 1 строке, большее значение может не работать.
- director.director_spacing = 0
Отступ между двумя последовательными строками режиссёра.
- director.other_spacing = 0
Отступ между двумя последовательными обычными строками.
Viewport
- director.viewport_height = 280
Максимальная высота прокручиваемых областей просмотра, используемых режиссёром.
Функции имён аудиофайлов
Существует ряд функций для работы с именами аудиофайлов, которые можно использовать для преобразования имён файлов на диске в имена файлов в исходном коде Python. Это можно использовать для соответствия функциональности Ren'Py, которая сопоставляет имена файлов. Например, если у вас есть:
define config.voice_filename_format = "v/{filename}.ogg"
можно определить следующие функции:
init python in director:
def audio_code_to_filename(channel, code):
"""
Эта функция преобразует имя аудиофайла из кода
в имя файла на диске.
"""
if channel == "voice":
return "v/" + code + ".ogg"
return code
def audio_filename_to_code(channel, fn):
"""
Эта функция преобразует имя аудиофайла на диске
в имя файла для использования в коде.
"""
if channel == "voice":
return fn.replace("v/", "").replace(".ogg", "")
return fn
def audio_filename_to_display(channel, fn):
"""
Эта функция преобразует имя аудиофайла на диске
в вид, который будет показан создателю.
"""
if channel == "voice":
return fn.replace("v/", "").replace(".ogg", "")
return fn
чтобы обеспечить соответствие.