GMS游戲漢化教程(2——導(dǎo)入字體的三個姿勢)

注:此操作是為了替換原有的字體,如果該原有字體有“足夠多的”中文或外掛字體支持的好的 可忽略這一步
你要我怎么看?你可以看字體最底下的glyphs多不多字(具體為char ID在12540(日文字符末尾)是否還有其他字符而且很多那種,或者直接從textures也可以看出來)
?
這里稍微講下GMS里的char ID是什么
準(zhǔn)確來說就像ACSII(美國信息交換碼)那樣的對應(yīng)的字的ID的十進制形式,比如ID是32的是空格,48的是阿拉伯?dāng)?shù)字1
?
你:我不到啊!具體在哪看呢???
?
你可以用FontForge打開一個有中文字的字體看,比如這里是俐方體11號的“功”

可以看到,Char ID是21151(PS:這是個繁體字庫的字體)
又如這里是磊,Char ID是30922(字體是鳳凰點陣體12PX)

這里我以fantasy ruinX的DR十六夜戰(zhàn)為實例開始做一個完整的漢化作品
這里我們可以看出,只有ACSII的全部字(32~127)
?

那么我想加字體,怎么做???
?
?
1、 ExportFontData.csx / ImportFontData.csx(簡單,新手向)
?
比如這里我有個從某個游戲的data.win導(dǎo)出的中文字體(導(dǎo)出后字體成png+csv的形式而不是ttf之類)

也許你會好奇會想去看看csv文件有什么,這里有個圖可以簡略表示出來

PS:由于字體的圖就是這么多這么大(就是gm編譯出來就這么大而且改不了),因此那個font size不能調(diào)節(jié)字體的大小,只能作為一個標(biāo)識確認(rèn)這字體有多大
還有確認(rèn)字體是否打開/關(guān)閉粗體斜體選項,要保持一致才能導(dǎo)入成功
比如這里都沒√(兩個False)
?

?

其次,我們需要把字體的名字換成游戲中識別的字體名

比如這里是fnt_dtm

中文字體是fnt_maintext
?
那我們就要把fnt_maintext改為fnt_dtm(兩個文件都要改)
修改后如圖

這樣我們就能開始了
比如我把這字體放在了游戲目錄的Font文件夾里(只是說明我方放文件的位置,自己找得到,容易辨識即可,不管中英文什么事的)

開始用腳本(Scripts)
?
我們選擇Scripts→Resource Repackers→ImportFontData.csx,

找到放字體的文件夾

你會覺得:啊啊啊啊啊啊啊啊啊字體怎么不見了1111111111
?
正?,F(xiàn)象,他選的是文件夾而不是那兩個文件,這個腳本是檢測文件夾里(包括子文件夾)有沒有那兩個文件,有就導(dǎo)入,兩個文件二者缺一不可,不然會報錯,別說是我的問題
確定是這文件夾里有文件后就點“選擇文件夾就可以了”

完成!,之后保存(ctrl+s)可以保存數(shù)據(jù)了
你可以替換當(dāng)前的data也可以放到別的位置當(dāng)對比
?
想導(dǎo)出字體?就左上角的 Scripts→Resource Unpackers→ExportFontData.csx
選擇字體并點OK就完成了
?
2、Fonteditor.csx(過程較復(fù)雜,但可以編輯單個字符,在ImportFontData.csx沒用之后的手段)
比如說你剛剛完成了上面的步驟后,你可以在Scripts→Community Scripts→FontEditor.csx

選擇你要導(dǎo)出的字體

左上角Edit→Export font to ZIP

把它找個位置并給它個名字導(dǎo)出就可以了
這里不做演示,我已經(jīng)導(dǎo)出過了
這就是導(dǎo)出的ZIP文件
你可以解壓出來都有什么字(但都不是能直接用的)

反過來,我們能不能導(dǎo)入呢?
當(dāng)然可以
首先我們得把字體的紋理圖換成一個較大的圖(4096*4096基本上就可以解決,不管那圖里是否有東西,反正都會被換掉)
對著Embedded textures鼠標(biāo)右鍵,選Add
?

右邊窗口點Import(警告可忽略)

找到我們要導(dǎo)入的圖片(夠大就行,取決于字體大小,數(shù)量)
我這里直接把那字體的圖放進去


記下這個嗷,重要的
?
對著Texture page items鼠標(biāo)右鍵,點Add
?


在Embedded textures找到最底下的,就是我們剛剛導(dǎo)入的圖

?
鼠標(biāo)左鍵拖拽到右邊的Texture

這里都寫下我們剛剛記的大小,三個都得填


回到我們要導(dǎo)入的字體


?
然后我們再用FontEditor.csx打開該字體,左上角Edit→Import font to ZIP,把剛剛導(dǎo)出來的ZIP導(dǎo)進去再save就完成了






?
這樣就算完成導(dǎo)完字體了,記得保存喲
?
3、 CopySpriteBgFont.csx(適合有同樣字體名的data,更新翻譯版本可不用上面繁雜的步驟)
假設(shè)我們有個導(dǎo)入中文字體的版本,而且這個作者更新了很多內(nèi)容,但是字體沒變過的
我們在這里找到這個腳本并運行(懶得寫位置了)

?
看到這個點確定,找到要有中文字體的data

?
比如我這里是中文字體.win

?

顯示這個后點確定,在彈出的框里寫字體名,Done就可以了
?


PS:新版本運行腳本可能會報錯,這里用舊版完成的操作
?
?
你想看看什么效果?來看看
在strings欄找到想換的文本(這里我找到了個”start”,我改成“開始游戲”)


?
(字體搞定,剩下字符串沒去翻譯了)
(有可能有缺漏,可以在評論區(qū)feedback下,畢竟我不是專業(yè)的)
?
如果有問題可以在群里問:718505318(BNP交流群)
901988001(FD交流群)
?