• 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.结果

  • 相关阅读:
    蓝桥杯 奇怪的比赛
    历届试题 古堡算式
    PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)
    PAT 甲级 1039 Course List for Student (25 分)(字符串哈希,优先队列,没想到是哈希)*...
    PAT 甲级 1038 Recover the Smallest Number (30 分)(思维题,贪心)
    PAT 甲级 1037 Magic Coupon (25 分) (较简单,贪心)
    那不是Bug,是新需求
    看看C# 6.0中那些语法糖都干了些什么(上篇)
    eclipse工具的使用心得
    送给那些刚进公司工作滴童鞋
  • 原文地址:https://www.cnblogs.com/guobaoxu/p/12091339.html
Copyright © 2020-2023  润新知