Version:

配置字体属性

您可以通过配置影响字体外观和用法的各种属性来定义 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 像素的字形。该字体包括两种表示形式,分别使用效果标签 defaultdrop_shadow 定义。对于 default 效果,字体按原样呈现。对于drop_shadow效果,字体首先按原样呈现。第二个渲染过程生成黑色字体,与第一个过程相比偏移 1 个像素。这将创建字符的基本阴影效果。

注意:
字体可以是字体系列的一部分(使用 .fontfamily 扩展名),但您可以使用不属于字体系列的独立字体。有关字体系列的更多信息,请参阅 创建字体系列.

使用以下标签、属性和值来定义字体的关键功能。

Tag说明属性
font包含定义资源路径、大小和其他字体质量的关键属性。See Font Tag Attributes.
effect充当父标签以传递 children 标签。对构成效果的 pass 标签进行分组。name – Name of the effect.
effectfile指定包含效果标签的 XML 文件的路径。path – 指定包含效果标记的 XML 文件的路径的字符串。
passeffect 标签的子标签。您可以添加多个 pass 标签作为单个 effect 标签的子项。使用影响文本渲染的各种参数定义文本的渲染过程。pass 标签可以相互叠加,从而使效果具有独特的外观。没有属性。父级 定义文本效果的以下子标签:
  • color
  • pos or offset
  • blend or blending
  • color一种文本效果,它是 pass 标签的子标签。定义文本颜色。使用以下属性通过浮点值定义效果的强度:
  • Minimum: 0.0
  • Maximum: 1.0f
  • r – Red
  • g – Green
  • b – Blue
  • a – Alpha (0 is transparent. 1.0f is opaque)
  • posoffset一种文本效果,它是 pass 标签的子标签。设置文本的位置。使用以下属性设置具有整数值的文本位置:
  • x – 相对于文本位置沿 X 轴偏移文本
  • y – 相对于文本位置沿 Y 轴偏移文本
  • blendblending一种文本效果,它是 pass 标签的子标签。定义文本的 Alpha 混合行为。使用以下属性定义文本的 Alpha 混合行为:
  • src – 文本的 Alpha 混合的源颜色值
  • dst – 文本的 Alpha 混合的目标颜色值
  • type – 具有由值确定的预配置设置的 Alpha 混合行为
  • srcdst 属性使用以下值:
  • zero
  • one
  • srcalphasrc_alpha
  • invsrcalphainv_src_alpha
  • dstalpha or dst_alpha
  • invdstalphainv_dst_alpha
  • dstcolordst_color
  • srccolorsrc_color
  • invdstcolorinv_dst_color
  • invsrccolorinv_src_color
  • type 属性使用以下值:
  • modulate-src_alphainv_src_alpha(1 个减去源 Alpha)混合
  • additive-src_alphaone (用于目标)混合
  • Font Tag Attributes

    Font 标签属性定义字体的关键属性,例如用于显示字体的 TTF/OTF 资产的路径,以及影响字体呈现质量的其他属性。

    注意:
    这些属性中的大多数对字体渲染质量有直接影响。有关详细信息,请参阅 配置字体呈现质量.
    属性示例说明
    path
    <font path=“Vera.ttf” … />
  • Type: String
  • TTF 或 OTF 字体文件资产的路径。
  • fontsize
    < … fontsize=“32”/>
  • Type: Integer
  • 以像素为单位定义用于在字体纹理中存储字形(字符)的槽的正方形大小。为了获得像素完美的渲染质量,此大小应与渲染字体时指定的大小匹配。
  • w
    < … w=“512” h=“256” />
  • Type: Integer
  • 以像素为单位定义字体纹理的宽度。
  • h
    < … w=“512” h=“256” />
  • Type: Integer
  • 以像素为单位定义字体纹理的宽度。
  • widthslots
     … widthslots=“8” heightslots=“8” />
  • Type: Integer
  • Default: 16
  • 定义沿字体纹理的 X 轴的字符或字形槽的数量。
  • 在此示例中,字体纹理为 512x512. widthslotsheightslots 被设置为 8. 这将为每个字符提供 64x64 的空间。
  • heightslots
    < … widthslots=“8” heightslots=“8” />
  • Type: Integer
  • Default: 8
  • 定义沿字体纹理的 y 轴的字符或字形槽的数量。
  • sizeratio
    < … sizeratio=“0.6” />
  • Type: Float
  • Default: 0.8
  • 在渲染到字体纹理中时,对字符或字形应用均匀缩放。
  • 默认缩放通常是理想的。您可以针对比例不寻常的字体(如非常长的字体或宽字体)调整此值。
  • sizebehavior
    < … sizebehavior=“rerender” />
  • Type: String
  • Value: rerender
  • 以新大小再次渲染文本。当文本的渲染大小与字体纹理的字形槽大小不同时,提高字体外观质量。
  • 当文本大小更改时,将应用简单的转换缩放。当文本变大或变小时,质量会明显下降。
  • 重新呈现的文本可以提高该质量,具体取决于字体。由于重新呈现需要时间,因此在某些情况下并不理想,例如对于经常更改大小的动画文本。
  • hintbehavior
    < … hintbehavior=“nohinting” />
  • Type: String
  • 配置字体的提示属性。可能的值:
  • default – 字体提供的提示行为。您还可以省略 hintbehavior 标签以使用默认提示。
  • nohinting – 禁用提示。
  • autohint – 从字体程序派生的提示行为。
  • hintstyle
    < … hintstyle=“light” />
  • Type: String
  • 配置提示文本的外观。可能的值:
  • normal – 字体提供的外观。您还可以省略 hintsytle 标签以使用默认提示。
  • light – 外观更模糊,可以更准确地表示字体中字形的形状。
  • smooth
    < … smooth=“blur” smooth_amount=“3” />
  • Type: String
  • 配置应用于字体的平滑处理。应用的平滑量由 smooth_amount 属性定义。可能的值:
  • blur – 将简单的毛刺效果应用于字体纹理中存储的字符或字形。使用 smooth_amount 设置用于模糊处理的迭代次数。
  • supersample – 通过 smooth_amount 对字体纹理中的字符或字形进行超级采样:1 为 2x, 和 2 为 4x.
  • none – 违约。未应用平滑。
  • smooth_amount
    < … smooth=“supersample” smooth_amount=“1” />
  • Type: Integer
  • 定义应用于字体的平滑量。应用的平滑类型由 smooth 属性定义。