🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

微信游戲小遊戲包體限制4M,一個字體就11.24M,怎麼玩?

image

引言

哈囉大家好,很多時候,我們的遊戲專案為了美觀和保證風格的統一,會用到外部字體庫。

但是,外部字體庫通常是完整的字庫,體積非常的大,例如完整的simkai字體庫就達到了11.24MB

image

要知道,現在的微信小遊戲限制主包的大小不能超過4M,即使你把字體放在分包,占去近50%的程式包大小,想想也不太合適。

image

因此,如果我們想要能夠順利地在遊戲中使用漂亮的字體,那我們得想辦法將字庫瘦下來。

言歸正傳,本期將帶小夥伴們一起看看,如何將我們想用的字庫從11.24M瘦到不到1M

本文源工程可在文末獲取,小夥伴們自行前往。

精簡字庫原理

據了解,一個完整的字庫估計有3~4萬個漢字,但實際上我們遊戲專案需要用到的可能只占10%~20%,甚至更少,像其中的一些漢字囧、烎、嫑、勥、忈、巭、怹、颪、氼、兲,別說用,筆者連讀都不會讀。(會讀的小夥伴請打在評論區,我給你點讚)

遊戲專案中,用到文字的地方通常包含下面幾個:

  1. 遊戲配置(*.json),一般配置裡的中文最多。
    image

  2. 預制體(*.prefab),有些靜態的文字通常就在預制體的Label裡。
    image

  3. 場景(.scene、.fire)同上。
    image

  4. 程式碼(*.ts),寫死在程式碼裡的。
    image

因此,要瘦身字體,按照以下2個步驟即可:

  1. 透過工具將上述地方的文字提取出來。
  2. 透過工具從字庫中保留我們提取到的文字,其餘的刪除。

精簡字庫實例

1. 提取中文字

要提取中文字,我們只需要按照上面的原理,遍歷我們遊戲專案中的遊戲配置預制體場景程式碼進行匹配即可。

其中遍歷文件,筆者使用的是glob

image

匹配中文字的正則表達式是/[\u4e00-\u9fff]/g

image

2. 精簡字庫

這裡我們使用百度出品的字體子集化工具Fontmin。可以直接透過npm install fontmin進行安裝。

image

工具的使用也非常簡單,透過傳入原字體保留的字符字體輸出目錄,最後透過fontmin.run這個API生成即可。

image

3. 效果演示

透過node font-minifier.js --project=C:\Users\Administrator\Desktop\demo --source=C:\Users\Administrator\Desktop\simkai.ttf傳入工程目錄和原字體路徑即可。

image

執行結果可以看到掃描的所有文件。

image

提取到的所有中文字。

image

生成的文件及其大小。

image

精簡後的字體大小為802K

image

更進一步

除去我們遍歷出來的遊戲設定的中文字,其實還有一部分中文字我們是不確定的,那就是用戶自定義的內容,例如名字和聊天文字。

想要處理這一部分文字,我們只能透過預設,猜到用戶會自定義的內容,從而預設保留,可以透過網路上分享的常用內容來完成。

此外工具可以集成到插件或者打包系統裡面去,這樣後續就不用考慮相關問題,自動生成所需字庫即可。

逗句

透過上述方法,可以將字庫大幅度精簡到能夠使用的狀態,但也會有一定的瑕疵。

不知道小夥伴們有沒有更完美的辦法呢?

本文源工程可透過私訊發送 fontminifier 獲取。

我是"億元程序員",一位有著8年遊戲行業經驗的主程。在遊戲開發中,希望能給到您幫助, 也希望透過您能幫助到大家。

AD:筆者線上的小遊戲《打螺絲闖關》《貪吃蛇掌機經典》《重力迷宮球》《填色之旅》《方塊掌機經典》大家可以自行點擊搜尋體驗。

實不相瞞,想要個愛心!請把該文章分享給你覺得有需要的其他小夥伴。謝謝!

推薦專欄:

知識付費專欄

你知道和不知道的微信小遊戲常用API整理,趕緊收藏用起來~

100個Cocos實例

8年主程手把手打造Cocos獨立遊戲開發框架

和8年遊戲主程一起學習設計模式

從零開始開發貪吃蛇小遊戲到上線系列


原文出處:https://juejin.cn/post/7572087181608353842


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝13   💬4   ❤️4
411
🥈
我愛JS
📝1   💬2   ❤️2
43
🥉
酷豪
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付