Language:
Page Info
Skill Level:
Engine Version:
Share

字体资源和编辑器

此页面包含可用于 字体编辑器字体字体风格 资源。

字体资源

虚幻引擎 4 中的字体被分类为 字体 资源,使用两种缓存方法:Runtime 的形式是合成字体;Offline 是更古老的预计算字体图谱法。在字体编辑器中打开字体资源后即可在两种方法之间切换(无需替换即可简单将现有字体资源从 Offline 转换到新合成方法)。

字体风格(Font Face)资源

导入字体时便会创建 字体风格 资源,它将保存可被字体资源引用的字体数据。这意味着相同的字体数据可在多个字体资源之间交替使用,甚至与资源中的多个字型共用,最终减少内存消耗。

FontFaceWindow.png

打开字体风格资源时,可访问 HintingLoading 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 中查找资源,在预览窗口中变更预览窗口(4)背景颜色或前景颜色(文本颜色)。有更新或导出正在进行修改的选项,然而这些选项只在 离线 缓存模式中可用。

默认字体群

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)进行绘制。子字体群中的字体优先按命名匹配选择。而常规体、粗体和细体也会基于默认字体的属性进行匹配,粗斜体同样如此(其自动选择日语粗体,因为字体包含加粗属性)。