ESO文本查询编辑器 – 使用说明

工具如有BUG或功能逻辑问题和需求等不到位的情况请及时提出,我会根据需求尽量调整,版本更新请关注群内。本工具已经开源,使用C# .net framework 4.8与WPF构建。源代码及Release(github发布版本可能不如群内及时)请关注我的Github: https://github.com/bevisbear/ESO_LangEditor

目前本工具不支持异步功能,所有读写操作均会将当前窗口卡死失去响应(卡死时长视文件大小及功能复杂度),但请勿强行结束进程,耐心等待执行即可。完成后会弹出消息对话框来提示执行已完成。

主界面

搜索框内输入要查询的文本,对于长文本比如对话、书信等建议截取一小段内容搜索来提升搜索效率。

随后的下拉菜单可以选择文本出现的位置,包含全文即不限于文本出现的位置;仅包含开头和仅包含结尾如字面意思,仅限文本出现在开头或结尾。

文本可以输入文本ID(进阶),按英文搜索和按汉化文本搜索。以上选项默认设置如图。

搜索废弃内容可以查找已经从游戏内删除的文本。搜索UI STR内容即进入翻译UI模式。

小技巧:搜索框为当前焦点时可直接按回车搜索。

搜索到文本后即会显示到中间的数据区域,搜索到的数据可以按住ctrl来选择多个要编辑的内容。双击当前行直接打开文本编辑窗口,如已选择多条文本,单击右键可启用多条文本编辑,此时的文本编辑窗口会出现要编辑的文本列表。

文本编辑窗口

目前仅能编辑译文区域,翻译标准及规则请查阅相应翻译准则文档。相应保留的变量和参数代码需要按原文格式保留。如果有多选,窗口右边会出现列表,单击即可选择对应文本。点击保存后会将当前译文框内的文本保存到数据库中且关闭当前编辑框(如果为单条文本)。主界面的列表不会即时更新翻译后的译文,如需查看需要重新搜索当前文本。
如为列表内的文本,点击保存后会保存到数据库中并移出当前待编辑列表。

导入(菜单)

导入翻译文本:
打包合并人员拿到译者和校对导出的文本后,打开导入翻译窗口,点击浏览按钮即可弹出选择文件框,可以多选翻译文件。选择后的翻译文件列表在左侧的列表框,翻译文件的内容条目在右侧的数据网格内,选择当前文件后按导入即可。

CSV与数据库对比:
游戏版本更新后,用工具提取出文本文件,选择新的en.csv文件即可。比较新增、比较修改可对比数据库内的文本,应用新的内容。之后点击保存按钮即可。比较新增和比较修改需要分开对比导入,无法一键导入。且读取和对比期间有较高的内存占用。

Lua与数据库对比:
核心内容同上,只是本功能是对比UI STR内容。

导出(菜单)

导出已翻译内容:
翻译后内的文本使用此选项导出,会在目录下生成一个Export文件夹,同时创建一个Translate开头的.db文件,4位数字为随机,确认翻译好后按导出按钮即可,弹出的对话框内会提示将哪个文件发给校对及导入人员。暂不支持单独选择某些文本导出。

导出至转换文本:
仅限打包人员使用此功能。点击后会弹出提示,大概需要等5秒~10秒后会在目录下生成ID.txt、Text.txt文件。可使用高级菜单内的导出至.lang功能一键打包。

导出UI STR内容:
将UI数据库的内容导出为UI所用的.str文件,文件名根据数据库名而来。

导出ID文本:
意识混乱时开发的迷之功能,将来会取消。

高级(菜单)

导出文本至.lang
将导出的转换文本打包成.lang文件。 使用EsoExtractData工具完成。

esoextractdata -x Text.txt -i ID.txt -t -o newfile_chs.lang

简体转换至繁体:
使用opencc组件将文本内容一键转换至繁体,大概需要10多秒。然后生成_tmp/Text_cht.txt文件。

创建数据库:
仅限了解ESO翻译文件人员使用。选择英文和汉化文本的.csv文件按导入并创建按钮即可,读取和匹配并写入创建数据库的耗时较长,可能依照电脑配置不同可能需要等待1~3分钟并且期间有较高的IO及内存占用(500MB~800MB)。创建后的数据库位置和文件为Data/CsvData.db

创建UI STR数据库:
核心功能同上,但区别是将文本根据Pregame和Client文件储存在不同的表内。创建后的数据库位置和文件为Data/UI_Str.db

数据库编辑:
给数据库内增加字段用,仅支持Int类型(纯数字)和Text类型(文本)。初始内容不可为空。

工作流程

(译者)获取到需要翻译的内容–>使用本工具查询并编辑–>使用导出已翻译内容功能–>将导出的翻译文件发给校对或打包人员。

(打包)收到翻译文件–>使用导入翻译文本功能–>导入至数据库。

(发布)确认本次版本的翻译内容都已就绪–>使用导出至转换文本功能–>使用上述的 EsoExtractData工具打包命令示例命令来生成.lang文件。

ESO 上古卷轴OL 本地化文件提取拆分

起源于游戏5.1.5版本的更新,微攻略汉化迟迟不出兼容,折腾了几天,终于有点头绪并且导入游戏成功了。走了几天的弯路,被微攻略自己发布的开源工具误导进坑,其实如果只是简单地导入新增文本,完全用不到那个工具。而且我这边勉强搭建好环境也无法成功运行脚本,总之非常迷……

必备工具:EsoExtractData,其它文本编辑器,除非使用拆分功能,否则不建议用使用Excel编辑(内存爆炸警告)。

使用资源提取器提取The Elder Scrolls Online\depot\eso.mnf 文件,提取的时候注意命令行窗口的输出,在本地化文件提取完毕,到提取.gr2文件时就可以关闭了。然后到Depot目录下找export\gamedata\lang目录,复制en.lang文件到提取器所在目录。(不建议在游戏内目录操作提取和修改动作)

将汉化文件zh.lang同样复制到提取器所在目录,用cmd进入提取器目录运行。(大佬熟悉的话也可以写.bat来一键运行)

使用

esoextractdata -d zh.lang en.lang

提取出三个对比文件,en.lang.added.csv、en.lang.changed.csv、en.lang.removed.csv。其中 en.lang.added.csv 为当前版本新增的本地化文本。然后用文本编辑器将 en.lang.added.csv 的内容复制到zh.lang.csv内即可。
如果没有生成zh.lang.csv文件,可以使用

esoextractdata -l zh.lang

来转换汉化文件到.csv方便编辑。确定复制无误或是翻译了内容后,使用

esoextractdata -x zh.lang.csv

把可编辑的zh.lang.csv汉化文件转换到游戏识别的zh.lang文件。然后将转换后的文件复制到汉化插件的AddOns\gamedata\lang目录,启动游戏即可,如果游戏正在运行需要关闭游戏再开启才会生效。汉化文件为游戏启动时加载,且重载界面/reload命令是不会影响到汉化文件的重新读取。

UE4敌人AI,Roll点数特别好用

之前一篇博文讲了AI的一些基本思路,后来又看了一些关于AI的教程,文档和神秘代码之后,发现最适合自己的还是那个思路。毕竟UE4的路很多,选择自己顺手的才是最适合的。

经过一些修改之后,AI控制器蓝图我已经基本不用了,由敌人的父级蓝图来进行一些关于AI控制器的数值传递与一些初始化工作。整个AI最核心的部分就是行为树和第一个选择器上的行为树服务蓝图,这个思路依旧不变。不过随着黑板键值越来越多之后,需要公开变量也越来越多,这是一个待解决问题。

眼尖的你可能已经发现了,选择器上有一个前置条件就是在不为闲置的时候运行行为树,这个主要作用就是在AI之间对打胜利之后清除仇恨。由于目前还没做队友AI的相关内容,所以加了这一条件。

这是目前行为树服务蓝图的内容。主要是根据与目标距离来选择部分攻击。让玩家在各个距离段都感受到压力才是我的目标。当然,AI一直攻击没完没了,缺少平衡是绝对没什么乐趣可言的。在之前的博文中我也有截图,利用欲望点来控制AI的攻击频率。

 同时利用CompareInt节点,让欲望点也可以控制AI的行动,来决定普通攻击或者是重击等行为。CompareInt节点非常方便,可以让AI的行动进一步随机化。

在后来我又增加了“行动点”变量来进一步控制AI的攻击频率,在每次攻击之后都会消耗“行动点”来防止AI连续攻击过多。不过不建议把行动点设置太高,会让AI看起来略微奇怪。

(来自Youtube,需要翻墙)

之前说的坑:

清除黑板键值这件事已经不干了,这是个错误的方向。行为树节点Decorator里的Flow Control不要随便设置即可,尤其是中止设置,除非你清楚这到底是干什么的,否则不要去动这个选项。