dhucr 发表于 2022-8-2 08:04

黎之轨迹简体中文补丁

本帖最后由 dhucr 于 2022-8-5 09:42 编辑

黎轨的简中补丁,补丁制作工具移步(https://bbs.3dmgame.com/forum.php?mod=viewthread&tid=6321673&page=1&extra=#pid301960392)

链接:https://pan.baidu.com/s/1Nhp-DLy2KTAgQ3RQfhzBZQ
提取码:tgfb
我不能保证完善,比如个别字符乱码,但如果你看繁体更难受的话,这个补丁会对你有帮助的,至于未来会不会优化,随缘吧。下面是截图


8/4修复:

“锤”,官方使用的是“鎚”,而非“錘”
“愈”,官方使用的是“癒”
“尸”,官方使用的是“屍”
“于”,官方使用的是“於”
“搜”,官方使用的是“蒐”
“侘”替换为“诧”
“凪”,日本汉字,我字库中没有麼¥么後¥后昇¥升闔¥合煙¥烟乾¥干
蔘¥参菈¥拉唷¥哟嚐¥尝‧¥·   崑¥昆

抛弃了所有字体,只保留一个网上找的仿宋,最根本原因还是字库不全,有一些符号没有,如有其他乱码情况,欢迎反馈,我看到了会修,如果有其他更完善的简体补丁,请优先使用,这个花的时间有点儿多了

最近沒時間,請優先使用該補丁:https://bbs.3dmgame.com/thread-6322912-1-1.html,這個應該更完善。








Geminize 发表于 2022-8-2 08:28

fnt是码表,真正的字体是dds,你得把dds里的字体换成中文但不改变大小和对应的坐标位置

G347162534 发表于 2022-8-2 08:52

虽然帮不了忙,还是要支持一下啊

dhucr 发表于 2022-8-2 09:14

Geminize 发表于 2022-8-2 08:28
fnt是码表,真正的字体是dds,你得把dds里的字体换成中文但不改变大小和对应的坐标位置 ...

能不能连码表一起换

shenzhao1986 发表于 2022-8-2 09:53

谢谢楼主,支持一下

Geminize 发表于 2022-8-2 12:01

dhucr 发表于 2022-8-2 09:14
能不能连码表一起换

你要是自定义dds里的排列大小和坐标那肯定得换,不过那码表格式我没研究过

klose_rinz 发表于 2022-8-2 12:06

本帖最后由 klose_rinz 于 2022-8-2 13:07 编辑

DDS变成PNG,以及反向转换这个是没问题的,Compressonator就可以做到。

我来说一下我认为的真正的难点



他这个字库是两层的,把两层文字叠上去,并且错位。
他的fnt绝对是非标的,因为标准的windows fnt格式不符,我估计在fnt里肯定定义了每个字符要读哪一层。
如果是第一层就读红色像素,第二层就读绿色像素(其实可以认为是颜色的哪个通道)
因为红色=255,0,0 绿色=0,0,0 黄色=255,255,0就是两层交界处
所以实际上第一层就取第一个通道,第二层就取第二个通道,把这个通道数值扩展到三个通道,那就是游戏里的白色了。如果这个通道是0,表示这一层上这个像素没有(其它层有不影响),那就是表现为文字背景的黑色部分。

这种方法的恶心之处在于,如果你要改一个字,必然会影响周边一大堆的字,基本上没有办法用之前闪轨的替换方法来重做字库,唯一方法就是要未加密他那个码表,全部自己重新来。
并且你从下图其实可以看到他这个每一行都没有对齐的,不同类型字符的大小不一,不像闪轨是完全一样的方块区域,这就意味着码表里对这些位置也有体现或者主程序会对某些东西做缩放(如果是这样就更难重构了)。




而且重做的话,会很难处理游戏用到的特殊符号,就像闪轨里那种被涂掉的黎恩名字这种,还有爱心符号 其实是(株)   你也得自己想办法重做,且不说可能会有那种特殊映射的符号,就是码表对应的字符和实际渲染的不是一回事的。


云豹这样做的唯一好处是省内存,但似乎省不了多少,16M和32M能差多少?而且要省的话,颜色只用一个通道就行了,压缩下,用非标格式。唯一的用处大概就是用来恶心玩家,防止你们搞出所谓的简体版。看到这样的字库渲染图,真就放弃想去解析fnt了。


Geminize 发表于 2022-8-2 12:21

和省内存没关系,那个dds字库是ps4版直接另存为的,日版也是这种dds,要骂骂法老控去

dhucr 发表于 2022-8-2 12:38

klose_rinz 发表于 2022-8-2 12:06
DDS变成PNG,以及反向转换这个是没问题的,Compressonator就可以做到。

我来说一下我认为的真正的难点


感谢,这些资料都很重要,我目前有些进展,虽然它的fnt是非标的,但必定会使用一些固定的定位方法,比如xy坐标和wh所占像素长度,这和其他fnt制作软件应是一致的,因此我使用BMFont制作了一个fnt,然后制作程序:如果官方fnt中的字符的简体形式和我制作的fnt相同(Unicode),我便将我制作的fnt中的xywh覆盖它的数据。
然后我替换了dds,这样做似乎有效,不过也有很大的问题,例如某些地方显示出错,我的字体太小等等,因此我需要关于官方fnt的数据的更多解析。

dhucr 发表于 2022-8-2 12:38

Geminize 发表于 2022-8-2 12:01
你要是自定义dds里的排列大小和坐标那肯定得换,不过那码表格式我没研究过
...

感谢,这些资料都很重要,我目前有些进展,虽然它的fnt是非标的,但必定会使用一些固定的定位方法,比如xy坐标和wh所占像素长度,这和其他fnt制作软件应是一致的,因此我使用BMFont制作了一个fnt,然后制作程序:如果官方fnt中的字符的简体形式和我制作的fnt相同(Unicode),我便将我制作的fnt中的xywh覆盖它的数据。
然后我替换了dds,这样做似乎有效,不过也有很大的问题,例如某些地方显示出错,我的字体太小等等,因此我需要关于官方fnt的数据的更多解析。


klose_rinz 发表于 2022-8-2 13:02

本帖最后由 klose_rinz 于 2022-8-2 13:04 编辑

dhucr 发表于 2022-8-2 12:38
感谢,这些资料都很重要,我目前有些进展,虽然它的fnt是非标的,但必定会使用一些固定的定位方法,比如x ...
高低不平 没有的字 错乱的字可能就和其它几个值有关
比如dds每个字网格大小和原来不一致   

比如第几层如果你的dds只有一层他按第二层的偏移位置去读   可能就乱了

我瞎猜的   

fnt我还没有好好看这个我非常不擅长全靠猜。。

dhucr 发表于 2022-8-2 13:06

klose_rinz 发表于 2022-8-2 13:02
高低不平 没有的字 错乱的字可能就和其它几个值有关
比如dds每个字网格大小和原来不一致   



嗯,我会继续尝试

缔造~龙族 发表于 2022-8-2 13:06

完全搞不明白的我只能将希望寄托于大佬们了:funk:

Geminize 发表于 2022-8-2 13:17

dhucr 发表于 2022-8-2 12:38
感谢,这些资料都很重要,我目前有些进展,虽然它的fnt是非标的,但必定会使用一些固定的定位方法,比如x ...

官方fnt是utf8的

klose_rinz 发表于 2022-8-2 13:20

dhucr 发表于 2022-8-2 13:06
嗯,我会继续尝试

每条24个字节的记录里 0-3字节是unicode4-7字节我看好像就是01 00 00 00   或者00 00 00 00会不会对应第一层还是第二层你把这个都改成 00 00 00 00或者01 00 00 00试试
不过如果你是自己生成的dds 白色文字这两个通道像素应该都是255像素应该没问题不知道这个层是不是会影响什么计算参数导致读的时候就偏掉了。。
另外20个字节 我没仔细看照抄你生成的那个可以吗?

dhucr 发表于 2022-8-2 13:32

Geminize 发表于 2022-8-2 13:17
官方fnt是utf8的

啊,我一直以為是unicode

dhucr 发表于 2022-8-2 13:34

klose_rinz 发表于 2022-8-2 13:20
每条24个字节的记录里 0-3字节是unicode4-7字节我看好像就是01 00 00 00   或者00 00 00 00会不会对应 ...

类似于乱码那个情况似乎是程序的问题,我刚测试了一下,程序捕获不到‘遊’这个字,游玩的游,可能有什么bug

dhucr 发表于 2022-8-2 13:35

klose_rinz 发表于 2022-8-2 13:20
每条24个字节的记录里 0-3字节是unicode4-7字节我看好像就是01 00 00 00   或者00 00 00 00会不会对应 ...

那个我试了,rgb那个也试了,没影响

Geminize 发表于 2022-8-2 13:36

dhucr 发表于 2022-8-2 13:32
啊,我一直以為是unicode

也不全是,fnt里是unicode编码的后一半,但游戏里的文字在dat和tbl里的编码确实是utf8

dhucr 发表于 2022-8-2 13:45

Geminize 发表于 2022-8-2 13:36
也不全是,fnt里是unicode编码的后一半,但游戏里的文字在dat和tbl里的编码确实是utf8

...

嗯嗯,吓我一跳

dhucr 发表于 2022-8-2 13:48

klose_rinz 发表于 2022-8-2 13:20
每条24个字节的记录里 0-3字节是unicode4-7字节我看好像就是01 00 00 00   或者00 00 00 00会不会对应 ...

快成功了,高低不齐可能是字体原因,我换个字体试试,大部分乱码是我程序没写好,现在只剩下极少的乱码情况,我再调试下

dhucr 发表于 2022-8-2 13:48

Geminize 发表于 2022-8-2 13:36
也不全是,fnt里是unicode编码的后一半,但游戏里的文字在dat和tbl里的编码确实是utf8

...

快成功了,高低不齐可能是字体原因,我换个字体试试,大部分乱码是我程序没写好,现在只剩下极少的乱码情况,我再调试下

G347162534 发表于 2022-8-2 13:55

dhucr 发表于 2022-8-2 13:48
快成功了,高低不齐可能是字体原因,我换个字体试试,大部分乱码是我程序没写好,现在只剩下极少的乱码情 ...

牛批,这个贴吧卧虎藏龙

leishao665 发表于 2022-8-2 14:43

厉害了,菜鸡选手选手只能拭目以待了
在就是也许会有的贴图替换和文本对话大陆化,估计也是难点
万里长征第一步

klose_rinz 发表于 2022-8-2 15:59

本帖最后由 klose_rinz 于 2022-8-2 16:04 编辑



剩下的不解析可能也不要紧。。。我觉得可行性很高

klose_rinz 发表于 2022-8-2 16:01

dhucr 发表于 2022-8-2 13:48
快成功了,高低不齐可能是字体原因,我换个字体试试,大部分乱码是我程序没写好,现在只剩下极少的乱码情 ...

因为原始字体他有一个在实际渲染是的Xoffset和yoffset但是这个在云豹的fnt里没有这个字段。。。这种情况没法处理

dhucr 发表于 2022-8-2 16:32

klose_rinz 发表于 2022-8-2 16:01
因为原始字体他有一个在实际渲染是的Xoffset和yoffset但是这个在云豹的fnt里没有这个字段。。。这种情况 ...

嗯嗯,已经快完成了,到时候覆盖补丁和font自定义程序一起发

klose_rinz 发表于 2022-8-2 16:50

dhucr 发表于 2022-8-2 16:32
嗯嗯,已经快完成了,到时候覆盖补丁和font自定义程序一起发

你这个比较高级 哈哈我自己还在弄不过只能自己的字体

aioliya1987 发表于 2022-8-2 16:55

dhucr 发表于 2022-8-2 16:32
嗯嗯,已经快完成了,到时候覆盖补丁和font自定义程序一起发

自定义程序是可以改自己喜欢的字体么,期待大神发布啊!

Geminize 发表于 2022-8-2 17:02

klose_rinz 发表于 2022-8-2 15:59
剩下的不解析可能也不要紧。。。我觉得可行性很高

22的x-adv估计是类似文字上添加加重号的那种特效字符坐标

页: [1] 2 3 4
查看完整版本: 黎之轨迹简体中文补丁