字体资产和编辑器

详细说明字体样式和字体资产,并介绍字体编辑器的诸多功能。

Choose your operating system:

Windows

macOS

Linux

本文介绍了 字体编辑器 中会用到的 字体(Font) 字体样式(Font Face) 资产类型。

字体资产

在虚幻引擎4中,字体被划分为 字体(Font) 资产,并采用两种缓存模式:基于实时合成的 运行时(Runtime) 模式,以及基于 传统预计算字体图集的 离线(Offline) 模式。在字体编辑器中打开字体资产后,你可以在两种模式之间切换(这样,无需替换即可将字体资产从离线模式 转换到新的实时合成模式)。

字体样式资产

引擎在导入字体时会创建 字体样式(Font Face) 资产,它保存可被字体资产引用的字体数据。这意味着,相同的字体数据可在 多个字体资产之间重复使用,甚至与资产中的多个字型共用,最终降低内存占用。

FontFaceWindow.png

打开字体样式资产时,你可以看到 Hinting 加载策略(Loading Policy) 设置。

属性

描述

Source File Name

所创建字体样式的文件名。这不会固定保存在磁盘中,因为我们之前可能已在此资产中加载和缓存字体数据。

Hinting

字体样式所使用的微调算法。

选项

描述

Default

使用字体中指定的默认微调。

Auto

强制使用自动微调算法。

Auto Light

强制使用自动微调算法,已针对非单色显示进行优化。

Monochrome

强制使用自动微调算法,已针对单色显示进行优化。

None

不使用微调。

Loading Policy

控制此字体样式运行时加载方式的枚举。查看枚举获得选项的更多解释。

选项

描述

Lazy Load

延迟加载整个字体到内存中。这比流送消耗的内存更多,然而在字体中渲染字形时文件 IO 为零(但初始加载可能导致卡顿)。

Stream

从磁盘流送字体。这比 Lazy Load 或 Inline 消耗的内存更低,但渲染字形时存在文件 IO,可能导致特定情况下或特定平台上出现卡顿。

Layout Method

此项将选择字体布局时所使用的方法。如字体出现裁剪或高度问题,可尝试对此项进行修改。

选项

描述

Metrics

使用字体中可用的参数数据设计字体。这通常是最佳选项,然而部分字体的参数破损或有误,使用边界框值设计字体可能获得更佳效果。

Bounding Box

使用来自边界框的数值设计字体。这通常会为含有效参数的度量/指标生成较大的行高,然而也可为拥有破损或错误参数的字体生成更佳效果。

将字体资产更新至 4.15 及更新版本

从虚幻引擎 4.15 版本开始,字体资产现已被拆分为两个单独的资产,字体和字体样式。 现有的字体资产在加载中会更新其内部字体数据到内置的字体样式资产中,但不会对它们进行自动拆分。需要打开字体编辑器, 在字体群里的条目下选择 Upgrade Data 。此操作使用户能编辑这些资产,并与创建的其他字体资产共享这些资产。

FontUpgradeData.png

点击 Upgrade Data 后,将弹出保存新字体样式资产的提示。

字体编辑器

Content Browser 中双击字体资产后,它将在 字体编辑器 窗口中打开。

FontEditorWindow.png

字体编辑器窗口详解如下:

工具栏菜单

ToolbarMenu.png

可在此菜单中保存修改、在 Content Browser 中查找资产,在预览窗口中变更预览窗口背景颜色或 前景颜色(文本颜色)。有更新或导出正在进行修改的选项,然而这些选项 只在 离线 缓存模式中可用。

默认字体群

DefaultFontFamily.png

用户可在此窗口中指定此字体资产使用的默认字体群。用户可添加特定字体样式的多个版本(如常规、 粗体、斜体、下划线等),或将不同字体样式的合集设为一个合成字体。如已创建 一个空白字体,则也可从此窗口中指定字体。

子字体群

AddSubFontFamily.png

在此窗口中点击 Add Sub-Font Family 按钮即可指定此字体资产所使用的子字体群。

SubFontFamily.png

可在此处指定字符范围。进入此字符范围后将指定不同于默认字体的另一种字体。 这在需要为不同语言使用不同字体类型时十分实用。

预览

Preview.png

此窗口可预览字体,并提供一个文本输入框以便输入范例文本。

Draw For Metrics

PreviewDrawFontMetrics.png

Draw Font Metrics 将覆盖行高、字形边界框,和作为预览一部分的的基线。

  • Base Line - 这是文本所处的线。

  • Line Bounds - 这是为给定文本字符串长度所创建的边界框。

  • Grapheme Cluster Bounds - 此边界框沿给定语言中的逻辑字符而绘制,可能由数个字形组成(例如一个基础字符和重音符号)。

  • Glyph Bounds - 这是沿给定字形绘制的边界框。

详情

Details.png

可在此创库中修改 Font Cache Type,以及 Font Size 和 Font Name(针对运行时)。

  • 如使用旧方法,在 Offline 缓存模式中仍然可以修改字体的参数。

  • 也可将现有字体资产从 Offline 转换为 Runtime ,无需进行替换。

范例字体资产

范例字体资产显示如下。

点击查看全图。

合成字体固定包含一个默认字体群,也可能包含任意数量用于给定字符范围的子字体群。每个字体群其自身由任意数量的字体样式组成(这些字体样式可基于其风格进行命名)。运行时每个字符将使用字体群中该字符范围最适合的字体(基于可用字体)。

如上图范例所示,日语文本属于日语字体群的字符范围中,因此使用源 Han Sans 进行绘制,而不以默认字体群(Roboto)进行绘制。子字体群中的字体优先按命名匹配选择。而常规体、粗体和细体也会基于默认字体的属性进行匹配,粗斜体同样如此(其自动选择日语粗体,因为字体包含加粗属性)。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消