GMS游戏汉化教程(4——自制字体)

接上个教程,如何做自制字体。
首先你得安装gms1或gms2,任意一个即可,这里以GMS2为例。(GMS1方法是类似的)
万物起源,新建工程,写好名字,给个位置(不多赘述)


对着右边的Font鼠标右键→Create→Font

命名随意,别中文名就是了

设置好就保存()
你:说好的中文呢,CNMD怎么没有中文
你没加range
点左边的add,

保存工程后,给你两种方法导出字体:

1、 方便导出,概率不能用——追踪data.win(不是太推荐)
左上角,看起来像播放的按钮(运行)

看到窗口出来后别关,回到GMS2,下面的output(输出窗口)


比如这里输出到一个很奇怪的路径
那么我们就到那个位置呗(传送)

看到了吗,data.win!
之后在里面提出字体就行了
怎么提出?左上角Scripts→Repack Scripts→ExportFontData.csx
(PS:不建议此方法是因为可能字库丢失,甚至你的UTMT可能是旧版,无法拆最新runtime构建的data.win)
(PPS:可以导出可执行程序的直接导出 抽data.win的字体就可以了)

2、 转换法:.yy源文件转.csx文件
这里的“转”不是单纯的改扩展名,而是把.yy文件里的相关格式换为.csv文件里的参数
你:怎么改?看起来好难的亚子
不难,一步步来吧。
首先我们找到工程文件里的font文件夹

可爱的font在这里


关于csv文件的话,你可以随便导出一个游戏的字体当模板就可以了
这里我使用vscode进行操作,只要你的文本编辑器支持批量替换即可
我们打开这两个文件(.yy和.csv)


这里我再拿出GMS导出的字体文件看下

可以看到,GMS和GMS2的构建是很相像的,而且csv文件直接和GMS的对应,但是如果要GMS2的话,需要一些转化(第二个character对应的参数删掉)
你:如果我是GMS1导出的我该怎么改?
替换关键字为英文的“;”就可以了,但是头和尾直接替换为空
就是这样的:

↓

Csv有7个参数,GMS的也是7个参数,直接替换就可以了
但是你是GMS2的话:

↓

8个参数对上7个参数不合理吧...
这里我以GMS2的操作,GMS1的自行替换解决
我们把

里的东西全部复制到csv文件里(csv文件除了第一行全部换掉)

之后就是对着一个一个替换掉


之后以此类推

然后这里是非常关键的一步
查找的框框写上 (\d+);(\d+);(\d+);(\d+);(\d+);(\d+);(\d+)
(记得最右边的使用正则表达式勾上)
替换的框框写上 $1;$2;$3;$4;$5;$7

之后替换就完成了
这里我稍微解释下为什么这么做
上面我是说了GMS2的比GMS1的多了一个参数(第二个character)
可是csv文件是与GMS1的结构差不多的
那么就把GMS2的结构转化成GMS1的结构就可以了(把那个参数删掉)
这里用到了正则表达式
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。——百度百科
其中”\d”是匹配一个数字字符,等价于[0-9],那么“\d+”就是匹配多个数字字符,刚好符合我们的需求。(\d+)就是匹配这个数字字符并获取这个匹配(相当于查找了)
;自己就能匹配到,因此不做匹配规则
替换的“$” 匹配输入字符串结尾的位置。$1是第一组参数,后面就以此类推(说不下去了,我也不太懂)
总之就是这种方法可以把第六组参数删去(第二个character)
之后怎么做?没了,真的没了,已经转换完毕,可以导入了
至此,完成了自制字体
你:我可以混合字体吗?
可以,但是要用Fonteditor.csx辅助(指把字体导出来然后把英文字符换成你想要的)
(有可能有缺漏,可以在评论区feedback下,毕竟我不是专业的)
如果有问题可以在群里问:718505318(BNP交流群)
901988001(FD交流群)