Для начала нужно добавить все ресурсы, что у вас имеются, в список.
Для этого открываем файл 'game/scripts/generator_list.rpy'.
Пройдем все по порядку. В начале идут объявления и настройки эффектов, здесь можно ничего не менять.
Код
gs_folder = "generated/" # Папка извлечения .txt файлов и генерации .rpy файлов
gs_tag_label = 'МЕТКА: ' # поиск и вставка label
gs_need_enter_after_quoute = False # если нужен enter после диалога говорящего, вставьте True
gs_dissolve = ' with dissolve' # эффект плавного появления
gs_dissolve_with_enter = '\n with dissolve' # общий эффект плавного появления с переносом строки (чтобы применилось и на фон и на других персонажей)
Следующее в списке это теги персонажей (
Character).
Здесь все просто, в левой части указываем имя персонажа, как он подписан в сценарии, с добавлением двоеточия, а в правой части его тег Character из кода.
P.S.: Можно добавлять сколько угодно новых персонажей, как и спрайтов, фонов и музыки/звуков, главное не забывайте ставить запятые после правой части.
Код
characters = {
"ИГРОК:" : 'p',
"ДЕВУШКА:" : 'g',
"НЕИЗВЕСТНЫЙ:" : 'u',
}
Далее - спрайты.
Сначала метка вывода и сокрытия спрайта, далее по классике: слева название спрайта из сценария, а справа название инициализированного изображения из вашей игры (
Image).
P.S.: Если хотите плавное появление изображения, можно добавить +gs_dissolve (переменная из начала скрипта) к правой части, как это сделано у меня. Вы так же можете добавлять и свои
эффекты перехода.
Код
tag_sp_show = 'СПРАЙТ: ' # метка поиска вывода спрайта
tag_sp_hide = 'СКРЫТЬ СПРАЙТ: ' # метка поиска сокрытия спрайта
list_sprites = {
tag_sp_show+"ЭМИ СТРАХ": 'amy fear'+gs_dissolve,
tag_sp_show+"ЭМИ УЖАС РЕЗКО": 'amy horror',
tag_sp_show+"ЭМИ УЖАС ПЛАВНО": 'amy horror'+gs_dissolve,
tag_sp_show+"ЭМИ УЖАС С ФОНОМ": 'amy horror'+gs_dissolve_with_enter,
tag_sp_hide+"ЭМИ": 'amy with dissolve',
}
Следующее по списку - фоны.
Здесь сначала указываем метку поиска фона в сценарии.
Дальше классическая схема: слева название фона в сценарии, справа как оно объявлено в игре.
Код
tag_bg = 'ФОН: ' # метка поиска фона
list_backgrounds = {
tag_bg+"КОРИДОР ДЕНЬ ПЛАВНО": 'bg hallway'+gs_dissolve,
tag_bg+"КОРИДОР ДЕНЬ РЕЗКО": 'bg hallway',
tag_bg+"УЛИЦА ДЕНЬ ПЛАВНО": 'bg street'+gs_dissolve,
tag_bg+"УЛИЦА ДЕНЬ РЕЗКО": 'bg street',
}
У добавления CG абсолютно такой же принцип, за исключением лишь иной метки поиска, поэтому расписывать здесь смысла не вижу. Просто запомните следующее: левая часть - название из сценария, правая часть - название из кода.
Последнее в списке добавление музыки и звуков, принцип у них один, поэтому распишу лишь музыку.
В начале настройка значения эффектов плавного появления/затухания, если вам это не нужно, то просто установите music_fadeactive = False.
tag_ms - тег поиска музыки по сценарию.
Ну а далее как всегда: слева название из сценария, справа название
объявленной музыки. Код
music_fadeout = 1.0 # Плавное затухание музыки
music_fadein = 1.0 # Плавное нарастание музыки
music_fadeactive = True # False, если fadein и fadeout не нужны
music_pref = 'play music '
music_suff = ' fadein %s fadeout %s'%(music_fadein, music_fadeout)
# СЛОВАРЬ МУЗЫКАЛЬНЫХ ТРЕКОВ
tag_ms = 'ТРЕК: '
list_music = {
tag_ms+"ГРУСТЬ": 'sad',
tag_ms+"ОБЫЧНЫЙ": 'usual',
}
Имейте в виду, что все названия чувствительны к регистру, поэтому лишний раз убедитесь, что они идентично написаны как в сценарии, так и в этом скрипте.
Ну вот и все, с объявлением всех ресурсов покончено.
Все выглядит громоздко и страшно, но не волнуйтесь, на деле все очень просто.
Вам нужно лишь заменить мои названия на свои, и добавлять новые ресурсы сколь вам угодно через запятую.
Настроить все это можно лишь раз для игры и забыть как страшный сон. Важно! Если ресурс не будет найден в словаре, тогда название будет подвержено транслитерации.
Комментарии к записи: 15
Обязательно опробую на днях это чудо автоматизирования.
Спасибо большое!
*Имеется ввиду ренпай без дополнений
А когда присылают огромный объем тысяч на 50 слов, это сокращение просто тонны времени.
Надо же не запутаться во всех персонажах, прописать их правильно и разбить текст на фразы, которые помещаются красиво в диалоговое окно.
Так что- большое спасибо за такой костыль. Буду обязательно пользоваться им)
Ни в коем случае! Вы хоть представляете, как муторно вычитывать и редактировать текст прямо в RenPy? Или же захотели вы переделать что-то, вырезать диалог, добавить в другом месте - куча сделанной впустую работы. Или вы пишете разветвленную историю или диалог... вбивать такое сразу в RenPy - сущая пытка. Я уже не говорю о том, что в редакторе RenPy нету автоматической проверки правописания из-за чего можно наделать массу тупых опечаток просто по невнимательности. Возможно какие-нибудь простенькие работы в духе: "-Привет, давай дружить! -Ого, давай дружить!" и можно сразу в код вбивать, но если делается что-то более серьезное, то сначала писать и вычитывать в ворде - единственный правильный путь.
чего бы хотелось добавить/поправить.
- стандартную процедуру транслита вместо словаря подмены. чтобы ничего не расписывать и вообще не менять русскую раскладку
- табуляция особенно физическая не всегда удобна. возможно можно сделать чтоб и 4 пробела узнавало.
- вообще поработать над ограничениями, и допустить кавычки, пробелы в названиях, и мб даже раскладку. чтоб не нужно было держать ограничений в голове а просто садиться и творить :3
крч круто, спасибо!
1. Теперь, если по метке ничего не находится в словаре, то название ресурса будет подвержено транслитерации (ГОСТ Р 52535.1-2006). Можно заменить на свои правила транслитерации, все находится в файле scripts/generator_translit.rpy
2. 4 пробела будут определяться так же, как и табуляция.
3. Теперь можно писать кавычки в тексте, пробелы и русские символы в названиях файлов, меток и персонажей.
Пробелы заменяются на нижний прочерк, а русские буквы будут подвержены той же транслитерации.
P.S.: После генерации .rpy скрипты доступны сразу же, к примеру, можно в консоли вызвать через call *название метки* и это сработает. Но лишь в том случае, если все ресурсы инициализированы и физически добавлены в игру.
Ну а я и не собирался писать новеллу в многатысяч букав, так что, пользоваться не буду. Но спасибо!