Unity手游漢化筆記④:UABE+AssetStudio替換TMPro字體


總的筆記:https://www.cnblogs.com/guobaoxu/p/12055930.html


  TMPro,完整的叫TextMeshPro,原本是個插件,后來Unity逐漸做成了內置,主要特點是在放大之后不會模糊,逐漸成為主流,但是他的字庫是需要自己制作的,而不是直接用的字體文件,隨之而來的缺點就是字庫沒辦法做得足夠完整,也失去了動態字體。關於TMPro的漢化,分成兩個部分,文字和字體,本文講字體替換,文字的修改請看這篇:Unity手游漢化筆記①:UABE+AssetStudio編輯MonoBehavior類型Asset

 一、使用工具:

  Unity版本:2018.4.5f1
  AssetStudio(地址:https://www.perfare.net/tag/assetstudio
  UABE(地址:https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor

二、字體替換

1.用Unity做一個簡單的Demo

  效果如下:

   做Demo的過程中你應該會發現,一個TMPro的字體以一個SDF結尾的Asset文件呈現,展開后如下:

  實際上還有一個MonoBehaviour,整體類似於BMFont,所以我在替換的時候和BMFont思路類似,通過維持設置來保證紋理不變化,只替換MonoBehavior和圖片

2.獲得新字體

  先用Asset Studio來預覽,打開並加載Data文件夾(Android的話在Asset/bin/Data),在MonoBehavior分類下,會找到一個simfang SDF,這就是我們的字體最關鍵的部分了,一般TMPro的字體都會以SDF結尾,他的參數列表很長,如下:

  我們根據這里面的一些信息來制作新字體的Demo,使用相同版本的Unity來制作。

  在Unity中,先從菜單欄-Window-TextMeshPro-FontAssetCreator調出Font Asset Creator,這里的設置在MonoBehavior中體現在了m_CreationSettings部分,可以把Asset Studio中的參數列表放進一個編輯器里,用搜索功能找到他,我們要保持設置,具體如下:

  Sampling Point Size 對應右側pointSizeSamplingMode和pointSize

  Padding對應右側padding

  Packing Method對應右側packingMode

  Atlas Resolution對應atlasWidth和atlasHeight

  Character Set及其隨后小方框對應右側characterSetSelectionMode、characterSequence、referencedFontAssetGUI、referencedTextAssetGUID

  Render Mode對應右側renderMode(看不懂對應關系,好在一般都是默認值)

  Get Kerning Pairs對應右側includeFonrFeatures

  Generate Font Atlas后就得到了圖片,Save之后就得到了Asset文件,隨便弄個Text,把字體綁上去,然后生成整個項目

3.替換

  剩下的步驟就和替換BMFont的時候基本一樣了,用UABE導出新舊字體的圖片、MonoBehavior參數文本,圖片直接導回去,MonoBehavior要做以下修改:

  ① 指針部分,把參數文本復制到帶搜索功能的編輯器里,先搜索關鍵詞“pathid”(關閉大小寫匹配),有幾個部分:

    最開頭的m_GameObject和m_Script:這是MonoBehavior都需要的,應該保持舊的數值

    material:這是一個關鍵的東西,字體綁定的紋理,這里也要維持舊的數值

    m_AtlasTextures:指向圖片,也要維持舊的數值

    其他的匹配項都是0,不用管。

  ② 哈希值,搜索關鍵詞“hash”和“guid”,各有兩處匹配,這兩個我也選擇了保留舊的數值,以免出錯

4.結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM