本文内容
配置字体属性
您可以通过配置影响字体外观和用法的各种属性来定义 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 个像素。这将创建字符的基本阴影效果。
注意:字体可以是字体系列的一部分(使用.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.0 1.0f 0 is transparent. 1.0f is opaque) |
pos 或 offset | 一种文本效果,它是 pass 标签的子标签。设置文本的位置。 | 使用以下属性设置具有整数值的文本位置: |
blend 或 blending | 一种文本效果,它是 pass 标签的子标签。定义文本的 Alpha 混合行为。 | 使用以下属性定义文本的 Alpha 混合行为:zero one srcalpha 或 src_alpha invsrcalpha 或 inv_src_alpha dstalpha or dst_alpha invdstalpha 或 inv_dst_alpha dstcolor 或 dst_color srccolor 或 src_color invdstcolor 或 inv_dst_color invsrccolor 或 inv_src_color modulate-src_alpha 和 inv_src_alpha (1 个减去源 Alpha)混合additive-src_alpha 和 one (用于目标)混合 |
Font Tag Attributes
Font 标签属性定义字体的关键属性,例如用于显示字体的 TTF/OTF 资产的路径,以及影响字体呈现质量的其他属性。
注意:这些属性中的大多数对字体渲染质量有直接影响。有关详细信息,请参阅 配置字体呈现质量.
属性 | 示例 | 说明 |
---|---|---|
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” /> | Integer 16 512x512 . widthslots 和 heightslots 被设置为 8 . 这将为每个字符提供 64x64 的空间。 |
heightslots | < … widthslots=“8” heightslots=“8” /> | Integer 8 |
sizeratio | < … sizeratio=“0.6” /> | Float 0.8 |
sizebehavior | < … sizebehavior=“rerender” /> | String rerender |
hintbehavior | < … hintbehavior=“nohinting” /> | String default – 字体提供的提示行为。您还可以省略 hintbehavior 标签以使用默认提示。nohinting – 禁用提示。autohint – 从字体程序派生的提示行为。 |
hintstyle | < … hintstyle=“light” /> | String normal – 字体提供的外观。您还可以省略 hintsytle 标签以使用默认提示。light – 外观更模糊,可以更准确地表示字体中字形的形状。 |
smooth | < … smooth=“blur” smooth_amount=“3” /> | String blur – 将简单的毛刺效果应用于字体纹理中存储的字符或字形。使用 smooth_amount 设置用于模糊处理的迭代次数。supersample – 通过 smooth_amount 对字体纹理中的字符或字形进行超级采样:1 为 2x, 和 2 为 4x.none – 违约。未应用平滑。 |
smooth_amount | < … smooth=“supersample” smooth_amount=“1” /> | Integer |