2015年4月18日 星期六

RPG Maker 的遊戲 無法顯示字型問題

[補充]
此問題,目前使用 Locale Emulator 大多數情況下都可以正常解決
所以使用 Locale Emulator 來解決比較方便, 省的去改字型檔

[原文]

如題
這問題大多是發生 繁中Windows 上跑的 日文 簡中 的 RM遊戲時
(反過來也是...不過這裡以本人角度...繁中Windows 使用情況為主要來說)

其實問題原因很簡單...就是 RPG Maker 找不到字型
那解決方法...也很簡單...讓它找到字型就好了

那問題來了...網路上找的方法不外乎是

1. 安裝遊戲所使用的字型
2. 更改 Windows 的 地域及語言 設定
3. 直接使用 RPG Maker 修改 遊戲 所使用的字型

先說 第3 點
只是玩個遊戲...還要先學怎麼寫遊戲嗎
而且 遊戲本身 有 壓縮或加密的 也...可能也要解壓解密才能改
所以第3個方法...工程太複雜...而且...每遇到1個遊戲就要改1次嗎

再來 第2點
首先...你還要是要有字型...不然改也沒用

至於 第1點
有時候就算你安裝了字型...一樣無法顯示
明明有那個字型...但就是無法顯示 (要用第2招才能)

那麼...明明有字型時...又到底為啥會找不到字型咧
其實一般來說...
RPG Maker 遊戲...如果遊戲本身使用了 Windows 或 RPG Maker 沒內建的字型
多半都會附加字型到 Fonts 目錄 (除非作者粗心忘了附)
所以沒附字型的...多半是用 Windows 或 PRG Maker 內建字型
也就是遊戲在相對的 日文 或 簡中 Windows 下都正常...拿到 繁中Windows 卻無法顯示字型時
很有可能...並不是沒有字型檔...而是 遊戲 找不到字型

那...為啥會這樣咧...經過我 反覆+仔細 研究...終於找到原因
這是 字型檔 本身就有 語系 資料的關係

這裡我先提供一下工具程式
https://drive.google.com/open?id=0B1UgOVwg2zTxVVAzaTk5SVpYUzQ&authuser=0

這裡先說一下 ttc 和 ttf 這個2個字型檔類型
間單說 ttc 就是 ttf 的合併(集合)檔
也就是 1個 ttc 中...有多個 ttf

而問題原因...簡單的說...一個 字型檔...在不同 語系 的 Windows 中...字型名稱可能會不一樣
例如
SimSun.ttc 他包含 SimSun 和 NSimSun 2個 ttf 字型
在 繁中Windows 中 ... 雙擊 SimSun.ttc
看到的 字型名稱 應該是 SimSun & NSimSun
其下還會顯示各別的 ttf 字型名稱 (視窗中間可按 << 或 >> 選則各別的 ttf 資料)
但在 簡中Windows 中...則會顯示 宋体 & 新宋体 而不是 SimSun & NSimSun

這是因為 SimSun 的 ttf 中
分別包含了 English 和 Chinese-PRC ... 2種 語系資料 (其實是3種還有一個 新加坡 的)
在 Chinese-RPC Windows 中 (或 地域設定為 Chinese-PRC) 時
字型名稱 調用的是 Chinese-PRC 的資料
而 非Chinese-PRC Windows 中
因為 SimSun 沒有相對的 語系資料...則一般都會調用 English 的資料
所以看到的是英文

因此...如果 RPG Maker 的製作時...設定字型時...字型名稱只用了某一個...例如

Font.default_name = ["宋体"]

那在 繁中Windows 中...就找不到 宋体
合理的設定則應該包含英文名稱

Font.default_name = ["宋体","SimSun"]

當然這裡不是在教 RPG Maker 製制(我也不會) ...只是在說明原因

也就是說...只要讓 遊戲 找到 字型 ...字型就可以顯示
所以最簡單的方法...就是把 ttf 中 English 資料的 字型名稱 改成 遊戲 所使用的 字型名稱 就可以

ttfname 中是 platform=Microsft, encode=Unicode, lang=English
FontCreator 中是 Microsoft Unicode BMP only 中的 English
( FontCreator 的 功能表 - 格式 - 命名 )
修改其中的
FamilyName (ttfname)
字型家族名稱 (FontCreator)

針對 RPG Maker 的情況...
主要改的是  FamilyName (字型家族名稱...也就是 雙擊 ttc ttf 時顯示的 Typeface )
因為 RPG Maker 找字型時是找這個...而不是 FontName(完整字型名稱)
當然...2個都改就好了
(實際上 windows 在調用 字型 時,其 名稱 指的是 FamilyName)

而 RPG Maker 在找字型時...依不同的 RPG Maker 其順序是

XP ( RGSS1 = RGSS10xx.dll )
1. Windows 安裝的字型

VX ( RGSS2 = RGSS20xx.dll)
VXAce ( RGSS3 = RGSS30xx.dll)
1. 遊戲 Fonts 目錄
2. 有指定 RTP 時 RTP 的 Fonts 目錄
3. Windows 安裝的字型

所以 VX VXAce 字型 可以直接丟到 遊戲 Fonts 目錄中...不用安裝到 Windows 中
這也避免和 Windows 中的字型相衝

基本上 遊戲 Fonts 沒附字型的...大多是用 Windows 內建字型 或 RPG Maker 內附字型
所以這裡提供一下我自己做的 ttc 
https://drive.google.com/open?id=0B1UgOVwg2zTxOVExRlp6RE54QnM&authuser=0

主要針對 內建字型 的情況 ... 那種有 遊戲 Fonts 有附加字型的就要自己改
其實有 附加字型 的..最好用其附加字型改
一來是維持原本使用的字型
二來是有的字型不能用別的字型取代
(應該說不同字型間...不一定能取代...這不是名稱問題...而是字型本身顯示的問題...不過只要不是差很多...大多是可以取代)

在 XP 中如果要安裝我提供的這個 ttc 會出錯...因為包含 ttf 太多(感覺是XP 的 bug)...win7 win8沒測試過
因為主要是給 RM遊戲 用...而且避免和內建字型相衝...所以建立都直接放 遊戲 fonts 目錄就好

壓縮檔中可以看到2個 ttc
RPG_Maker_Use_chs.ttc 和 RPG_Maker_Use_cht.ttc

RPG_Maker_Use_chs.ttc
基礎字型是用 文泉驿微米黑 做的
也就是把 ttc 拆成 32個 ttf 後
其實每一個 ttf 都一樣是 文泉驿微米黑 ...只是各別的 FamilyName 都被改掉了
用 文泉驿微米黑 是因為...剛好有遊戲要用...另外就是...他容量小 又包含 繁 簡 日 韓 大多的常用字
文泉驿官網 http://wenq.org/

RPG_Maker_Use_cht.ttc
基礎字型是用 文泉驛微米黑-簡轉繁 做的
http://123.briian.com/forum.php?mod=viewthread&tid=4215

一開始本來只有做 chs 的...只是在網路查字型資料時...順帶發現這個字型
因為此 簡轉繁 字型剛好也是用 文泉驿微米黑 做的(只是不知道用的是那一版)
所以順便做了...一部份原因是因為...可以 簡轉繁

以下是某 RM遊戲 使用3種字型的情況

左至右分別是
遊戲附的 Rounded / 圓体 字型 (要改才能顯示)
RPG_Maker_Use_chs.ttc
RPG_Maker_Use_cht.ttc

RPG_Maker_Use_chs.ttc 和 RPG_Maker_Use_cht.ttc
包含的 字型名稱 
除了部份字型外大多數是 Windows 內建字型

WenQuanYi Micro Hei / 文泉驿微米黑
WenQuanYi Micro Hei Mono / 文泉驿等宽微米黑
SimSun / 宋体
NSimSun / 新宋体
FangSong / 仿宋
SimHei / 黑体
KaiTi / 楷体
Microsoft YaHei / 微软雅黑
Rounded / 圆体
MS Gothic / MS ゴシック
MS PGothic / MS Pゴシック
MS UI Gothic
MS Mincho / MS 明朝
MS PMincho / MS P明朝
VL Gothic / VL ゴシック
VL PGothic / VL Pゴシック
UmePlus Gothic

XP 沒有內建的 (win7/8 有內建)
FangSong / 仿宋
KaiTi / 楷体
Microsoft YaHei / 微软雅黑

我剛好 RM遊戲 要用...所以順手加進去
Rounded / 圆体

RPG Maker VX / VX Ace (RTP) 內附的
UmePlus Gothic
VL Gothic / VL ゴシック
VL PGothic / VL Pゴシック

RPG Maker 的 RTP 可以到這裡下載 (有的 RM遊戲 是要 RTP 的)
英文版 http://www.rpgmakerweb.com/download/additional/run-time-packages
日文版 http://tkool.jp/support/download/rpgvxace/rtp

RTP 安裝路徑應該都在
C:\Program Files\Common Files\Enterbrain

VX RTP 會附 DLL( RGSS20xx.dll )


Game.ini 中有看到 RTP=XXXXX
表示當該遊戲找不到檔案時...會去 RTP 找...再找不到才會出錯

另外附自己合併此3個字型的 ttc
https://drive.google.com/open?id=0B1UgOVwg2zTxNWdOanhQM3JUR2c&authuser=0



最後附 win81 內建字型 和 自改修正的 win81 內建字型

 

未修正(因為不用修正...繁體字型 或是 字型只有英文名 )

msjh.ttc ( 微軟正黑體 )
https://drive.google.com/file/d/0B1UgOVwg2zTxZzVVank0X3k4eEk/view?usp=sharing

simsunb.ttf ( SimSun-ExtB )
https://drive.google.com/file/d/0B1UgOVwg2zTxU2ttQmU0bm5sQTg/view?usp=sharing

 

有修正

win81_simsun_fix.ttc
字型
SimSun / 宋体
NSimSun / 新宋体
https://drive.google.com/file/d/0B1UgOVwg2zTxUlpkVDh2ak1aMEE/view?usp=sharing

win81_simhei_fix.ttc
字型
SimHei / 黑体
https://drive.google.com/file/d/0B1UgOVwg2zTxTHFoMnc2VUduaWM/view?usp=sharing

win81_msgothic_fix.ttc
字型
MS Gothic / MS ゴシック
MS PGothic / MS Pゴシック
MS UI Gothic
https://drive.google.com/open?id=0B1UgOVwg2zTxZWIyRVZzdFZ0LUk&authuser=0

win81_msmincho_fix.ttc
字型
MS Mincho / MS 明朝
MS PMincho / MS P明朝
https://drive.google.com/open?id=0B1UgOVwg2zTxS3Jzc3pseENHdXc&authuser=0

 

沒有留言:

張貼留言