欢迎光临散文网 会员登陆 & 注册

GMS游戏汉化教程(2——导入字体的三个姿势)

2022-12-01 14:36 作者:AX暗星233  | 我要投稿

注:此操作是为了替换原有的字体,如果该原有字体有“足够多的”中文或外挂字体支持的好的 可忽略这一步

你要我怎么看?你可以看字体最底下的glyphs多不多字(具体为char ID在12540(日文字符末尾)是否还有其他字符而且很多那种,或者直接从textures也可以看出来)

 

这里稍微讲下GMS里的char ID是什么

准确来说就像ACSII(美国信息交换码)那样的对应的字的ID的十进制形式,比如ID是32的是空格,48的是阿拉伯数字1

 

你:我不到啊!具体在哪看呢???

 

你可以用FontForge打开一个有中文字的字体看,比如这里是俐方體11號的“功”


可以看到,Char ID是21151(PS:这是个繁体字库的字体)

又如这里是磊,Char ID是30922(字体是凤凰点阵体12PX)




这里我以fantasy ruinX的DR十六夜战为实例开始做一个完整的汉化作品

这里我们可以看出,只有ACSII的全部字(32~127)

 

Font的fnt_dtm字体页

那么我想加字体,怎么做???

 

 

1、 ExportFontData.csx / ImportFontData.csx(简单,新手向)

 

比如这里我有个从某个游戏的data.win导出的中文字体(导出后字体成png+csv的形式而不是ttf之类)

两个文件,一个字体纹理和记录字形信息的csv文件


也许你会好奇会想去看看csv文件有什么,这里有个图可以简略表示出来

PS:由于字体的图就是这么多这么大(就是gm编译出来就这么大而且改不了),因此那个font size不能调节字体的大小,只能作为一个标识确认这字体有多大

还有确认字体是否打开/关闭粗体斜体选项,要保持一致才能导入成功

比如这里都没√(两个False)

 

csv文件第一行


 

对应的选项(粗体斜体)

其次,我们需要把字体的名字换成游戏中识别的字体名


比如这里是fnt_dtm


中文字体是fnt_maintext

 

那我们就要把fnt_maintext改为fnt_dtm(两个文件都要改)

修改后如图

csv文件前面的"glyphs_"别删掉!!!!


这样我们就能开始了

比如我把这字体放在了游戏目录的Font文件夹里(只是说明我方放文件的位置,自己找得到,容易辨识即可,不管中英文什么事的)


我把字体放在了Font文件夹,你想放哪都可以,两个文件都在就行


开始用脚本(Scripts)

 

我们选择Scripts→Resource Repackers→ImportFontData.csx,

Scripts→Resource Repackers→ImportFontData.csx

找到放字体的文件夹

?????

你会觉得:啊啊啊啊啊啊啊啊啊字体怎么不见了1111111111

 

正常现象,他选的是文件夹而不是那两个文件,这个脚本是检测文件夹里(包括子文件夹)有没有那两个文件,有就导入,两个文件二者缺一不可,不然会报错,别说是我的问题

确定是这文件夹里有文件后就点“选择文件夹就可以了”

完成!,之后保存(ctrl+s)可以保存数据了

你可以替换当前的data也可以放到别的位置当对比

 

想导出字体?就左上角的 Scripts→Resource Unpackers→ExportFontData.csx

选择字体并点OK就完成了

 

2、Fonteditor.csx(过程较复杂,但可以编辑单个字符,在ImportFontData.csx没用之后的手段)

比如说你刚刚完成了上面的步骤后,你可以在Scripts→Community Scripts→FontEditor.csx

选择你要导出的字体

左上角Edit→Export font to ZIP

把它找个位置并给它个名字导出就可以了

这里不做演示,我已经导出过了

这就是导出的ZIP文件

你可以解压出来都有什么字(但都不是能直接用的)


反过来,我们能不能导入呢?

当然可以

首先我们得把字体的纹理图换成一个较大的图(4096*4096基本上就可以解决,不管那图里是否有东西,反正都会被换掉)

对着Embedded textures鼠标右键,选Add

 


右边窗口点Import(警告可忽略)


找到我们要导入的图片(够大就行,取决于字体大小,数量)

我这里直接把那字体的图放进去

记下这个嗷,重要的

 

对着Texture page items鼠标右键,点Add

 

在Embedded textures找到最底下的,就是我们刚刚导入的图

 

鼠标左键拖拽到右边的Texture

这里都写下我们刚刚记的大小,三个都得填

回到我们要导入的字体

 

然后我们再用FontEditor.csx打开该字体,左上角Edit→Import font to ZIP,把刚刚导出来的ZIP导进去再save就完成了

 

这样就算完成导完字体了,记得保存哟

 

3、 CopySpriteBgFont.csx(适合有同样字体名的data,更新翻译版本可不用上面繁杂的步骤)


假设我们有个导入中文字体的版本,而且这个作者更新了很多内容,但是字体没变过的

我们在这里找到这个脚本并运行(懒得写位置了)

 

看到这个点确定,找到要有中文字体的data

 

比如我这里是中文字体.win

 

显示这个后点确定,在弹出的框里写字体名,Done就可以了

 

PS:新版本运行脚本可能会报错,这里用旧版完成的操作

 

 

你想看看什么效果?来看看

在strings栏找到想换的文本(这里我找到了个”start”,我改成“开始游戏”)

 

(字体搞定,剩下字符串没去翻译了)

(有可能有缺漏,可以在评论区feedback下,毕竟我不是专业的)

 

如果有问题可以在群里问:718505318(BNP交流群)

901988001(FD交流群)

 


GMS游戏汉化教程(2——导入字体的三个姿势)的评论 (共 条)

分享到微博请遵守国家法律