2012年8月12日星期日

KAG教學(補充篇)---字型設定與渲染字型,文字顯示(5)

(k ゚∀゚)<還記不記得之前曾經介紹[font]和[deffont]裡的face屬性可以改變字型,今次的主題是在吉里吉里使用字型的問題。

不是只要在face屬性上寫上字型名稱就可以嗎?到底有什麼問題?>( ゚ω゚ s)

(k ゚∀゚)<當我們在face屬性上寫上字型名稱時,其實吉里吉里是用玩家本身電腦所擁有的字型,那麼若果玩家的電腦沒有這字型,我們可以怎麼辦?

用其他常見的字型來取代?>( ゚ω゚ s)

(k ゚∀゚)<這方法當然可行,face屬性可指定多種字型,如果沒有這字體就可用另一個字型取代,不過相信大家多少都希望某種字型吧。

(k ゚∀゚)<解決方法有兩種,第一種是將字型檔案增添到遊戲裡,也就是遊戲本身自帶所使用的字型檔案,並不用理會玩家本身電腦是否擁有所需的字型。

是不是直接把字型檔案放入data資料夾就可以?>( ゚ω゚ s)

(k ゚∀゚)<不是的,除了把字型檔案放入data資料夾之外,還必須將字型檔案載入到吉里吉里裡。

(k ゚∀゚)<吉里吉里的檔案裡有一個叫addFont.dll這插件,這就是用來載入字型檔案,看看以下的範例。

[loadplugin module=addFont.dll]
[eval exp="System.addFont('字型檔案名稱', true)"]

(k ゚∀゚)<在上述的範例裡,只要將ttf和otf等字型檔案放入data資料夾裡,之後再利用System.addFont()去將字型檔案載入到吉里吉里裡,留意填寫的字型檔案名稱必須有副檔名。

不過有時候吉里吉里好像無法辨認到字型檔案,那麼就算將字型檔案載入到吉里吉里裡,吉里吉里都無法用正確的字型去顯示文字,那該怎麼辦?>( ゚ω゚ s)

(k ゚∀゚)<這時我們可以用另一個方法來解決字型問題,就是去渲染字型,經過渲染的字型會產生一個吉里吉里專用字型檔案,什麼亂碼或字型的問題基本上是可以完全解決。

我不太明白,為什麼那麼好的方便不一開始就介紹呢……?>( ゚ω゚ s)

(k ゚∀゚)<因為渲染字型的限制十分多,吉里吉里專用字型檔案是儲存著一個指定字型大小的字型,例如我要用到字型大小為24的新細明體,當我要用到字型大小為16的新細明體時,雖然同樣是新細明體,不過我卻要製作另一個吉里吉里專用字型檔案。

(k ゚∀゚)<若要製作吉里吉里專用字型檔案,可以利用在tools資料夾裡的krkrfont.exe,當開啟krkrfont.exe時,應該會看到以下的模樣。



(k ゚∀゚)<我們首先選「すべての TrueType フォントを表示」,這樣的話所有電腦已安裝的字型都會顯示在選單裡,之後在選單裡選擇要渲染的字型,之後在「サイズ(文字高さ)」裡寫上字型大小。

那選單下面的又是什麼東西?>( ゚ω゚ s)

(k ゚∀゚)<這是字型設定,我們可以設定平滑化或粗體等,而再下面兩個選項可以不用改動它們。

(k ゚∀゚)<當設定好後,可以按右邊的按鈕去預覽字型的模樣,當按下下面「作成」的按鈕,即可製作完成。

哦?現在多了一個tft檔案,那麼之後該怎麼做?是不是將它放在data資料夾裡?>( ゚ω゚ s)

(k ゚∀゚)<是的。然後我們必須告訴吉里吉里到底這個tft檔案是用在哪一個字型上。

吉里吉里不會自己去辨認?>( ゚ω゚ s)

(k ゚∀゚)<吉里吉里不會那樣做的,我們一定要利用[mappfont]去設定渲染的字型,看看以下的範例。

[font face=字型名稱 size=字型大小]
[mappfont storage=檔案名稱]

(k ゚∀゚)<當我們用[mappfont]去設定渲染字型時,吉里吉里會將現時的字型設定記錄下來,當遇到相同的字型設定,吉里吉里就會用設定好的渲染字型來顯示文字。

可不可以說得簡單一點,我完全不明白你說什麼?>( ゚ω゚ s)

(k ゚∀゚)<唔……那看看以下的範例。

[font face="Impact" size=24]
[mappfont storage="impact_24.tft"]
現在正測試字型

(k ゚∀゚)<在上述的範例裡,吉里吉里會將字型名稱Impact、大小為24等設定記錄下來,之後每遇到字型名稱是Impact、大小為24的字型設定時,吉里吉里就會使用impact_24.tft這字型檔案來顯示文字。

(k ゚∀゚)<如果仔細地看的話,大家可能發現[font]的設定和tft檔案並沒有直接關係的,就算impact_24.tft裡根本不是Impact的字型、大小不是24,吉里吉里照樣會用impact_24.tft來顯示文字,顯示文字的字型則是完全根據tft檔案來設定,這點必須要留意。

(k ゚∀゚)<大致上介紹得差不多,下次再見吧!

2 則留言:

  1. 请问如果是设置斜体的字体,应该怎么设置呢?krkrfonts.exe似乎只能生成粗体的tft无法生成斜体的tft

    回覆刪除