跳转至

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文件存储了动画等数据

文字修改

最简单的修改,此处以advertiseCHU_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

当然,如果你会的话求求你教我)

此处以commonsysDialogCHU_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_010TXT_credit_txt_020C_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的都比这方便。

评论