srd文件汉化
Warning
请使用十六进制编辑器来编辑,VSCode
可以用来看内容,但不能用来编辑,以及编码改成UTF-8
。此处使用wxMEdit
来做示例。
Note
从LMNP
开始,sega将原本与srd配合的头文件整没了,因此直接用国服的srd文件可能会导致一些问题,不过不知道要是有头文件在的话游戏会读吗)
VERSE
后头文件已绝赞回归
我个人汉化的文件如下(以VERSE
为例),一共40个
- advertise\CHU_UI_Advertise_00_v10.srd
- advertiseInfo\CHU_UI_Advertise_common_00_v10.srd(改
还剩X分钟结束今天的报名
坐标) - avatarCutin\CHU_UI_Entry_AvatarCutIn_00.srd
- common\beltMessage\CHU_UI_Common_waiting_00_v10.srd
- common\commonAvatar\CHU_UI_Common_Avatar_Position_00.srd
- common\commonEmoneyDialog\CHU_UI_Common_dialog_Emoney_00.srd
- common\commonGetDialog\CHU_UI_Common_Get_dialog_00.srd
- common\musicConfirmDialog\CHU_UI_OnlineMatching_Dialog_00.srd
- common\netBattleConfirmDialog\CHU_UI_OnlineMatching_RankDialog_00.srd
- common\sysDialog\CHU_UI_Common_dialog_00_v10.srd(改
请投入X币
(有两个),要使用X可用点数购买功能票,
坐标) - common\tips\CHU_UI_Tips_dialog_00_v10.srd
- entry\CHU_UI_Entry_00_v10.srd
- entryload\CHU_UI_Entry_load_00_v10.srd
- error\CHU_UI_Error_00_v10.srd
- initialize\CHU_UI_Initialize_00_v10.srd
-
loginbonus\CHU_UI_LoginBonus_00_v15.srd(改
第X天 达成!
(“第”字可以直接写死在dds里,改数字和天数),若无聊可以把每个卡片头上的天数坐标也改了) -
nameentry\CHU_UI_NameEntry_00_v10.srd
- play\avatarAccessoryGacha\CHU_UI_OnlineMatching_AvatarGauge_00.srd(直接配合SDHJ的头文件和srd文件替换)
- play\battleReward\CHU_UI_OnlineMatching_PlayReward_00.srd
- play\gameContinue\CHU_UI_Continue_00_v10.srd
- play\mission\CHU_UI_Mission_00.srd
- play\musicInfo\CHU_UI_Playing_00_v10.srd
- play\musicSort\CHU_UI_Sort_00_v12.srd
- play\musicTutorial\CHU_UI_Tutorial_00_v10.srd(直接配合SDHJ的头文件和srd文件替换)
- play\result\CHU_UI_Result_02_v10.srd
- play\resultBattleRank\CHU_UI_OnlineMatching_Result_01.srd
- play\resultCourse\CHU_UI_CourseResult_00_v11.srd(改
CLASS勋章更新!!
坐标) - play\resultDuel\CHU_UI_Duel_00_v13.srd
- play\select\CHU_UI_Select_00_v10.srd(改
使用雕像后,该角色的最高等级会上升X级
) - play\selectCourse\CHU_UI_CourseSelect_00_v11.srd
- play\selectMap\CHU_UI_ListSelect_Map_Detail_00.srd
- play\selectMap\CHU_UI_ListSelect_Map_Dialog_00
- play\selectTicket\CHU_UI_ListSelect_Ticket_Detail_00.srd
- play\selectTicket\CHU_UI_ListSelect_Ticket_Dialog_00.srd
- play\selectTicket\CHU_UI_ListSelect_Ticket_MainLine_00.srd
- play\selectTicket\CHU_UI_ListSelect_Ticket_SubLine_00.srd
- play\totalResult\CHU_UI_TotalResult_00_v10.srd(改
还剩X升级
,共计获得了X个道具
,你一共获得了X个物品哦!
) - play\unlockChallengeInfo\CHU_UI_UnlockChallenge_Data_00.srd
- play\userBox\CHU_UI_Userbox_00_v10.srd
- testMode\CHU_UI_TestMode_00_v10.srd
srd文件存储了动画等数据
文字修改
最简单的修改,此处以advertise
的CHU_UI_Advertise_00_v10.srd
为例,此srd文件包含了短字符串和长字符串两种情况。
在要显示的文字前会有TEXT
字样标识(绿),如图
红色部分为文字长度,蓝色部分为部分显示坐标,部分字体大小等信息,黄色部分为文字,以6J(紫)为结尾,如果修改后长度与原文相比没有变化,那么就无需修改前两项
修改文字时要改的为红,深蓝和黄色部分
Danger
红色部分没修改正确会导致游戏闪退,蓝色部分未正确修改则会导致显示不正常
1.短字符串
基本上都是短字符串,目前只见过一个长字符串
用16进制编辑器打开文件,找到对应位置
可以看到,一个日文/中文,标点符号,全角数字和英文占3字节,空格,正常数字和半角英文占1字节
可以使用一个excel表格来记录数据,如下展示
文本 | 长度(UTF-8) | vtc(UTF-8) | vtc(Hex) | x | y | z | TEXT |
---|---|---|---|---|---|---|---|
严正警告 | 4*3 | 0? | 30 3F | 09 07 | 05 01 | 02 0C | 00 00 07 |
WARNING | 7 | 0: | 30 3A | 09 07 | 05 01 | 02 07 | 00 00 07 |
可以看到,z后是02加上字符串长度的16进制,vtc后是30和33(十进制为51)加上字符串长度再转为十六进制。
不过似乎不是全部都是33,有的好像是34?也可能是算错了)
2.长字符串
在此srd文件中可以看到这样一段话
此处字符串太长,vtc和z后面都占了3字节,并且也不是按从左到右的顺序来看的。
其中,每一处换行符在HEX中对应0D,占一字节,因此长度为427,国服翻译后长度为325。
如下展示
文本 | 长度(UTF-8) | vtc(UTF-8) | vtc(Hex) | x | y | z | TEXT |
---|---|---|---|---|---|---|---|
SDHD | 427 | 30 DF 01 | 09 17 | 05 01 | 02 81 AB | 00 00 07 | |
SDHJ | 325 | 30 79 01 | 09 17 | 05 01 | 02 81 45 | 00 00 07 |
那么应该如何计算vtc和z坐标呢?
以SDHD为例,在计算器的16进制处输入01 DF(HEX),然后转到十进制,减去472(DEC),可得原始长度为34(HEX),若要计算SDHJ的vtc,则加上325(DEC),可得01 79(HEX),写入时应写为79 01(HEX)
对于Z的值,则是在计算器输入81 AB(HEX)(或1 AB也行,因为没必要加上8,不然太长了),减去427(DEC)可得7D 84(HEX)(若为1 AB,则此处得0),加上325(DEC)可得到81 45(HEX)(或145)
注意
有的字符串为占位符,特征是无意义和重复,这种无需汉化,游戏会将它们替换成别的显示,有的则是占位和显示的字符串拼在一起的,翻译即可(不是很确定直接改srd行不行)。
坐标修改
Warning
此处并未完全研究明白,可能需要进行逆向游戏才能知道方法,以下修改的值是直接从国服文件抄的。
Tip
当然,如果你会的话求求你教我)
此处以common
中sysDialog
的CHU_UI_Common_dialog_00_v10.srd
为例。
图片和文字的坐标存在对应文字或图片上方的AnimParamData
中(若是开头第一组,会没有AnimParamData
,直接接后面),需要修改的文字的坐标在文字上方的第一个AnimParamData
中,图片则按名字啥的慢慢找)
以购买功能票投币为例,
这组AnimParamData
的名字为L_common_credit
,按照下图划分,方便查看。
我以4J
划分,但可能是以分号分隔的?反正4J后直接接着坐标数据,方便看)
可见上面的数量与下方的4J数量是一致的。
TXT
的似乎都是对应下面的TEXT
,也就是字符串。
要修改的为请投入
,币
和数字的位置,通过字符串和TXT
的数量可以定位到为第10,11,12的TXT_credit_txt_010
,TXT_credit_txt_020
和C_credit0
,然后下面的第13个C_credit_text0
对应dds中的张
,这个要改为不显示。
坐标修改(文字)
可知道要修改的两个字符串是第10和11个,找到第10和11个4J
,可看到后面的几个字节不一样,
原文件
国服文件
修改完此处后还需要修改下方的字符串的x
后的数据
原文件
国服文件
将上面的数据用表格记录下,方便以后汉化后,替换即可
组 | 名 | 对应(为猜测) | 原坐标 | 汉化坐标 | 原x | 汉化x |
---|---|---|---|---|---|---|
L_common_credit | ||||||
10 | TXT_credit_txt_010 | 请投入 | 00 2C C3 | 00 E6 C2 | 09 17 00 | 09 1B 00 |
11 | TXT_credit_txt_020 | 币 | 00 1A 43 | 00 44 43 | 09 17 00 | 09 13 00 |
Tip
坐标不一定只有这几个字节,可能前面或后面几个字节也是,这时候全部记录并替换即可
坐标修改(图片)
相比文字少了修改x
后的数据,其余一致
小技巧
可以找到想要修改的图片在哪个dds
文件里,然后复制名字(不带后缀.dds
),然后在srd
里直接搜索,若srd
使用了该dds
,则可以直接搜到名字。
找到后找到在哪组里即可,可以英文和片假名都用一用看看能不能找到。
修改是否显示
此处位于C_credit_text0
后面几字节,将原文件和国服文件对比可发现区别在后面的第三字节是06
还是07
,
原文件
国服文件
改为06
后就不显示了。
总结
SDHD一堆私有格式,汉化麻烦的一批,不如去个SDEZ,SDDT和SDED搓汉化,SDFE的都比这方便。