主題

【遊戲開發日誌 #12】語言切換、存讀檔整改、鍵位小圖示與字型

サンエックス | 2021-12-30 19:19:01 | 巴幣 4132 | 人氣 288

大家好,2021年也進入尾聲了,發個今年最後一篇文做結尾。

先稍微雜談個,上篇文發完不久後的11月中旬時,PC主機的風扇開始大聲 了起來,往年都是自己手動主機開蓋清個灰保養下大致就能解決。
不料,清完過不到一星期它又開始發病,冬天夜深人靜時大聲 到隔兩個房間都聽得到的程度,
硬體白癡沒辦法只好搬去給專門的檢視,誰曉得到現場之後它又安靜得離奇,阿是在

做最壞的打算,把重要的資料再三備份,過沒兩天果不其然又開始發作,馬的欠拆,終於確定是電供在搞事,同樣再搬去給人換顆電供後就恢復正常了。

Δ 原先的電供

這主機也用了六年半,現場人員說我這電供一直是上下裝反的,沒辦法順利散熱。
當初這臺買來就一體成形的,反正我也是很問號。


被來回折騰完後,才終於又能回歸開發事宜,也因此主要進度大致上都落在12月內。


◆【語言切換】
如題,即為遊戲對於多語系的支援。
一般會想到的是文字顯示時,根據語言類型顯示不同的字串 (string),然而實際上不只文字,圖像 (sprite) 和語音 (AudioClip) 等也是有可能因語言不同而發生變化的範疇。
一開始有想說利用 excel 或 Google 試算表之類的表格樣式來處理,主要是在視覺上的比對能夠一目瞭然。不過這也僅限於文字,圖像和語音沒辦法用試算表儲存,最後還是決定用回 ScriptableObject 來處理,將來需要翻譯的時候再透過表格資料存取就行。
Δ 可設置當內容為空時,預設使用的目標語言。

取用特定項目時,可透過專屬的參照架構來達成。
Δ 語系參照架構
Δ 中/英語言設定下的鍵位調整介面雛形演示

◆【存讀檔整改
原本已有的系統優化,當初大學專題時期的存讀檔功能很陽春,用現在的遊戲版本讀取當時的存檔的話,已經是會直接報錯的程度,可說是非修不可。

● [跨版本兼容]
同個類型的項目,在不同版本之間可能會有相異的資訊需要儲存,保留汰用參數、對不存在的部分賦予預設值,以確保無論是在更新或降版本時都能正常使用存檔。

● [資料分區]
每個存檔事件將資料集中在同個檔案中,但每次讀寫時不需要遍歷該檔案的所有資料,而是根據其 flag 配合只存取需要區塊。
像是系統設定的存檔中,包含了音量、圖像和鍵位等設置,而調整音量時只需要存取音量區塊的資料即可。

◆【鍵位小圖示
約一年半前就已經畫過鍵位的圖示,不過它們的規格是 32×16px 尺寸,對上一些尺寸較小的字型又會顯得太大,甚至覆蓋到其他行的文字。

像素繪沒在搞直接縮放的,那只會導致畫面上像素點的尺寸不統一,看了很頭痛。
也因此,解決的方案必然是再繪製較小尺寸的鍵位圖示,此次的尺寸是 16×10px,適合我手邊那些較小一號的字型。
Δ 32×16px/16×10px

原先的尺寸上,部分鍵位要塞進其鍵值文字已經很吃緊了,使用縮寫基本上是家常便飯,能使用圖示來表現的當然盡量是以圖示為主。
除此之外就是色票上做點微調,並修復了些視覺上的闕漏吧。
Δ 鍵值與對應圖像的設置

◆【字型與 fallback
可以理解成,當出現使用中的字型不存在的字元時,進而使用後備字型來替代。
遊戲支援語言切換時必須考量的部分,用以避免產生漏字的情況,這邊是採用思源黑體,畢竟能夠支援大多數語言和奇形怪狀的字元,開源還能商用,何樂不為。
Δ 原字型中缺少「咚」,以 fallback 的字型頂替。

仔細端詳的話,能看得出後備字型和原字型存在視覺上的差異,但還是應以能夠傳達文本內容優先,絕對比起出現一塊塊豆腐來得好。

● [Sprite Asset 規格化]
Textmesh Pro 在使用上,將貼圖轉換成 sprite asset 時,基本上 sprite 的尺寸和對齊格式都會跑掉,沒辦法直接使用。
Δ Sprite Asset 在預設上會使其一律與字型大小等高

從 Sprite Glyph Table 一個個手動調也是種選擇,可是整張貼圖有上百個圖示在裡面,改好都跨完年了。
這邊寫了個能統一調整其規格的腳本,設定字型的目標尺寸後並 Apply,基本上就能在 Textmesh Pro 中插入以 1:1 大小顯示的 sprite 了。(如上圖「正常」所示)


今年總結下來,是實質上進行獨立開發的第一年,這個專案也還在打地基的階段,再來把剩下的 UI 和角色架構完成後,應該就能進入正軌了。


同樣地,感謝各位的支持,明年也請多指教。

創作回應

Yuze 湯瀨
我們開發也用思源黑體真的是很不錯的字型
2021-12-30 19:28:22
サンエックス
識貨ㄛ
2021-12-31 00:29:38
考古博士(WEI)
我都用Unifont 支援多語言 雖然我覺得有點醜
2021-12-31 01:23:26
サンエックス
字體我都是先求有再求好了,其次是其字型大小,會影響整個畫面能容納文字數的緣故。
2021-12-31 13:43:27
サンエックス
像素字型想涵蓋碼位廣泛,又要好看有風格的我還真找不到。[e18]
2021-12-31 13:44:18

更多創作