因为AOS引擎处理文本会根据文本内的日文标点符号进行判断,所以常规的引擎汉化方式需要研究文本的处理逻辑,工作量很大,于是使用hook技术进行动态替换会更加靠谱,而且不会乱码。就比如DarkBlue的汉化补丁经常出现错误弹窗、文本乱码、文本错位,这都是程序在汉化过程中没有处理好。另外DarkBlue确实有大段的文本没有汉化,所以程序只是问题的一部分。
我主要是为了方便自己玩机翻游戏写的插件,顺便学习一下inline hook技术的实现,代码和教程都上传到了Github上:https://github.com/ssynn/HOOK_Lilim
代码并不复杂,有问题自己尝试解决,我自己测试支持的游戏有:
-
[120629][LiLiM DARKNESS]WEDDING BLUE
-
[141219] [LiLiM] 螺旋遡行のディストピア -The infinite set of alternative version
3. [171222] [LiLiM] 戯ィ牙 ~ファンリューゲ†クリフォト~ (iso+mds+rr3)
4. [190628][LiLiM DARKNESS]WhiteBlue
5. [200131] [LiLiM] 風雷戦姫 神夢 パッケージ版 (iso+mds+rr3)
注意!
这个补丁并不是放进去就能把文本变成中文,要自己想办法把字典翻译
暂不支持AOS1,比如DarkBlue。而Lilim社12年以后的游戏应该都可以用
下面是使用教程
使用方法
- 把bin文件夹内的三个文件放入游戏目录
- 修改hook.ini文件内EXE字段为游戏启动exe
- 把生成的翻译字典放入文件夹内
字典生成方式
- 使用GARBro把游戏目录scr.aos拆包
- 安装Python3环境
- 使用scr内python脚本的extract_for_hook_aos2提取文本并生成翻译字典
- 翻译字典(左侧为日文,右侧填中文)注意格式
- output_hook_dict 生成供汉化插件使用的汉化字典
注意
- 仅支持AOS2
- 字典内不能出现除 \n \f [ ] 以外的任何半角字符,可以使用 fix_dict 把半角转换为全角字符
- 提取文本后记得检查,删除字典内不该提取的文本
- 部分代码参考(复制)Textractor
- 可能会报毒,反正代码给了大不了自己编译,我没用第三方c++库直接丢vs2019里编译就行了
效果预览
文本
选择支
网友评论