跳转至

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(改刷卡提示,序列码,注册,master教程提示坐标)
  • 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文件存储了动画等数据,其中还有没有文件头的dds文件

文字修改

最简单的修改,此处以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(HEX),长字符串是34(HEX)

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坐标呢?

vtc部分,将最后两位倒过来写(01DF),直接就是长度+52(DEC)

z部分,8忽略(符号位),剩下的连在一起(1AB),直接就是长度427(DEC)

以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

此处并未完全研究明白,可能需要进行逆向游戏才能知道方法 目前已知道如何修改TRS2(transform的简写)中的坐标,对于x,y和文字下方的数据暂不清楚,以及如何修改文本框长度也不清楚

Credit

感谢 chutranslation 项目提供的方法和模板

Tip

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

此处以entryCHU_UI_Entry_00_v10.srd为例。

图片和文字的坐标存在对应文字或图片上方的AnimParamData中(若是开头第一组,会没有AnimParamData,直接接后面),需要修改的文字的坐标在文字上方的第一个AnimParamData中,图片则按名字啥的慢慢找)

前期准备

首先先下载010 Editor和模板,对srd运行模板

以提示刷Aime卡的页面为例,

原画面

修改后

这组AnimParamData的名字为L_Entry_aime,按照下图划分,方便查看。

我以4J划分,但可能是以分号分隔的?反正4J后直接接着坐标数据,方便看)

这里应该有个分4J的图,但是我懒了,反正不分也行)

可见上面的数量与下方的4J数量是一致的。

开头为TXT的项目和中间含有txt的似乎都是对应下面的TEXT,也就是字符串。

要修改的为把 兼容卡或兼容手机和Aime Logo的位置,通过字符串和TXT的数量可以定位到为第5,4(从0开始计数)的TXT_aime_txt_020T_aime_txt_00_aime_logo0

坐标修改(文字)

可知道要修改的字符串是第5个,找到第5个,可看到后面的几个字节不一样,

原文件

修改后文件

可以看到,4J后先空一个字节,然后后4个字节为x坐标,再后面4个为y坐标,这四个字节为float类型数据(IEEE 754 单精度浮点数(32 位,小端序)),其中增加x坐标会向右移,y坐标会向下移动,可以为负数

在大多地方,1对应一个像素,可以用NV游戏内覆盖截图后,在ps打开,看看移动多少像素,记下数据来修改

有的修改完此处后还需要修改下方的字符串的x后的数据,以commonsysDialogCHU_UI_Common_dialog_00_v10.srd为例。

原文件

国服文件

将上面的数据用表格记录下,方便以后汉化后,替换即可

对应(为猜测) 原x 汉化x
L_common_credit
10 TXT_credit_txt_010 请投入 09 17 00 09 1B 00
11 TXT_credit_txt_020 09 17 00 09 13 00

Tip

坐标不一定只有这几个字节,可能前面或后面几个字节也是,这时候全部记录并替换即可

坐标修改(图片)

相比文字少了修改TEXTx后的数据,其余一致

小技巧

可以找到想要修改的图片在哪个dds文件里,然后复制名字(不带后缀.dds),然后在srd里直接搜索,若srd使用了该dds,则可以直接搜到名字。 找到后找到在哪组里即可,可以英文和片假名都用一用看看能不能找到。

修改是否显示

commonsysDialogCHU_UI_Common_dialog_00_v10.srd为例,将这个图像文字隐藏

此处位于C_credit_text0后面几字节,将原文件和国服文件对比可发现区别在后面的第三字节是06还是07

原文件

国服文件

改为06后就不显示了。

总结

SDHD一堆私有格式,汉化麻烦的一批,不如去个SDEZ,SDDT和SDED搓汉化,SDFE的都比这方便。

评论