FontVariation

继承: Font < Resource < RefCounted < Object

带有附加设置的字体变体。

描述

提供OpenType变体、模拟粗体/斜体以及OpenType功能和额外行间距等附加字体设置。

要使用模拟粗体字体变体:

var fv = FontVariation.new()
fv.base_font = load("res://BarlowCondensed-Regular.ttf")
fv.variation_embolden = 1.2
$Label.add_theme_font_override("font", fv)
$Label.add_theme_font_size_override("font_size", 64)

设置多个变体轴的坐标:

var fv = FontVariation.new();
var ts = TextServerManager.get_primary_interface()
fv.base_font = load("res://BarlowCondensed-Regular.ttf")
fv.variation_opentype = { ts.name_to_tag("wght"): 900, ts.name_to_tag("custom_hght"): 900 }

属性

方法

void

set_spacing(spacing: SpacingType, value: int)


属性说明

Font base_font 🔗

  • void set_base_font(value: Font)

  • Font get_base_font()

用于创建变体的基本字体。如果未设置,则使用默认的Theme字体。


float baseline_offset = 0.0 🔗

  • void set_baseline_offset(value: float)

  • float get_baseline_offset()

额外的基线偏移(作为字体高度的一小部分)。


Dictionary opentype_features = {} 🔗

一组OpenType功能标签。更多信息:OpenType功能标签


int spacing_bottom = 0 🔗

行底部的额外行间距(以像素为单位)。


int spacing_glyph = 0 🔗

图形字形之间的额外行间距。


int spacing_space = 0 🔗

空间字形的额外宽度。


int spacing_top = 0 🔗

行顶部的额外行间距(以像素为单位)。


float variation_embolden = 0.0 🔗

  • void set_variation_embolden(value: float)

  • float get_variation_embolden()

如果不等于零,则加粗字体轮廓。负值减少轮廓厚度。

注意:加粗字体可能具有自交叉轮廓,这将阻止MSDF字体和TextMesh正常工作。


int variation_face_index = 0 🔗

  • void set_variation_face_index(value: int)

  • int get_variation_face_index()

TrueType/OpenType集合文件中的活动人脸索引。


Dictionary variation_opentype = {} 🔗

字体OpenType变化坐标。更多信息:OpenType变化标签

注意:Dictionary使用OpenType标签作为键。变体轴可以通过标签(int,例如0x77678674)和名称(String,例如wght)来识别。一些轴可能可以通过多个名称访问。例如,wght指的是与权重相同的轴。另一方面,标签是唯一的。要在名称和标签之间进行转换,请使用TextServer.name_to_tag()TextServer.tag_to_name()

注意:要获得可用的字体变化轴,请使用Font.get_supported_variation_list()


Transform2D variation_transform = Transform2D(1, 0, 0, 1, 0, 0) 🔗

  • void set_variation_transform(value: Transform2D)

  • Transform2D get_variation_transform()

2D变换,应用于字体轮廓,可用于倾斜,翻转和旋转字形。

例如,要通过倾斜来模拟斜体字字体,请应用以下变换Transform2D(1.0, slant,0.0,1.0,0.0,0.0)


方法说明

void set_spacing(spacing: SpacingType, value: int) 🔗

spacing(参见SpacingType)的行间距设置为value(以像素为单位)(与字体大小无关)。