GMS游戲漢化教程(4——自制字體)

接上個(gè)教程,如何做自制字體。
?
首先你得安裝gms1或gms2,任意一個(gè)即可,這里以GMS2為例。(GMS1方法是類似的)
?
萬(wàn)物起源,新建工程,寫好名字,給個(gè)位置(不多贅述)


對(duì)著右邊的Font鼠標(biāo)右鍵→Create→Font

命名隨意,別中文名就是了

設(shè)置好就保存()
?
你:說(shuō)好的中文呢,CNMD怎么沒(méi)有中文
?
?
你沒(méi)加range
點(diǎn)左邊的add,

保存工程后,給你兩種方法導(dǎo)出字體:
?

?
1、 方便導(dǎo)出,概率不能用——追蹤data.win(不是太推薦)
左上角,看起來(lái)像播放的按鈕(運(yùn)行)

看到窗口出來(lái)后別關(guān),回到GMS2,下面的output(輸出窗口)


比如這里輸出到一個(gè)很奇怪的路徑
那么我們就到那個(gè)位置唄(傳送)

看到了嗎,data.win!
之后在里面提出字體就行了
怎么提出?左上角Scripts→Repack Scripts→ExportFontData.csx
(PS:不建議此方法是因?yàn)榭赡茏謳?kù)丟失,甚至你的UTMT可能是舊版,無(wú)法拆最新runtime構(gòu)建的data.win)
(PPS:可以導(dǎo)出可執(zhí)行程序的直接導(dǎo)出 抽data.win的字體就可以了)
?

2、 轉(zhuǎn)換法:.yy源文件轉(zhuǎn).csx文件
這里的“轉(zhuǎn)”不是單純的改擴(kuò)展名,而是把.yy文件里的相關(guān)格式換為.csv文件里的參數(shù)
?
你:怎么改?看起來(lái)好難的亞子
不難,一步步來(lái)吧。
?
首先我們找到工程文件里的font文件夾

可愛的font在這里


關(guān)于csv文件的話,你可以隨便導(dǎo)出一個(gè)游戲的字體當(dāng)模板就可以了
?
這里我使用vscode進(jìn)行操作,只要你的文本編輯器支持批量替換即可
我們打開這兩個(gè)文件(.yy和.csv)


這里我再拿出GMS導(dǎo)出的字體文件看下

可以看到,GMS和GMS2的構(gòu)建是很相像的,而且csv文件直接和GMS的對(duì)應(yīng),但是如果要GMS2的話,需要一些轉(zhuǎn)化(第二個(gè)character對(duì)應(yīng)的參數(shù)刪掉)
?
?
你:如果我是GMS1導(dǎo)出的我該怎么改?
替換關(guān)鍵字為英文的“;”就可以了,但是頭和尾直接替換為空
就是這樣的:

↓

Csv有7個(gè)參數(shù),GMS的也是7個(gè)參數(shù),直接替換就可以了
?
?
但是你是GMS2的話:

↓

8個(gè)參數(shù)對(duì)上7個(gè)參數(shù)不合理吧...
這里我以GMS2的操作,GMS1的自行替換解決
?
?
我們把

里的東西全部復(fù)制到csv文件里(csv文件除了第一行全部換掉)

之后就是對(duì)著一個(gè)一個(gè)替換掉


之后以此類推

然后這里是非常關(guān)鍵的一步
?
查找的框框?qū)懮?(\d+);(\d+);(\d+);(\d+);(\d+);(\d+);(\d+)
(記得最右邊的使用正則表達(dá)式勾上)
替換的框框?qū)懮?$1;$2;$3;$4;$5;$7

之后替換就完成了
?
這里我稍微解釋下為什么這么做
上面我是說(shuō)了GMS2的比GMS1的多了一個(gè)參數(shù)(第二個(gè)character)
可是csv文件是與GMS1的結(jié)構(gòu)差不多的
那么就把GMS2的結(jié)構(gòu)轉(zhuǎn)化成GMS1的結(jié)構(gòu)就可以了(把那個(gè)參數(shù)刪掉)
這里用到了正則表達(dá)式
?
正則表達(dá)式,又稱規(guī)則表達(dá)式,(Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為"元字符"),是計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串,通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本?!俣劝倏?/p>
?
其中”\d”是匹配一個(gè)數(shù)字字符,等價(jià)于[0-9],那么“\d+”就是匹配多個(gè)數(shù)字字符,剛好符合我們的需求。(\d+)就是匹配這個(gè)數(shù)字字符并獲取這個(gè)匹配(相當(dāng)于查找了)
;自己就能匹配到,因此不做匹配規(guī)則
替換的“$” 匹配輸入字符串結(jié)尾的位置。$1是第一組參數(shù),后面就以此類推(說(shuō)不下去了,我也不太懂)
?
總之就是這種方法可以把第六組參數(shù)刪去(第二個(gè)character)
?
之后怎么做?沒(méi)了,真的沒(méi)了,已經(jīng)轉(zhuǎn)換完畢,可以導(dǎo)入了
至此,完成了自制字體
?
你:我可以混合字體嗎?
可以,但是要用Fonteditor.csx輔助(指把字體導(dǎo)出來(lái)然后把英文字符換成你想要的)
?
?
(有可能有缺漏,可以在評(píng)論區(qū)feedback下,畢竟我不是專業(yè)的)
?
如果有問(wèn)題可以在群里問(wèn):718505318(BNP交流群)
901988001(FD交流群)
?