0x00.对象
本次汉化的对是基于魔兽争霸3重制版制作的魔兽争霸2黑暗之潮战役,该战役由Tamplier777等人发布在蜂房。
0x01.安装
使用天下正义制作的淬火mod完成该战役mod的安装。
安装完成后打开魔兽争霸3重制版根目录定位战役文件。
X:\Warcraft III\_retail_\Campaign\Custom9
目录下的c0~c4分别为战役4个章节的对印文件。
0x02.w3x文件分析
使用HkeW3mModifier(俗称火龙,以下简称火龙)打开w3x文件。
操作顺序“打开地→分析文件”,通过 filelist.txt(该文件位于火龙根目录下HkeData文件夹内) 获取w3x文件内文件结构。
w3x其本质为mpq文件,mpq文件是一种压缩文件,mpq文件通过内部自带的filelist来进行文件读取,如果mpq文件内没有filelist,那么便无法读取到mpq的内部文件,简言之就是如果mpq文件内的filelist被删除,那么我们便不知道mpq到底压缩了哪些文件。
filelist通过各种手段进行隐藏或修改,而且不同地图作者导入地图的路径各不相同,所以对filelist文件进行删除或加密是一种常见的mpq文件加密方式。
本次汉化的第一章文件c1.w3x内部包含的filelist仅有部分地图数据,如.wts等文件,其余的素材路径均不可见,常见的文件类型及其功能对印如下:
war3map.wts | 字符串,所有外文文本的原始存放位置 |
war3map.j | jass数据库,剧情、任务文本(在根目录下或在/scrtips目录下) |
war3map.w3u | 单位名字,描述等 |
war3map.w3t | 物品名字,描述等 |
war3map.w3a | 技能名字,描述、学习提示等 |
war3map.w3h | 魔法特效名字,描述等 |
war3map.w3q | 升级名字,描述等 |
war3map.w3b | 可破坏物的名字,描述等。如:箱子 |
war3map.w3d | 装饰物的名字,描述等。如:民房 |
war3map.w3i | 地图信息,基本介绍 |
war3mapSkin.txt | 界面,系统提示信息 |
本次汉化中,大量的任务文本在.wts文件中,使用ultraEdit打开wts文件,如旁白字幕,人物对话,物品介绍,提示等。常见的例如:
string 595 | 第595个字符串 |
unit | 该字符串用于单位 |
ubertip | 鼠标悬浮扩展提示内容,{}符号内就是扩展内容 |
description | 描述 |
tip | 提示,将鼠标放在物品上,显示的名字 |
|n | 换行 |
|c????????|r | 表示该字符串使用的颜色 |
Buffs/Effects: | buff或者效果 |
部分触发类的对话文本存在于.j文件中,常见的对印关系例如:
DisplayTimedTextToForce | 给所有玩家的屏幕文字(指定计时) |
CreateTextTagLocBJ | 地形的漂浮文字 |
DisplayTextToForce | 给单个玩家的屏幕文字(自动计时) |
CreateTextTagUnitBJ | 单位的漂浮文字 |
DialogSetMessageBJ | 菜单文字 |
CreateQuestBJ | F9文本 |
Multiboard | 右上角多面板文字 |
SetDialogueTextKey | 设置对话内容 |
将wts和j文件完成汉化后,还有少量文本存在于war3mapskin.txt文件中,补充翻译完即可。
0x03.载入背景修改
魔兽争霸地图载入通常为mdx模型,模型作为素材,其路径在filelist中通常被删除,本次汉化也不例外,通过上面的对印列表可知,地图信息通常在w3i文件中,使用ultraEdit打开w3i文件,发现:
其中,每个trigStr均代表地图在载入过程中调用的触发器,通过wts文件发现这些触发器分别代表了作者的名字,而UI/GLUES…..mdx这个路径则代表了载入背景的模型。
我们将这一串路径复制到火龙的filelist的中,重新使用火龙解析w3x文件,并没有发现该文件的存在,说明该路径有误,我们重新查阅wts和j文件中部分触发器和功能对素材资源的调用,发现大量贴图和模型文件的路径均省略了根目录的全局变量,该变量为_hd.w3mod。
将该路径添加到UI/GLUES前,重新添加到filelist中,解析w3x文件,成功获得载入背景的mdx文件,然而该mdx文件预览后什么也没有,且文件大小2kb,说明其中并没有模型文件。
将获得的mdx文件用ultraEdit打开,发现其中包含了一张dds文件路径,该dds文件才有可能是载入背景的图片,同样其路径有省略,添加全局变量_hd.w3mod后使用火龙重新解析文件,获得该dds文件。
前往Photoshop的dds插件下载地址下载对应的dds插件,即可用PS编辑dds文件,编辑完成后使用火龙替换进w3x文件即可完成载入背景的汉化。