Jump to content
Zone of Games Forum
Artie_Bow

Скрипты для Unity игр

Recommended Posts

Всем привет. В последнее время я помогал одной группе переводчиков и писал различные скрипты для себя. Изначально я не планировал их публиковать, но затем подумал, что они просто валяются без дела, а так они могли бы кому-нибудь пригодиться. В этой теме я коротко расскажу о каждом скрипте, но хочу сказать заранее, что они любительские и предоставляются как есть, поэтому просьба не кидаться тапками. Фиксы возможно будут, но это не точно.

Для использования скриптов вам нужно установить питон и различные модули.
P.S. Защитник Windows помечает FSBank5.exe как вирус — это ложное срабатывание, исходный код вы найдёте по ссылке.
Скрипты: Google Drive

Скрытый текст

Этот скрипт не столько для юнити, сколько для работы с аудио. Предположим у вас есть часовой дубляж, который необходимо разрезать на 100 частей и каждую подписать. Вручную это будет сложно и долго, но этот скрипт может вам помочь ускорить процесс.
Требования: pydub (pip install pydub), speech_recognition (pip install SpeechRecognition).
Использование:

  • Нормализация: выравнивание громкости
    
    usage: audio_split_cli.py normalize input_file target_level
    
    positional arguments:
      input_file    Путь к аудиофайлу
      target_level  Громкость в дБ
    Перед использованием вы можете узнать какая громкость вам нужна — расчёт среднего уровня громкости по папке с аудиофайлами: создайте в корне папку learning, поместите туда аудиофайлы и запустите скрипт check_average_loudness.py.
  • Резка трека по тишине
    
    usage: audio_split_cli.py split [--min_silence_len MIN_SILENCE_LEN] [--silence_thresh SILENCE_THRESH]
                                    [--keep_silence KEEP_SILENCE]
                                    input_file output_format
    
    positional arguments:
      input_file            Путь к аудиофайлу
      output_format         Конечный формат аудио
    
    options:
      —min_silence_len                       Минимальная длина тишины (в мс)
      —silence_thresh SILENCE_THRESH         Порог тишины (в дБ)
      —keep_silence KEEP_SILENCE             Сколько тишины оставить в начале и в конце аудио (в мс), по умолчанию - 100

    input_file — соответственно после нормализации уже будет с приставкой "_normalized". Остальные параметры подбирать вручную. После запуска команды скрипт уведомит сколько частей получается после резки. Вы можете либо согласиться, либо перезапустить скрипт с новыми параметрами. Учтите, даже если совпадает количество частей, не факт, что музыка порежется правильно. Но зато это можно вычислить используя следующую команду.

  • Транскрибирование аудио в текст
     

    
    usage: audio_split_cli.py transcribe [--whisper_model WHISPER_MODEL] transcribe_method utils_path
    
    positional arguments:
      transcribe_method     Способ транскрибирования (whisper/google)
      utils_path            Путь для утилит транскрибирования
    
    options:
      —whisper_model       Имя модели Whisper с расширением (если она используется)

    Полезная вещь, чтобы узнать, где аудио порезалось неправильно. Google транскрибирует быстрее, но и менее качественно. Если whisper - нужно дополнительно скачивать модель (в папке уже лежит модель base).

  • Переименовка порезанных файлов, используя список
     

    
    usage: audio_split_cli.py rename list_file
    
    positional arguments:
      list_file   Имя текстового списка

    Название первого файла = тексту первой строке списка и так далее.

Скрытый текст

Скрипт для перепаковки аудио в бандлах и архивах. Перед запаковкой кодирует в fsb5 с форматом сжатия из оригинального fsb (обычно это Vorbis/PCM), но по умолчанию  используется Vorbis.
Требования: UnityPy (pip install UnityPy).
Использование:

  • Аудиофайлы которые будут импортироваться
    закинуть в папку import_audio (скрипт принимает как wav, так и ogg, но работоспособность последнего формата не тестировалась).
  • Импорт в бандлы
    1) Экспорт - поместить в папку bundles, открыть Export_bundles.bat.
    2) Патчинг - audio_importer.py, и обратная запаковка - Import_bundles.bat. После этого в папке bundles будут обновлённые бандлы.
  • Импорт в ассеты
    поместить в Unity_Assets вместе с файлами ресурсов, открыть audio_importer.py. Новые перепакованные ассеты появятся в папке Unity_Assets_new.

    Примечание: утилита конвертации в FSB5 не поддерживает non-ASCII пути, поэтому всю папку audioclip_patcher нужно копировать в другую директорию, например, на рабочий стол.
    Также если в пути есть папка содержащая пробелы в конце названия, например "папка ", то такой путь приведёт к ошибке.
Скрытый текст

Скрипт для редактирования MonoBehaviour файлов через дампы. 
Требования: UnityPy (pip install UnityPy).
Использование:


usage: mb_patcher.py [-p DATA_PATH] [-t TYPETREES_FILE] [-c CLASS_NAMES] [-f FILE_PATTERNS] [-d DUMPS_DIR]
                     {exp,imp}

positional arguments:
  {exp,imp}             Команда

options:
  -p 	Путь к папке Data
  -t 	TypeTrees JSON файл
  -c 	Список имён классов для обработки
  -f 	Шаблоны файлов, разделенные запятыми
  -d 	Папка для экспорта/импорта дампов

Сгенерируйте Typetrees библиотеки Assembly-CSharp.dll, укажите команду для импорта/экспорта дампов.

Скрытый текст

Данная утилита предназначена для пробива символов в json дампах sdf шрифтов. Делал для Asset Studio GUI.
Использование:

Поместить дампы в папку MonoBehaviour, прописать в скрипте для какого ключа обрабатывать информацию, запустить скрипт.
Если какие то недостающие символы будут найдены, они будут добавлены и записаны в файл Chars_new.
При создании sdf через юнити укажите Chars_new в качестве файла с символами.

Скрытый текст

Скрипт для быстрой запаковки текстур в бандлы при помощи UnityEx. Текстуры автоматически конвертируются в dds, правятся под оригинал, и запаковываются.

P.S. Google удалил утилиту ConverterTextures.exe, скачать её можно в теме UnityEx, поместить в папку converter.
Использование:

Закинуть бандлы в bundles, либо указать другой путь в батниках (где for /r "bundle_files"), переведённые текстуры положить в translated_imgs.
Запустить файл Repack_bundle_textures.py и дождаться окончания.

Export_textures - экспортирует лишь картинки которые нужны будут для замены (указывается -t img1.tex*, img2.tex*... не знаю почему, но без звёздочки unityex не находит прописанные файлы, в других версиях программы это может работать иначе).

 

 

Edited by Artie_Bow
  • Like (+1) 1
  • Upvote 2

Share this post


Link to post

Реклама, ООО «ВК», ИНН 7743001840, erid: 2VtzqvkJE2K

Реклама, ООО «ВК», ИНН 7743001840, erid: 2VtzqvkJE2K

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



Zone of Games © 2003–2023 | Реклама на сайте.

×