Компиляция/декомпиляция

Метод 1.

  1. Качаем vendor_utils.zip, распаковываем во временную папку, например, \Katawa Shoujo\_temp
  2. Туда же копируем содержимое папки \Katawa Shoujo\game\RU, например, script-a1-monday-RU.rpyc
  3. Запускаем GetText.bat, получаем два файла: script-a1-monday-RU.TXT и script-a1-monday-RU.BIN
  4. Глумимся над полученным файлом с расширением TXT (в BIN не лезем!!!)
  5. Запускаем InsertText.bat, получаем новый вариант файла script-a1-monday-RU.rpyc
  6. Перемещаем (это важно, если временную папку вы создали вложенной в главную папку игры, иначе игра будет ругаться на дубликаты, т.к. она найдёт ваш забытый во временной папке rpyc-файл и попытается его подключить к проекту) новый script-a1-monday-RU.rpyc обратно в \Katawa Shoujo\game\RU
  7. Запускаем игру…


К сожалению, утилита Вендора не позволяет (во всяком случае, мне это сделать так и не удалось) вносить изменения в файлы, в которых определяются строковые переменные, такие как имена, кнопки меню, разработчики и прочее, в частности в файл ui_strings-RU.rpyc. Так что второй метод нам тоже придётся освоить :)))

Метод 2.

  1. Качаем lolbot_decompile.zip, распаковываем в папку с игрой (в результате файл decompile.rpy из архива должен оказаться в папке \Katawa Shoujo\game)
  2. Запускаем игру и некоторое время ждём, до тех пор, пока игра не начнётся. Всё, из игры можно выходить. Наигрались :)
  3. Если первые два пункта выполнены без ошибок, то в корневой папке \Katawa Shoujo увидите огромное количество файлов с длинными названиями, например, интересующий нас _Users_delta_Documents_ks svn_Katawa Shoujo Act 1_game_RU_ui_strings-RU.rpy.txt. Это – исходный код во всей красе. Он менее читабелен, чем полученный в методе 1, зато делать с ним можно ну всё, что угодно. В том числе править имена персонажей, меню и прочее. Файл decompile.rpy из папки \Katawa Shoujo\game можно удалять, иначе при каждом запуске игра будет генерить эти многочисленные файлы.
  4. После внесения изменений вспоминаем, что движок RenPy, в случае, если не находит файла rpyc, сам генерит этот файл из rpy. Итак, стираем по пути \Katawa Shoujo\game\RU файл ui_strings-RU.rpyc, в эту папку копируем уже исправленный _Users_delta_Documents_ks svn_Katawa Shoujo Act 1_game_RU_ui_strings-RU.rpy.txt и переименовываем его в ui_strings-RU.rpy
  5. Запускаем игру…
  6. После запуска получаем свежесгенерённый файл \Katawa Shoujo\game\RU файл ui_strings-RU.rpyc, а файл ui_strings-RU.rpy можно стирать


Очевидно, что описанные выше в методе 2 операции можно проводить и над другими файлами, например, script-a1-monday-RU.rpyc, просто это, по-моему, проще и удобнее делать в утилите Вендора. Впрочем, допускаю, что у каждой утилиты есть какие-то косяки, с которыми я пока не сталкивался.

Метод 3.

  1. В папке \Katawa Shoujo\game создаём файл script.rpy со следующим содержимым:

    init python:
    image_files = [
    fn
    for dir, fn in renpy.loader.listdirfiles()
    if not fn.lower().endswith(«.rpy») and not fn.lower().endswith(«.rpyc») and not fn.lower().endswith(«.rpa») and not fn.lower().endswith(«.rpyb»)
    if not fn[0] == «_»
    ]

    def unarchive(original_filename, new_filename):
    import os
    import os.path

    new_filename = config.basedir + «/» + new_filename
    dirname = os.path.dirname(new_filename)

    if not os.path.exists(dirname):
    os.makedirs(dirname)

    orig = renpy.file(original_filename)
    new = file(new_filename, «wb»)
    new.write(orig.read())
    new.close()
    orig.close()


    label start:
    python:
    for img in image_files:
    unarchive(img, «extracted/»+img)
    return

  2. Меняем расширение оригинальному файлу ui_labels.rpyc, например, так: ui_labels.rpyc_
  3. Копируем полученный по 2-му методу в эту папку файл ui_labels.rpy, в котором удаляем блок, начинающийся с label start:
  4. Запускаем игру, жмём «Начать» и ждём, пока снова не появится меню, после чего выходим из игры
  5. В новой папке \Katawa Shoujo\extracted получаем ВСЁ, кроме, как мне показалось, самих скриптов (каковые мы без труда можем получить 2-м методом, например), т.е. видео, музыку, аудио, шрифты.
  6. Удаляем файлы ui_labels.rpy, ui_labels.rpyc и script.rpy, переименовываем расширение файла ui_labels.rpyc_ обратно в ui_labels.rpyc.
  7. Профит! :)

http://honyaku-subs.ru/forums/viewtopic.php?f=20&t=144#p1726
Написал DOOMer 27 мая 2013, 21:18 Общение 18 комментариев

Комментарии

it's alive! но неудобно, к сожалению.

timcalire 31.05.13 в 23:35 · # ·
0

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

Почему неудобно? Мне, так вообще в кайф. Я неплохо знаком с движком RenPy и поэтому очень приятно работать в знакомой среде. А если бы ещё научиться разъединять картинки от музыки, то-есть понять как разархивировать файлы данных, было бы вообще здорово, хотя и при такой раскладке уже можно вживлять в игру свои изображения и музыку. Ха, может моя задумка таки исполнится... написать ещё парочку роутов ffed470f7be15e9df23e10901369ea41.gif

6_aman 01.06.13 в 01:00 · # ·
0

Неудобно выводится текст в .txt файле) я об этом)
С ренпишкой и сам работал, в питоне также кумекаю :3

timcalire 01.06.13 в 02:36 · # ·
0

А что именно неудобно?
Давай я конвертер напишу. Ты пришли мне в почту два файлега – исходный и то, что хочется из него получить, а я подумаю. Хотя, если ты в Питоне сам разбираешься, то можешь и сам написать, теоретически ;)

А я его чё-то совсем ниасилил :( Впрочем, и нужды (конкретной задачи) не было :)

DOOMer 02.06.13 в 15:18 · # ·
0

да ладно. Неудобство не явное, вполне можно выцепить нужный текст ) Просто .txt файл представляет код в формате адресов, а не в привычном глазу обычном ренпи коде.

timcalire 02.06.13 в 21:38 · # ·
0

А ты пользуешься первым способом? Тогда да, лучше использовать второй – он работает намного корректнее.

6_aman 02.06.13 в 21:45 · # ·
0

+100500

DOOMer 03.06.13 в 08:22 · # ·
0

А я ведб когда-то нечто подобное делал... Только не помню, с YMK или KS... И как-то просто оно всё. И, да, я использовал инструменты Вендора, это я точно помню.

Вот озвучку бы... Кто у нас тут самый басистый? Чтобы эдаким гроулом Мишу озвучить? :))))))

DOOMer 02.06.13 в 15:16 · # ·
0

Добавил 3-й метод.

DOOMer 03.09.13 в 15:25 · # ·
0

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

чё то он не фурычит у меня... Игра вообще не запускается, пока не удалишь созданный файл script.rpy

6_aman 03.09.13 в 23:23 · # ·
0

Всё, разобрался. Не нужно там создавать дополнительный файл. Просто в файле ui_labels.rpy меняем блок старта и всё. Игру запускаем именно стартом, как новую, потом закрываем. Всё это на официальном сайте движка RenPy написано в закладке «Cookbook» ;)

6_aman 04.09.13 в 00:29 · # ·
0

Кстати неплохое это дело. Можно и названия вывесок на русском поисправлять ;)))

6_aman 04.09.13 в 00:30 · # ·
0

Во! Это крутотенюшка, конечно, была бы, но не против ли будут авторы новеллы?

xBlackJackx 04.09.13 в 08:19 · # ·
0

Только вопрос – как потом картинки новые встроить в новеллку? Т.е., думаю, способов тоже масса, но я пока их не знаю. Будет день – будет пища. А вообще, очень надеюсь на помощь в технических вопросах Вендора или w8m с Хоняк, т.к. у нас тут нет спецов такого уровня, как я понимаю :(

DOOMer 04.09.13 в 08:49 · # ·
0

Ну да, можно и так.

Да, якобы оно там лежит, но тут же какое дело – если б знать заранее, ЧТО и ГДЕ искать... :)))

DOOMer 04.09.13 в 08:48 · # ·
0

Там же написано, что при создании файла script.rpy с приведённым выше скриптом, и при запуске выскакивает сообщение ошибки, а в нём написано где всё находится. В нашем случае выскакивает сообщение, что блок «старт» находится в файле ui_labels.rpy на строке 1171 и ниже. Вот кстати ссылка на видео примера, как это всё работает, если кому интересно: http://kinostok.tv/video/257223/rabota-s-kodami-v-RenPy

6_aman 04.09.13 в 21:58 · # ·
0

Вах, красавчег! :)
Молодца.
На самом деле, я что думаю... После того, как мы допилим всё, предлагаю сделать проект открытым, кому-нить блог наш и комменты могут пригодиться, думаю.

DOOMer 06.09.13 в 11:04 · # ·
0

Да, это хорошая идея! Думаю, мы не одни такие, сталкиваемся со всеми этими проблемами. Кстати сейчас зайду в группу ВКонтакте (по RenPy'ю), может там чего интересного найду =)

6_aman 06.09.13 в 17:27 · # ·
0
Перевод
Перевод:
текст с английского на русский
Создан:
23 мая 2013, владелец: 6_aman
Скачали:
44 чел.
Права доступа:
войти все
видеть чужие версии все
скачивать результат никто
оценивать перевод группа
комментировать перевод группа
переводить группа
читать блог все
комментировать блог все
писать в блог группа
анонсировать модераторы
редактировать оригинал никто
редактировать описание никто
управлять группой никто
Участие в группе по приглашению от создателя
Готово:
90.06% КП = 1.0