IN THIS ARTICLE
配置字体属性
您可以通过配置影响字体外观和用法的各种属性来定义 UI 字体的外观。
您可以在 .font 文件(一个 XML 文件)中定义字体的属性。以下示例显示了默认的 UI 字体 XML 文件,该文件位于 Engine/Fonts/default-ui.font.
<fontshader>
<font path="Vera.ttf" fontsize="32"/>
<effect name="default">
<pass>
</pass>
</effect>
<effect name="drop_shadow">
<pass>
</pass>
<pass>
<color r="0" g="0" b="0" a="1"/>
<pos x="1" y="1"/>
</pass>
</effect>
</fontshader>
默认 UI 字体 XML 使用 Vera 字体。它定义了一个字体纹理,该纹理可以容纳 128 个唯一字符或 32x32 像素的字形。该字体包括两种表示形式,分别使用效果标签 default 和 drop_shadow 定义。对于 default 效果,字体按原样呈现。对于drop_shadow效果,字体首先按原样呈现。第二个渲染过程生成黑色字体,与第一个过程相比偏移 1 个像素。这将创建字符的基本阴影效果。
Note:字体可以是字体系列的一部分\(使用 `.fontfamily` 扩展名\),但您可以使用不属于字体系列的独立字体。有关字体系列的更多信息,请参阅 创建字体系列.
使用以下标签、属性和值来定义字体的关键功能。
| Tag | 说明 | 属性 |
|---|---|---|
| font | 包含定义资源路径、大小和其他字体质量的关键属性。 | See Font Tag Attributes. |
| effect | 充当父标签以传递 children 标签。对构成效果的 pass 标签进行分组。 | name – Name of the effect. |
| effectfile | 指定包含效果标签的 XML 文件的路径。 | path – 指定包含效果标记的 XML 文件的路径的字符串。 |
| pass | effect 标签的子标签。您可以添加多个 pass 标签作为单个 effect 标签的子项。使用影响文本渲染的各种参数定义文本的渲染过程。pass 标签可以相互叠加,从而使效果具有独特的外观。 | 没有属性。父级 定义文本效果的以下子标签: |
| color | 一种文本效果,它是 pass 标签的子标签。定义文本颜色。 | 使用以下属性通过浮点值定义效果的强度:0.01.0f0 is transparent. 1.0f is opaque) |
| pos 或 offset | 一种文本效果,它是 pass 标签的子标签。设置文本的位置。 | 使用以下属性设置具有整数值的文本位置: |
| blend 或 blending | 一种文本效果,它是 pass 标签的子标签。定义文本的 Alpha 混合行为。 | 使用以下属性定义文本的 Alpha 混合行为:zeroonesrcalpha 或 src_alphainvsrcalpha 或 inv_src_alphadstalpha or dst_alphainvdstalpha 或 inv_dst_alphadstcolor 或 dst_colorsrccolor 或 src_colorinvdstcolor 或 inv_dst_colorinvsrccolor 或 inv_src_colormodulate-src_alpha 和 inv_src_alpha(1 个减去源 Alpha)混合additive-src_alpha 和 one (用于目标)混合 |
Font Tag Attributes
Font 标签属性定义字体的关键属性,例如用于显示字体的 TTF/OTF 资产的路径,以及影响字体呈现质量的其他属性。
Note:这些属性中的大多数对字体渲染质量有直接影响。有关详细信息,请参阅 配置字体呈现质量.
| 属性 | 示例 | 说明 |
|---|---|---|
| path | <font path=“Vera.ttf” … /> | String |
| fontsize | < … fontsize=“32”/> | Integer |
| w | < … w=“512” h=“256” /> | Integer |
| h | < … w=“512” h=“256” /> | Integer |
| widthslots | … widthslots=“8” heightslots=“8” /> | Integer16512x512. widthslots 和 heightslots 被设置为 8. 这将为每个字符提供 64x64 的空间。 |
| heightslots | < … widthslots=“8” heightslots=“8” /> | Integer8 |
| sizeratio | < … sizeratio=“0.6” /> | Float0.8 |
| sizebehavior | < … sizebehavior=“rerender” /> | Stringrerender |
| hintbehavior | < … hintbehavior=“nohinting” /> | Stringdefault – 字体提供的提示行为。您还可以省略 hintbehavior 标签以使用默认提示。nohinting – 禁用提示。autohint – 从字体程序派生的提示行为。 |
| hintstyle | < … hintstyle=“light” /> | Stringnormal – 字体提供的外观。您还可以省略 hintsytle 标签以使用默认提示。light – 外观更模糊,可以更准确地表示字体中字形的形状。 |
| smooth | < … smooth=“blur” smooth_amount=“3” /> | Stringblur – 将简单的毛刺效果应用于字体纹理中存储的字符或字形。使用 smooth_amount 设置用于模糊处理的迭代次数。supersample – 通过 smooth_amount 对字体纹理中的字符或字形进行超级采样:1 为 2x, 和 2 为 4x.none – 违约。未应用平滑。 |
| smooth_amount | < … smooth=“supersample” smooth_amount=“1” /> | Integer |