Перейти к содержимому
Zone of Games Forum
Memoric

Автопереводчик для Unity игр XUnity.AutoTranslator

Рекомендованные сообщения

https://github.com/bbepis/XUnity.AutoTranslator

вот типа:baby_tone2:  пример

Скачать видео
Скачать видео

 

Изменено пользователем Memoric

Поделиться сообщением


Ссылка на сообщение

Апну тему скринами из разных игр с использованием autotranslator:

Banner of the Maid (китайский →  русский): https://imgur.com/a/LNHYwsV

Banner of the Maid (китайский → английский): https://imgur.com/a/LDdyhHK

We the Revolution (английский → русский): https://i.imgur.com/D3hJUo1.png

NITE Team 4 (английский → русский):  https://i.imgur.com/K4KPip1.png

Tales of the Neon Sea (английский → русский):  https://imgur.com/a/y7oztQg

 

Поделиться сообщением


Ссылка на сообщение

Creeper World 4 (Патч на русские шрифты для автопереводчика)
BepInEx-Unity.IL2CPP-win-x64-6.0.0-pre.2_AutoTranslator-5.4.4_RU
https://disk.yandex.ru/d/GcbPbnE53mqm5A
Текст в сложных БД.

Вытянутый гогле для перевода.
https://disk.yandex.ru/d/xKGf8BEp2w6aDw

Изменено пользователем DragonZH
  • Лайк (+1) 2

Поделиться сообщением


Ссылка на сообщение

Всем привет, пытаюсь перевести вручную игру Hard Time III. В чём вопрос — в игре очень много диалогов и часто в них используются имя и фамилия, либо только что-то одно из этого, либо кол-во денег, либо нужное время формата 12:30. Есть ли возможность пропускать части текста, где например используется имя или число?

Чтоб вывело заранее переведенный текст всего, кроме имени/числа.
Потому что на данный момент я не вижу выхода, кроме как вводить каждое имя вручную в _substitutions и просто в тексте вместо имени писать {{A}}. Это работает, пока я встречаю персонажей, чьи имена перевел сам.
Пример:
“Wake up, Essa Carerra!=Просыпайся сейчас же, Эсса Карерра!” (вместо Essa Carerra в файле написо {{{A}}, а само Essa Carerra=Эсса Карерра добавлено в _substitutions). В таком случае всё работает хорошо.
А когда персонажи обращаются просто “Wake up, Essa!”–  в самой игре не переведёт текст вообще никак (весь перевод из кэша если что, не автоматический, с ним-то проблем нет за исключением его кривизны).
Хотелось бы, чтоб переводило только “Wake up, ” из прописанного мной перевода в файле, а остальная часть останется в оригинале на английском.

И с числом:
“I’ll by this backpack for 18$ — нужно как-то сделать, чтоб переводилось всё, но не бралась в учёт стоимость, потому что она рандомная.

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

С текстом без имён/фамилий, кол-ва денег или времеи всё ок, редактируется и выводиться как надо. Мной уже переведена и отредактирована бОльшая часть игрового текста и текстур.
За программирование, если что, сразу скажу что не шарю и заранее спасибо за ответ)

Поделиться сообщением


Ссылка на сообщение
18 часов назад, MeiCh сказал:

И с числом:
“I’ll by this backpack for 18$ — нужно как-то сделать, чтоб переводилось всё, но не бралась в учёт стоимость, потому что она рандомная.
 

Если надо с изменяющимися числами возится в переводе, то в файле настроек автопереводчика(типа AutoTranslatorConfig.ini), надо установить флаг параметра: TemplateAllNumberAway=True

После этого сама программа автоперевода будет заменять числа на {{A}}, но не всегда почему то...

Ну и самому можно в  тексте файла перевода, заменяй все меняющиеся числа на {{A}}, если одно число в строке: Например: “I’ll by this backpack for 18$=“I’ll by this backpack for {{A}}$

а если числа в одной строке несколько, то например строка: 1+2+3+4 будут выглядеть:

{{A}}+{{В}}+{{С}}+{{D}}

18 часов назад, MeiCh сказал:

Пример:
“Wake up, Essa Carerra!=Просыпайся сейчас же, Эсса Карерра!” (вместо Essa Carerra в файле написо {{{A}}, а само Essa Carerra=Эсса Карерра добавлено в _substitutions). В таком случае всё работает хорошо.
А когда персонажи обращаются просто “Wake up, Essa!”–  в самой игре не переведёт текст вообще никак (весь перевод из кэша если что, не автоматический, с ним-то проблем нет за исключением его кривизны).
Хотелось бы, чтоб переводило только “Wake up, ” из прописанного мной перевода в файле, а остальная часть останется в оригинале на английском.

Попробуй разбить имя и фамилию по двум переменным, наприме“Wake up, Essa Carerra!=Просыпайся сейчас же, {{{A}} {{{В}}!”, а в файле _substitutions пропиши строки: 

Essa=Эсса

Carerra=Карерра

Но это не точно что сработает, проверь сам и напиши результаты...

Изменено пользователем Дмитрий Соснов
  • Спасибо (+1) 1

Поделиться сообщением


Ссылка на сообщение

@MeiCh 

“Потому что на данный момент я не вижу выхода, кроме как вводить каждое имя вручную в _substitutions и просто в тексте вместо имени писать {{A}}. Это работает, пока я встречаю персонажей, чьи имена перевел сам.”

не нужно писать в _substitutions просто создаёшь произвольный текстовый файл(бла бла.txt) и в нём переводишь:

Wake up, {{A}}!=Просыпайся сейчас же, {{A}}!

Essa Carerra=Эсса Карерра

как закончишь перевод переключи переводчик на Passthrough он генерирует текст без перевода.

пример:

Essa Carerra=Essa Carerra

можешь зайти в группу в дискорде и там вопрос задать.

 

 

 

  • Спасибо (+1) 2

Поделиться сообщением


Ссылка на сообщение

@Memoric @Дмитрий Соснов Спасибо за советы. Проверил на работоспособность.
Результаты не очень — строки с числами только в одном месте переводит при включенном TemplateAllNumberAway=True.

Типа Day {{A}}=День {{A}} работает, а например Day {{A}} / {{B}}=День {{A}} / {{B}} или Day {{{A}} / {{B}}}=День {{{A}} / {{B}}} уже не переведёт.

То же самое со стоимостью, например в строчке:
No, it's not worth ${{A}}.=Нет, это не стоит ${{A}}. Ничего не переведётся.

Идея с разделением имён и фамилий работает, но теперь только их и переводит) Весь остальной текст в строчке с ними остается на английском в режиме Passthrough, даже учитывая что перевод прописан в файле.
Хотя например в простой строчке ATTENTION: {{A}} {{B}}=ВНИМАНИЕ: {{A}} {{B}} имя и фамилию пишет корректно, но когда они используются в других местах строки, перевода нет.
А в некоторых вообще прописано только {{A}}, то есть должно писать только что-то одно, но оно пишет и имя, и фамилию.
Сами имена и фамилии в бла-бла.txt, где только они и есть, через {{A}} не вызываются, обязательно нужно в _substitutions их писать.


Так же появляются два вопроса, первое — в игре есть фамилия West и локация на карте West Block. Они друг с другом конфликтуют и на карте вместо “Западный блок” написано “Уэст Block”. Оно видимо берет самую короткую часть и переводит только её, не обращая внимание на полную строчку. Ещё есть например персонаж Brock Buster и предмет rock, он пишет имя как Вкамень Buster. Даже не смотря на то, что отдельно прописано Brock=Брок.

И второе, это то что я писал вчера — если игрок пропишет любое имя отсутствующее в игре, то все диалоги с ним вообще не будут переводиться.


Думаю разве что вообще убирать имя в строчках, где оно есть:
r:^"say to me, {{A}}?"=мне сказать {{A}}? — где {{A}} это имя.
Если его прописать как r:^"say to me, ?"=мне сказать?, то он выведет строчку без имени. Но в игре имя очень часто используется и не хотелось бы идти на подобные уступки, если честно.

Поспрашиваю ещё у людей в дискорде, но полагаю тут без ста грамм и какого-нибудь самописного плагина ничего не поделать и придется бросить это дело…

Поделиться сообщением


Ссылка на сообщение
В 23.09.2024 в 20:27, Memoric сказал:

@Kiprian 

Endpoint=0

а разьве не Passthrough надо писать, чтобы не переводил а брал из текстового файла перевода? 

Endpoint=Passthrough

FallbackEndpoint=Passthrough

Поделиться сообщением


Ссылка на сообщение

Автоперевод с помощью XUnity.AutoTranslator  игры Xenomarine.

Переводится  с помощью XUnity.AutoTranslator-ReiPatcher https://github.com/bbepis/XUnity.AutoTranslator  так как MelonLoader и BepInEx почему то не работают…

Но перевод почему то не полный, особенно это касается всплывающих окон при открытии контейнеров и терминалов, там переводит зачастую не всё почему то, да и вообще с глюками … 

Настройки изменял в Config.ini который находится в папке игры AutoTranslator: 

[Service]
Endpoint=DeepLTranslate
FallbackEndpoint=GoogleTranslateCompat

[Behaviour]

MaxCharactersPerTranslation=2000

TemplateAllNumberAway=True
ReloadTranslationsOnFileChange=True

правда DeepLTranslate частенько отваливается…

 

Изменено пользователем Дмитрий Соснов

Поделиться сообщением


Ссылка на сообщение

Здраствуйте, помогите мне решить ошибку. Пытаюсь подключить  Reverse: 1999 (ссылка на игру) к автопереводчику, игра на il2cpp, но при запуске с установленным MelonMod, запускается только консоль с ошибкой Failed to find module "UnityPlayer.dll". Поискав решения этой ошибки, я его так и не нашел.

Изменено пользователем DarkPaladin

Поделиться сообщением


Ссылка на сообщение
15 часов назад, DarkPaladin сказал:

Здраствуйте, помогите мне решить ошибку. Пытаюсь подключить  Reverse: 1999 (ссылка на игру) к автопереводчику, игра на il2cpp, но при запуске с установленным MelonMod, запускается только консоль с ошибкой Failed to find module "UnityPlayer.dll". Поискав решения этой ошибки, я его так и не нашел.

а кроме Melon вы другие загрузчики не пробовали использовать?

Поделиться сообщением


Ссылка на сообщение
54 минуты назад, Дмитрий Соснов сказал:

а кроме Melon вы другие загрузчики не пробовали использовать?

Нет, а есть другие способы? Просто в гайде этой темы, увидел только два способа. Обычный (XUnity.AutoTranslator-BepIn), при котором игра запускается, но не создает файлы перевода. И Melon (XUnity.AutoTranslator-MelonMod-IL2CPP), при котором игра не запускается. Если не сложно, можете объяснить, или дать ссылку про объяснение других способов?

Поделиться сообщением


Ссылка на сообщение

Игра Reverse: 1999 (то же самое с игрой Punishing Gray Raven)

И Melon, и BepInEx выдают одни и те же ошибки с метадатой. через BepInEx ошибки Failed to find module "UnityPlayer.dll" нет.

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

[11:34:40.994] ------------------------------
[11:34:41.024] MelonLoader v0.6.5 Open-Beta
[11:34:41.025] OS: Windows 11
[11:34:41.025] Hash Code: ECEE59E98250B37FBAD36ACD622C0C177FB65E478F6B3EE58F58366B6557DF70
[11:34:41.025] ------------------------------
[11:34:41.026] Game Type: Il2cpp
[11:34:41.026] Game Arch: x64
[11:34:41.026] ------------------------------
[11:34:41.026] Command-Line: C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\reverse1999.exe
[11:34:41.026] ------------------------------
[11:34:41.026] Core::BasePath = C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999
[11:34:41.027] Game::BasePath = C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999
[11:34:41.027] Game::DataPath = C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\reverse1999_Data
[11:34:41.027] Game::ApplicationPath = C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\reverse1999.exe
[11:34:41.027] Runtime Type: net6
[11:34:41.104] ------------------------------
[11:34:41.104] Game Name: Reverse: 1999
[11:34:41.104] Game Developer: bluepoch
[11:34:41.106] Unity Version: 2019.4.40f1
[11:34:41.106] Game Version: 1.9.0
[11:34:41.106] ------------------------------

[11:34:41.893] Preferences Loaded!

[11:34:41.955] Loading UserLibs from 'C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\UserLibs'...
[11:34:41.957] ------------------------------
[11:34:41.963] Melon Assembly loaded: '.\UserLibs\ExIni.dll'
[11:34:41.963] SHA256 Hash: 'C073DB2220667E6BBBFFF64E13ED4F7E744AF4B554C408F13EA80BFDFFD859D0'
[11:34:41.973] Melon Assembly loaded: '.\UserLibs\XUnity.AutoTranslator.Plugin.Core.dll'
[11:34:41.973] SHA256 Hash: '1D1267102DCE8B3450724C9F7A526E03684B249D38B88615F0E4F674D6D43475'
[11:34:41.975] Melon Assembly loaded: '.\UserLibs\XUnity.AutoTranslator.Plugin.ExtProtocol.dll'
[11:34:41.975] SHA256 Hash: 'E6EE192857DB3A9B813F730479FFB716EFF60379D6C346E7155FC96B29FF325D'
[11:34:41.978] Melon Assembly loaded: '.\UserLibs\XUnity.Common.dll'
[11:34:41.978] SHA256 Hash: '45F2B2313368F79A7490811DF2A9BCECFC84D3089638E15B7E8236CC25496CEF'
[11:34:41.983] Melon Assembly loaded: '.\UserLibs\XUnity.ResourceRedirector.dll'
[11:34:41.984] SHA256 Hash: 'EDB2EC9ACEB514E1FC34BC89D3D5050F04B4820A395200BD3713EE3F9D64CC99'

[11:34:41.991] Loading Plugins from 'C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\Plugins'...
[11:34:41.993] 0 Plugins loaded.
[11:34:42.283] [MelonStartScreen] Initializing...
[11:34:42.303] [MelonStartScreen] Using Start Screen Theme: "Default"
[11:34:42.346] [MelonStartScreen] Failed to find module "UnityPlayer.dll"
[11:34:42.355] Loading Il2CppAssemblyGenerator...
[11:34:42.366] [Il2CppAssemblyGenerator] Contacting RemoteAPI...
[11:35:03.940] [Il2CppAssemblyGenerator] Game Not Found on RemoteAPI Host (https://api.melonloader.com/api/v1/game/reverse-1999)
[11:35:03.941] [Il2CppAssemblyGenerator] RemoteAPI.DumperVersion = null
[11:35:03.941] [Il2CppAssemblyGenerator] RemoteAPI.ObfuscationRegex = null
[11:35:03.942] [Il2CppAssemblyGenerator] RemoteAPI.MappingURL = null
[11:35:03.942] [Il2CppAssemblyGenerator] RemoteAPI.MappingFileSHA512 = null
[11:35:03.956] [Il2CppAssemblyGenerator] Using Cpp2IL Version: 2022.1.0-pre-release.18
[11:35:03.956] [Il2CppAssemblyGenerator] Using Il2CppInterop Version = 1.4.6-ci.545+3da49636029e18c88fe93901a893499a2d779805
[11:35:03.957] [Il2CppAssemblyGenerator] Using Unity Dependencies Version = 2019.4.40
[11:35:03.957] [Il2CppAssemblyGenerator] Using Deobfuscation Regex = null
[11:35:03.958] [Il2CppAssemblyGenerator] Downloading Cpp2IL...
[11:35:03.958] [Il2CppAssemblyGenerator] Downloading https://github.com/SamboyCoding/Cpp2IL/releases/download/2022.1.0-pre-release.18/Cpp2IL-2022.1.0-pre-release.18-Windows.exe to C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL\Cpp2IL.exe
[11:35:06.286] [Il2CppAssemblyGenerator] Processing Cpp2IL...
[11:35:06.296] [Il2CppAssemblyGenerator] Downloading UnityDependencies...
[11:35:06.296] [Il2CppAssemblyGenerator] Downloading https://github.com/LavaGang/Unity-Runtime-Libraries/raw/master/2019.4.40.zip to C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\UnityDependencies_2019.4.40.zip
[11:35:07.541] [Il2CppAssemblyGenerator] Processing UnityDependencies...
[11:35:07.541] [Il2CppAssemblyGenerator] Creating Directory C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\UnityDependencies
[11:35:07.542] [Il2CppAssemblyGenerator] Extracting C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\UnityDependencies_2019.4.40.zip to C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\UnityDependencies
[11:35:07.588] [Il2CppAssemblyGenerator] Checking GameAssembly...
[11:35:07.720] [Il2CppAssemblyGenerator] Assembly Generation Needed!
[11:35:07.731] [Il2CppAssemblyGenerator] Executing Cpp2IL...
[11:35:07.732] [Il2CppAssemblyGenerator] "C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL\Cpp2IL.exe" —game-path "C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999" —exe-name "reverse1999" —output-as dummydll —use-processor attributeanalyzer attributeinjector
[11:35:07.768] TODO: SetProcessId(28228)
[11:35:07.850] [Il2CppAssemblyGenerator] ===Cpp2IL by Samboy063===
[11:35:07.850] [Il2CppAssemblyGenerator] A Tool to Reverse Unity's "il2cpp" Build Process.
[11:35:07.856] [Il2CppAssemblyGenerator] Version 2022.1.0-pre-release.18+11302ac0c7cece04fc435d9a32fc94292a573d56
[11:35:07.857] [Il2CppAssemblyGenerator] 
[11:35:07.873] [Il2CppAssemblyGenerator] [Warn] [Program] NO_COLOR set, disabling ANSI color codes as you requested.
[11:35:07.879] [Il2CppAssemblyGenerator] [Info] [Program] Running on Win32NT
[11:35:07.994] [Il2CppAssemblyGenerator] [Info] [Plugins] Loading plugins from C:\Program Files (x86)\Steam\steamapps\common\Reverse 1999\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL\Plugins...
[11:35:08.037] [Il2CppAssemblyGenerator] [Info] [Plugins] Using Plugin: Cpp2IL Built-In
[11:35:08.099] [Il2CppAssemblyGenerator] [Info] [Program] Determined game's unity version to be 2019.4.40a0
[11:35:08.144] [Il2CppAssemblyGenerator] [Info] [Library] Initializing Metadata...
[11:35:08.197] [Il2CppAssemblyGenerator] [Fail] [Program] 
[11:35:08.198] [Il2CppAssemblyGenerator] 
[11:35:08.198] [Il2CppAssemblyGenerator] Cpp2IL.Core.Exceptions.LibCpp2ILInitializationException: Fatal Exception initializing LibCpp2IL!
[11:35:08.199] [Il2CppAssemblyGenerator]  ---> System.FormatException: Invalid or corrupt metadata (magic number check failed)
[11:35:08.199] [Il2CppAssemblyGenerator]    at LibCpp2IL.Metadata.Il2CppMetadata.ReadFrom(Byte[], UnityVersion) in C:\Users\Sam\RiderProjects\Cpp2IL\LibCpp2IL\Metadata\Il2CppMetadata.cs:line 65
[11:35:08.199] [Il2CppAssemblyGenerator]    at LibCpp2IL.LibCpp2IlMain.Initialize(Byte[], Byte[], UnityVersion) in C:\Users\Sam\RiderProjects\Cpp2IL\LibCpp2IL\LibCpp2IlMain.cs:line 155
[11:35:08.200] [Il2CppAssemblyGenerator]    at LibCpp2IL.LibCpp2IlMain.LoadFromFile(String, String, UnityVersion) in C:\Users\Sam\RiderProjects\Cpp2IL\LibCpp2IL\LibCpp2IlMain.cs:line 208
[11:35:08.200] [Il2CppAssemblyGenerator]    at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String, String, UnityVersion, Boolean ) in C:\Users\Sam\RiderProjects\Cpp2IL\Cpp2IL.Core\Cpp2IlApi.cs:line 66
[11:35:08.200] [Il2CppAssemblyGenerator]    --- End of inner exception stack trace ---
[11:35:08.201] [Il2CppAssemblyGenerator]    at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String, String, UnityVersion, Boolean ) in C:\Users\Sam\RiderProjects\Cpp2IL\Cpp2IL.Core\Cpp2IlApi.cs:line 72
[11:35:08.201] [Il2CppAssemblyGenerator]    at Cpp2IL.Program.MainWithArgs(Cpp2IlRuntimeArgs runtimeArgs) in C:\Users\Sam\RiderProjects\Cpp2IL\Cpp2IL\Program.cs:line 587
[11:35:08.202] [Il2CppAssemblyGenerator]    at Cpp2IL.Program.Main(String[] args) in C:\Users\Sam\RiderProjects\Cpp2IL\Cpp2IL\Program.cs:line 525
[11:35:08.202] [Il2CppAssemblyGenerator] 
[11:35:08.202] [Il2CppAssemblyGenerator] Waiting for you to press enter - feel free to copy the error...
 

 

Поделиться сообщением


Ссылка на сообщение

Ребят, кто-то пробовал перевести Vox Machinae? Это игра с il2cpp_data. Никак не хочет создавать папку config и AutoTranslatorConfig.ini в ней. Пробовал и BepIn и ReiPatcher и Melon Melon что-то даже делает: показывает окно с процессом патчинга, патчит файлы, но ни папку, ни файл конфига так и не создает. 

Поделиться сообщением


Ссылка на сообщение
21 минуту назад, Sofia2024 сказал:

Что не так, если отказывается читать шрифт? 

Как вариант,  поменяйте  шрифт  или включите EnableIMGUI=True 

Изменено пользователем parabelum

Поделиться сообщением


Ссылка на сообщение

Доброго времени суток, в общем такой вопрос, перевожу игру Tale of Wuxia и есть пара проблем, во первый игра воспринимает только Deepl на другие переводчики не реагирует, во вторых мгновенный, именно мгновенный перевод избирательный, то есть к примеру при начале игры есть сцена с диалогом, текст выдается в окошках и переводчик его переводит только постфактум, а не мгновенно, то есть если я выйду из игры и начну опять новую игру, то диалог будет переведен, но в игре есть также другие диалоги в других окошках и он их переводит мгновенно и я никак не могу понять в чем дело, подскажите в чем может быть проблема, если что кириллицу игра воспринимает 

Поделиться сообщением


Ссылка на сообщение

Скажите народ, с помощью этой программы можно перевести игру “The Alliance Alive HD Remastered” ? Просто не знаю на каком движке игра сделана.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Продвигаемые темы

  • Последние сообщения

    • Посмотрел проект, Ink файлов там 70 штук, через https://github.com/yole/inkdc и его доработку удалось экспортировать текст. В целом потом обратный патч Ink файлов через gdre работает корректно. Займусь переводом, игра выглядит интересно.
    • У нас перебоев с электричеством нет  Если только ужин при свечах 
    • @SerGEAnt там русификатор в 25 году обновлялся, в архиве старая версия.
    • хороший канделябр никогда не подведёт 
    • Перевёл на русский язык с использованием нейросети + адаптировал шрифты для корректного отображения кириллицы. Совместимая версия: steam билд 23043813 v. 1.0.2 от 1 мая 2026 года. Лучше не ставьте на другую версию игры во избежании проблем. Русификатор сломается если игра обновится. Лучше не ставьте на другую версию игры во избежании проблем. Русификатор сломается если игра обновится. Скачать: Boosty Установка: 1. Распакуйте архив. 2. Cкопируйте папку «Ariana and the Elder Codex_Data». 3. Откройте Steam → нажмите на шестерёнку (Настройки) → Управление → Показать локальные файлы. 4. Вставьте её в основную папку игры. 5. При запросе на замену файлов нажмите «Да».   Также на бусти есть видеодемонстрация    
    • в это то и прокол что там нету этой строчки
    • Скажу больше: коварные поставщики энергии могут заставлять лампочки мерцать тоже (нестабильным напряжением). А уж эти коварные электрики, которые делали не менее коварную проводку — это и вовсе отдельная песня.
    • Это самые дешёвые или подделки, где на схемотехнике существенно сэкономили.
    • Хотелось бы рассказать, как именно я делаю свою нейроозвучку и почему даже небольшая игра может занять сотни часов ручного кропотливого труда. Многие считают, что нейроозвучка делается за несколько нажатий кнопки. На практике это не так. Ниже я описываю свой собственный рабочий процесс. Я не утверждаю, что все авторы работают именно так — это лишь тот подход, которого придерживаюсь я. Всё начинается с распаковки ресурсов игры. Определяется движок игры, находятся инструменты для его вскрытия и распаковки, проходит серия экспериментов для того чтобы оценить, “а смогу ли я потом запаковать всё обратно”. Это самый легкий этап занимающий от одного дня до недели в зависимости от сложности. Допустим, я распаковал, вытащил аудиофайлы. Далее мне нужно просеять 15—20 тысяч аудиофайлов, чтобы найти среди них только те, которые содержат реплики персонажей. Я тут не полагаюсь на автоматизацию, и методом выборочной проверки прохожусь по всем папкам с аудио в ручную отслушивая сотни треков. Это еще +1 день или около того. Теперь, имея аудио с четкой структурой, мне нужно вытащить субтитры и как-то связать отдельную строчку субтитров с каждым отдельным аудиофайлом. Вот тут начинаются сложности, так-как это возможно сделать далеко не всегда. Есть два типа файлов: В которых я легко могу вытащить субтитры; В которых я не могу установить четкую связь “файл-субтитры”. В случаях, когда это сделать невозможно, прогоняю такие аудио через модель, которая распознает текст с высокой долей точности даже для зашумленных звуков. Что я получаю в итоге? Набор строчек где каждый конкретный файл связан с его текстом на английском языке. Далее я должен в ручную прослушать все аудио (тысячи реплик) чтобы понять, соответствует ли то, что там распознано нейронкой тому, что на само деле звучит на записи. Убедившись, что английский текст соответствует, произвожу нейронный перевод на русский язык, и… опять в ручном режиме проверяю, чтобы все было переведено нормально, и соответствовало тому, что говорится на аудио. Сразу же отсеиваются все тексты, которые нейронка перевела “от балды”, т.е. не соответствующие смыслу и стилю оригинала. На этом этапе я уже два раза обработал тексты и аудио! И так, я имею на руках проверенные пары из английский/русский тексты + аудио. Приступаю к генерации! Прогоняю через 2 нейронки все аудио, а то, что получилось, сначала подгоняю под длительность оригинала, а потом вместе с текстами запихиваю в самописное ПО для ручного озвучивания, где я могу в ручную генерировать то, что мне нужно для любой реплики, если мне что-то не нравится. И тут начинается самый сложный этап! Я прослушиваю тысячи реплик в ручном режиме, очень внимательно (и сгенрированные, и оригинал на английском): Если вижу, что аудио по эмоциям прям сильно уступает оригиналу, то я его генерирую заново; Нейросеть не всегда правильно ставит ударения или выбирает нужную форму слова. Например, вместо "замОк" может прозвучать "зАмок". Такие ошибки приходится отлавливать вручную, потому что автоматически определить их практически невозможно, то есть такое аудио я генерирую заново; Если вижу, что интонации совсем неестественные —  генерирую заново; Если вижу, что реплика очень ускорена (после подгонки под оригинал), то провожу укладку текста, то есть изменяю реплику так, чтобы она сохранила дух и стиль оригинала, но стала короче настолько, чтобы с приемлемой скоростью поместится в тайминги длительности оригинала, и… —  генерирую заново; Если реплика сильно короче получилась чем оригинал, то опять же провожу укладку текста, то есть делаю текст таким, чтобы реплика не была растянута очень неестественно, и персонаж не говорил как пьяный (либо если оставить естественны темп, то реплика прозвучит, а персонаж будет беззвучно хлопать ртом — некрасиво), и далее генерирую заново. Если я обнаруживаю сложное аудио, которое содержит охи/вздохи/крики/смех/свист или любые дополнительные эффекты, то я сначала генерирую нужную реплику, а потом открываю в аудиоредакторе такой файл и с помощью ручного звукомонтажа монтирую аудиодорожку так, чтобы эффекты органично легли на русское аудио. Если что-то не выходит, то все отправляется в помойку и начинаю работу над этим аудио заново. Если попадается аудио, где на одной аудиодорожке разные персонажи, да еще и с эффектами, то приходится вначале отделять прочие звуки от вокала (голоса человека), затем нарезать голос по персонажам прослушивая все внимательно чтобы не там не обрезать случайно, затем генерирую каждую реплику отдельно по правилам изложенным выше, а потом собираю все в одну аудиодорожку в правильном порядке, и в правильные места вставляю все аудио, чтобы каждый голос звучал в свое время, и накладываю снова эффекты (звук мотора, шелест ветра и т.д.). Это самая сложная аудиодорожка в игре, их могут быть сотни, а на работу с одной уходит от десятков минут, до нескольких часов в зависимости от длительности и сложности. Количество генераций одной реплики из примерно в среднем 5-8 тысяч реплик может достигать 10, 20, и даже более! Нередко на то, чтобы получить приемлемое качество одной реплики, уходят десятки минут, и это только одна реплика. На обработку всех файлов уходят месяцы, и это при ежедневной затрате труда в 5-6 часов, почти как на работе. Когда все же наконец предыдущий сложный этап подходит к концу, все аудио снова проходят микро подгонку к оригиналу по длительности, чтобы не было обрывов/щелчков в игре, и интегрируются в игровые архивы. Игра полностью самостоятельно проходится от начала до конца (тут я работаю уже тестером), выцепляются мелкие оставшиеся ошибки, и исправляются, озвучка “шлифуется”. Да, прохожу один раз, не все ветки диалогов вижу, но так я 70-80% оставшихся ошибок зацепляю. Игра после всех манипуляций выкладывается на суд общественности. Это краткая версия моих действий. На деле все еще сложнее. И это я еще не упомянул о том, что для всего этого нужны десятки отлаженных инструментов, которых нет в свободном доступе, и их пришлось создавать с нуля. Повторюсь, я не знаю как там делают другие, да и мне все равно, я делаю именно так  и могу отвечать только за свой рабочий процесс. Я не люблю халтуру, поэтому стараюсь как для себя, хотя я ведь и правда делаю для себя те игры, которые хочу пройти сам, и не беру ни с кого никакого доната, ни копейки. Все бесплатно! Самая большая часть времени уходит не на генерацию, а на принятие решений человеком. Проверить перевод, оценить эмоции, подобрать интонацию, адаптировать текст под тайминг, смонтировать сложные реплики, пройти игру целиком и исправить найденные ошибки — все это невозможно автоматизировать одним нажатием кнопки. Именно поэтому работа над одной игрой занимает сотни часов. Моя цель — не заменить профессиональную студию, а создать качественную любительскую озвучку, с которой самому приятно пройти игру. Поэтому при работе приходится искать разумный компромисс между качеством и временем производства. Если бы я шлифовал озвучку ища “ту самую идеальную интонацию”, то это растянулось бы на годы, и озвучка скорее всего не вышла бы никогда. Тут важен компромисс между качеством, и трудозатратами. Надеюсь, вам было интересно заглянуть за кулисы казалось бы такого простого действия, как создание нейроозвучки. Я постарался объяснить простыми словами на самом деле далеко не простой процесс.
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
    • serfly  »  SamhainGhost

      Доброго времени. По локализации игры Wicked Seed. Шрифт размазан и в полях, другие можно попробовать? Например arialuni_sdf_2022? Я профан в этом, но интересно.
       
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
  • Лучшие авторы


×