FontFile

Наследует: Font < Resource < RefCounted < Object

Содержит исходные данные шрифта и кэш предварительно отрисованных глифов, импортированных из динамического или растрового шрифта.

Описание

FontFile содержит набор глифов для представления символов Unicode, импортированных из файла шрифта, а также кэш растрированных глифов и набор резервных Font-ов для использования.

Используйте FontVariation для доступа к определенной вариации шрифта OpenType, создания имитации жирного/наклонного начертания и рисования строк текста.

Для более сложной обработки текста используйте FontVariation вместе с TextLine или TextParagraph.

Поддерживаемые форматы шрифтов:

  • Динамический импортер шрифтов: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm).

  • Импортер растровых шрифтов: AngelCode BMFont (.fnt, .font), текстовые и двоичные (версия 3) форматы.

  • Импортер шрифтов моноширинных изображений: все поддерживаемые форматы изображений.

Примечание: Символ — это символ, который представляет элемент (букву, цифру и т. д.) абстрактным образом.

Примечание: Глиф — это битовая карта или форма, используемая для рисования одного или нескольких символов в зависимости от контекста. Индексы глифов привязаны к определенному источнику данных шрифта.

Примечание: Если ни один из источников данных шрифта не содержит глифов для символа, используемого в строке, рассматриваемый символ будет заменен полем, отображающим его шестнадцатеричный код.

var f = load("res://BarlowCondensed-Bold.ttf")
$Label.add_theme_font_override("font", f)
$Label.add_theme_font_size_override("font_size", 64)

Обучающие материалы

Свойства

bool

allow_system_fallback

true

FontAntialiasing

antialiasing

1

PackedByteArray

data

PackedByteArray()

bool

disable_embedded_bitmaps

true

int

fixed_size

0

FixedSizeScaleMode

fixed_size_scale_mode

0

String

font_name

""

int

font_stretch

100

BitField[FontStyle]

font_style

0

int

font_weight

400

bool

force_autohinter

false

bool

generate_mipmaps

false

Hinting

hinting

1

bool

keep_rounding_remainders

true

bool

modulate_color_glyphs

false

int

msdf_pixel_range

16

int

msdf_size

48

bool

multichannel_signed_distance_field

false

Dictionary

opentype_feature_overrides

{}

float

oversampling

0.0

String

style_name

""

SubpixelPositioning

subpixel_positioning

1

Методы

void

clear_cache()

void

clear_glyphs(cache_index: int, size: Vector2i)

void

clear_kerning_map(cache_index: int, size: int)

void

clear_size_cache(cache_index: int)

void

clear_textures(cache_index: int, size: Vector2i)

float

get_cache_ascent(cache_index: int, size: int) const

int

get_cache_count() const

float

get_cache_descent(cache_index: int, size: int) const

float

get_cache_scale(cache_index: int, size: int) const

float

get_cache_underline_position(cache_index: int, size: int) const

float

get_cache_underline_thickness(cache_index: int, size: int) const

int

get_char_from_glyph_index(size: int, glyph_index: int) const

float

get_embolden(cache_index: int) const

float

get_extra_baseline_offset(cache_index: int) const

int

get_extra_spacing(cache_index: int, spacing: SpacingType) const

int

get_face_index(cache_index: int) const

Vector2

get_glyph_advance(cache_index: int, size: int, glyph: int) const

int

get_glyph_index(size: int, char: int, variation_selector: int) const

PackedInt32Array

get_glyph_list(cache_index: int, size: Vector2i) const

Vector2

get_glyph_offset(cache_index: int, size: Vector2i, glyph: int) const

Vector2

get_glyph_size(cache_index: int, size: Vector2i, glyph: int) const

int

get_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int) const

Rect2

get_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int) const

Vector2

get_kerning(cache_index: int, size: int, glyph_pair: Vector2i) const

Array[Vector2i]

get_kerning_list(cache_index: int, size: int) const

bool

get_language_support_override(language: String) const

PackedStringArray

get_language_support_overrides() const

bool

get_script_support_override(script: String) const

PackedStringArray

get_script_support_overrides() const

Array[Vector2i]

get_size_cache_list(cache_index: int) const

int

get_texture_count(cache_index: int, size: Vector2i) const

Image

get_texture_image(cache_index: int, size: Vector2i, texture_index: int) const

PackedInt32Array

get_texture_offsets(cache_index: int, size: Vector2i, texture_index: int) const

Transform2D

get_transform(cache_index: int) const

Dictionary

get_variation_coordinates(cache_index: int) const

Error

load_bitmap_font(path: String)

Error

load_dynamic_font(path: String)

void

remove_cache(cache_index: int)

void

remove_glyph(cache_index: int, size: Vector2i, glyph: int)

void

remove_kerning(cache_index: int, size: int, glyph_pair: Vector2i)

void

remove_language_support_override(language: String)

void

remove_script_support_override(script: String)

void

remove_size_cache(cache_index: int, size: Vector2i)

void

remove_texture(cache_index: int, size: Vector2i, texture_index: int)

void

render_glyph(cache_index: int, size: Vector2i, index: int)

void

render_range(cache_index: int, size: Vector2i, start: int, end: int)

void

set_cache_ascent(cache_index: int, size: int, ascent: float)

void

set_cache_descent(cache_index: int, size: int, descent: float)

void

set_cache_scale(cache_index: int, size: int, scale: float)

void

set_cache_underline_position(cache_index: int, size: int, underline_position: float)

void

set_cache_underline_thickness(cache_index: int, size: int, underline_thickness: float)

void

set_embolden(cache_index: int, strength: float)

void

set_extra_baseline_offset(cache_index: int, baseline_offset: float)

void

set_extra_spacing(cache_index: int, spacing: SpacingType, value: int)

void

set_face_index(cache_index: int, face_index: int)

void

set_glyph_advance(cache_index: int, size: int, glyph: int, advance: Vector2)

void

set_glyph_offset(cache_index: int, size: Vector2i, glyph: int, offset: Vector2)

void

set_glyph_size(cache_index: int, size: Vector2i, glyph: int, gl_size: Vector2)

void

set_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int, texture_idx: int)

void

set_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int, uv_rect: Rect2)

void

set_kerning(cache_index: int, size: int, glyph_pair: Vector2i, kerning: Vector2)

void

set_language_support_override(language: String, supported: bool)

void

set_script_support_override(script: String, supported: bool)

void

set_texture_image(cache_index: int, size: Vector2i, texture_index: int, image: Image)

void

set_texture_offsets(cache_index: int, size: Vector2i, texture_index: int, offset: PackedInt32Array)

void

set_transform(cache_index: int, transform: Transform2D)

void

set_variation_coordinates(cache_index: int, variation_coordinates: Dictionary)


Описания свойств

bool allow_system_fallback = true 🔗

  • void set_allow_system_fallback(value: bool)

  • bool is_allow_system_fallback()

Если задано значение true, системные шрифты могут автоматически использоваться в качестве резервных.


FontAntialiasing antialiasing = 1 🔗

Способ сглаживания шрифтов.


PackedByteArray data = PackedByteArray() 🔗

Содержимое исходного файла динамического шрифта.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedByteArray for more details.


bool disable_embedded_bitmaps = true 🔗

  • void set_disable_embedded_bitmaps(value: bool)

  • bool get_disable_embedded_bitmaps()

Если задано значение true, загрузка встроенного растрового изображения шрифта отключена (только растровые и цветные шрифты игнорируют это свойство).


int fixed_size = 0 🔗

  • void set_fixed_size(value: int)

  • int get_fixed_size()

Размер шрифта, используется только для растровых шрифтов.


FixedSizeScaleMode fixed_size_scale_mode = 0 🔗

Режим масштабирования, используемый только для растровых шрифтов с fixed_size больше нуля.


String font_name = "" 🔗

Название семейства шрифтов.


int font_stretch = 100 🔗

  • void set_font_stretch(value: int)

  • int get_font_stretch()

Степень растяжения шрифта по сравнению с нормальной шириной. Процентное значение между 50% и 200%.


BitField[FontStyle] font_style = 0 🔗

Флаги стилей шрифта.


int font_weight = 400 🔗

  • void set_font_weight(value: int)

  • int get_font_weight()

Насыщенность (жирность) шрифта. Значение в диапазоне 100...999, нормальная насыщенность шрифта 400, полужирная насыщенность шрифта 700.


bool force_autohinter = false 🔗

  • void set_force_autohinter(value: bool)

  • bool is_force_autohinter()

Если установлено значение true, поддерживается и предпочтительнее встроенного хинтинга шрифта. Используется только динамическими шрифтами (шрифты MSDF не поддерживают хинтинг).


bool generate_mipmaps = false 🔗

  • void set_generate_mipmaps(value: bool)

  • bool get_generate_mipmaps()

Если установлено значение true, будут сгенерированы MIP-текстуры для текстур шрифтов.


Hinting hinting = 1 🔗

Режим подсказки шрифта. Используется только для шрифтов диктора.


bool keep_rounding_remainders = true 🔗

  • void set_keep_rounding_remainders(value: bool)

  • bool get_keep_rounding_remainders()

Если установлено значение true, при выравнивании глифов по границам пикселей остатки округления накапливаются для обеспечения более равномерного распределения глифов. Этот параметр не действует, если включено субпиксельное позиционирование.


bool modulate_color_glyphs = false 🔗

  • void set_modulate_color_glyphs(value: bool)

  • bool is_modulate_color_glyphs()

Если установлено значение true, цветовая модуляция применяется при рисовании цветных глифов, в противном случае она применяется только к монохромным глифам.


int msdf_pixel_range = 16 🔗

  • void set_msdf_pixel_range(value: int)

  • int get_msdf_pixel_range()

Ширина диапазона вокруг фигуры между минимальным и максимальным представимым расстоянием со знаком. При использовании контуров шрифта msdf_pixel_range должен быть установлен как минимум в дважды размера самого большого контура шрифта. Значение msdf_pixel_range по умолчанию 16 позволяет контурам размером до 8 выглядеть правильно.


int msdf_size = 48 🔗

  • void set_msdf_size(value: int)

  • int get_msdf_size()

Исходный размер шрифта, используемый для генерации текстур MSDF. Более высокие значения обеспечивают большую точность, но медленнее отрисовываются и требуют больше памяти. Увеличивайте это значение только в том случае, если вы заметили видимую неточность в отрисовке глифов.


bool multichannel_signed_distance_field = false 🔗

  • void set_multichannel_signed_distance_field(value: bool)

  • bool is_multichannel_signed_distance_field()

Если установлено значение true, глифы всех размеров визуализируются с использованием одного многоканального поля знакового расстояния (MSDF), сгенерированного из динамических векторных данных шрифта. Поскольку этот подход не полагается на растеризацию шрифта каждый раз при изменении его размера, это позволяет изменять размер шрифта в реальном времени без потери производительности. Текст также не будет выглядеть зернистым для Control, которые масштабируются в уменьшенном масштабе (или для Label3D, просматриваемых с большого расстояния). Недостатком является то, что хинтинг шрифтов недоступен в MSDF. Отсутствие хинтингов шрифтов может привести к менее четким и менее читаемым шрифтам при малых размерах.

Примечание: При использовании контуров шрифтов msdf_pixel_range должен быть установлен как минимум в двойной размер самого большого контура шрифта.

Примечание: Рендеринг шрифтов MSDF некорректно визуализирует глифы с перекрывающимися фигурами. Перекрывающиеся формы недопустимы по стандарту OpenType, но все еще часто встречаются во многих файлах шрифтов, особенно в тех, которые конвертируются Google Fonts. Чтобы избежать проблем с перекрывающимися глифами, рассмотрите возможность загрузки файла шрифта непосредственно из типографского цеха, а не полагайтесь на Google Fonts.


Dictionary opentype_feature_overrides = {} 🔗

  • void set_opentype_feature_overrides(value: Dictionary)

  • Dictionary get_opentype_feature_overrides()

Переопределение набора функций шрифта OpenType.


float oversampling = 0.0 🔗

  • void set_oversampling(value: float)

  • float get_oversampling()

Положительное значение переопределяет коэффициент передискретизации области просмотра, в которой используется этот шрифт. См. Viewport.oversampling. Это значение не переопределяет параметр oversampling методов draw_*.


String style_name = "" 🔗

  • void set_font_style_name(value: String)

  • String get_font_style_name()

Имя стиля шрифта.


SubpixelPositioning subpixel_positioning = 1 🔗

Режим субпиксельного позиционирования глифа шрифта. Субпиксельное позиционирование обеспечивает более четкий текст и лучший кернинг для шрифтов меньшего размера за счет более высокого использования памяти и более низкой скорости растеризации шрифта. Используйте TextServer.SUBPIXEL_POSITIONING_AUTO для автоматического включения на основе размера шрифта.


Описания метода

void clear_cache() 🔗

Удаляет все записи кэша шрифтов.


void clear_glyphs(cache_index: int, size: Vector2i) 🔗

Удаляет всю визуализированную информацию о глифах из записи кэша.

Примечание: Эта функция не удалит текстуры, связанные с глифами, используйте remove_texture(), чтобы удалить их вручную.


void clear_kerning_map(cache_index: int, size: int) 🔗

Удаляет все переопределения кернинга.


void clear_size_cache(cache_index: int) 🔗

Удаляет все размеры шрифтов из записи кэша.


void clear_textures(cache_index: int, size: Vector2i) 🔗

Удаляет все текстуры из записи кэша шрифтов.

Примечание: Эта функция не удалит глифы, связанные с текстурой, используйте remove_glyph(), чтобы удалить их вручную.


float get_cache_ascent(cache_index: int, size: int) const 🔗

Возвращает высоту шрифта (количество пикселей над базовой линией).


int get_cache_count() const 🔗

Возвращает количество записей кэша шрифтов.


float get_cache_descent(cache_index: int, size: int) const 🔗

Возвращает спуск шрифта (количество пикселей ниже базовой линии).


float get_cache_scale(cache_index: int, size: int) const 🔗

Возвращает коэффициент масштабирования цветного растрового шрифта.


float get_cache_underline_position(cache_index: int, size: int) const 🔗

Возвращает смещение подчеркивания в пикселях относительно базовой линии.


float get_cache_underline_thickness(cache_index: int, size: int) const 🔗

Возвращает толщину подчеркивания в пикселях.


int get_char_from_glyph_index(size: int, glyph_index: int) const 🔗

Возвращает код символа, связанный с glyph_index, или 0, если glyph_index недействителен. См. get_glyph_index().


float get_embolden(cache_index: int) const 🔗

Возвращает жирность, если не равно нулю, жирнее контуры шрифта. Отрицательные значения уменьшают толщину контура.


float get_extra_baseline_offset(cache_index: int) const 🔗

Возвращает дополнительное смещение базовой линии (как долю высоты шрифта).


int get_extra_spacing(cache_index: int, spacing: SpacingType) const 🔗

Возвращает интервал для spacing в пикселях (не относительно размера шрифта).


int get_face_index(cache_index: int) const 🔗

Возвращает активный индекс начертания в коллекции TrueType / OpenType.


Vector2 get_glyph_advance(cache_index: int, size: int, glyph: int) const 🔗

Возвращает продвижение глифа (смещение следующего глифа).

Примечание: Продвижение для контуров глифов такое же, как и базовое продвижение глифа, и не сохраняется.


int get_glyph_index(size: int, char: int, variation_selector: int) const 🔗

Возвращает индекс глифа char, при необходимости измененный variation_selector.


PackedInt32Array get_glyph_list(cache_index: int, size: Vector2i) const 🔗

Возвращает список отрисованных глифов в записи кэша.


Vector2 get_glyph_offset(cache_index: int, size: Vector2i, glyph: int) const 🔗

Возвращает смещение глифа от базовой линии.


Vector2 get_glyph_size(cache_index: int, size: Vector2i, glyph: int) const 🔗

Возвращает размер глифа.


int get_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int) const 🔗

Возвращает индекс кэшированной текстуры, содержащей глиф.


Rect2 get_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int) const 🔗

Возвращает прямоугольник в кэшированной текстуре, содержащий глиф.


Vector2 get_kerning(cache_index: int, size: int, glyph_pair: Vector2i) const 🔗

Возвращает кернинг для пары глифов.


Array[Vector2i] get_kerning_list(cache_index: int, size: int) const 🔗

Возвращает список переопределений кернинга.


bool get_language_support_override(language: String) const 🔗

Возвращает true, если для language включена поддержка переопределения.


PackedStringArray get_language_support_overrides() const 🔗

Возвращает список переопределений поддержки языка.


bool get_script_support_override(script: String) const 🔗

Возвращает true, если для script включена поддержка переопределения.


PackedStringArray get_script_support_overrides() const 🔗

Возвращает список переопределений поддержки скриптов.


Array[Vector2i] get_size_cache_list(cache_index: int) const 🔗

Возвращает список размеров шрифтов в кэше. Каждый размер — Vector2i с размером шрифта и размером контура.


int get_texture_count(cache_index: int, size: Vector2i) const 🔗

Возвращает количество текстур, используемых записью кэша шрифтов.


Image get_texture_image(cache_index: int, size: Vector2i, texture_index: int) const 🔗

Возвращает копию изображения текстуры кэша шрифта.


PackedInt32Array get_texture_offsets(cache_index: int, size: Vector2i, texture_index: int) const 🔗

Возвращает копию массива, содержащего данные упаковки глифов.


Transform2D get_transform(cache_index: int) const 🔗

Возвращает 2D-преобразование, применяемое к контурам шрифта, может использоваться для наклона, переворачивания и поворота глифов.


Dictionary get_variation_coordinates(cache_index: int) const 🔗

Возвращает координаты вариации для указанной записи кэша шрифта. См. Font.get_supported_variation_list() для получения дополнительной информации.


Error load_bitmap_font(path: String) 🔗

Загружает растровый шрифт AngelCode BMFont (.fnt, .font) из файла path.

Предупреждение: Этот метод следует использовать только в редакторе или в случаях, когда вам нужно загрузить внешние шрифты во время выполнения, например шрифты, расположенные в каталоге user://.


Error load_dynamic_font(path: String) 🔗

Загружает динамический шрифт TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) или Type 1 (.pfb, .pfm) из файла path.

Предупреждение: Этот метод следует использовать только в редакторе или в случаях, когда вам нужно загрузить внешние шрифты во время выполнения, например шрифты, расположенные в каталоге user://.


void remove_cache(cache_index: int) 🔗

Удаляет указанную запись кэша шрифтов.


void remove_glyph(cache_index: int, size: Vector2i, glyph: int) 🔗

Удаляет указанную визуализированную информацию о глифах из записи кэша.

Примечание: Эта функция не удалит текстуры, связанные с глифами, используйте remove_texture(), чтобы удалить их вручную.


void remove_kerning(cache_index: int, size: int, glyph_pair: Vector2i) 🔗

Удаляет переопределение кернинга для пары глифов.


void remove_language_support_override(language: String) 🔗

Удалить переопределение языковой поддержки.


void remove_script_support_override(script: String) 🔗

Удаляет переопределение поддержки скриптов.


void remove_size_cache(cache_index: int, size: Vector2i) 🔗

Удаляет указанный размер шрифта из записи кэша.


void remove_texture(cache_index: int, size: Vector2i, texture_index: int) 🔗

Удаляет указанную текстуру из записи кэша.

Примечание: Эта функция не удалит глифы, связанные с текстурой. Удалите их вручную с помощью remove_glyph().


void render_glyph(cache_index: int, size: Vector2i, index: int) 🔗

Отображает указанный глиф в текстуре кэша шрифта.


void render_range(cache_index: int, size: Vector2i, start: int, end: int) 🔗

Отображает диапазон символов в текстуру кэша шрифта.


void set_cache_ascent(cache_index: int, size: int, ascent: float) 🔗

Устанавливает высоту шрифта (количество пикселей над базовой линией).


void set_cache_descent(cache_index: int, size: int, descent: float) 🔗

Устанавливает спуск шрифта (количество пикселей ниже базовой линии).


void set_cache_scale(cache_index: int, size: int, scale: float) 🔗

Устанавливает коэффициент масштабирования цветного растрового шрифта.


void set_cache_underline_position(cache_index: int, size: int, underline_position: float) 🔗

Устанавливает смещение подчеркивания в пикселях относительно базовой линии.


void set_cache_underline_thickness(cache_index: int, size: int, underline_thickness: float) 🔗

Задает толщину подчеркивания в пикселях.


void set_embolden(cache_index: int, strength: float) 🔗

Устанавливает жирность, если не равно нулю, жирнее контуры шрифта. Отрицательные значения уменьшают толщину контура.


void set_extra_baseline_offset(cache_index: int, baseline_offset: float) 🔗

Устанавливает дополнительное смещение базовой линии (как часть высоты шрифта).


void set_extra_spacing(cache_index: int, spacing: SpacingType, value: int) 🔗

Устанавливает интервал для spacing на value в пикселях (не относительно размера шрифта).


void set_face_index(cache_index: int, face_index: int) 🔗

Устанавливает активный индекс начертания в коллекции TrueType / OpenType.


void set_glyph_advance(cache_index: int, size: int, glyph: int, advance: Vector2) 🔗

Устанавливает смещение глифа (смещение следующего глифа).

Примечание: Смещение для контуров глифов такое же, как и базовое смещение глифа, и не сохраняется.


void set_glyph_offset(cache_index: int, size: Vector2i, glyph: int, offset: Vector2) 🔗

Устанавливает смещение глифа от базовой линии.


void set_glyph_size(cache_index: int, size: Vector2i, glyph: int, gl_size: Vector2) 🔗

Задает размер глифа.


void set_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int, texture_idx: int) 🔗

Устанавливает индекс кэшированной текстуры, содержащей глиф.


void set_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int, uv_rect: Rect2) 🔗

Устанавливает прямоугольник в кэшированной текстуре, содержащей глиф.


void set_kerning(cache_index: int, size: int, glyph_pair: Vector2i, kerning: Vector2) 🔗

Устанавливает кернинг для пары глифов.


void set_language_support_override(language: String, supported: bool) 🔗

Добавляет переопределение для Font.is_language_supported().


void set_script_support_override(script: String, supported: bool) 🔗

Добавляет переопределение для Font.is_script_supported().


void set_texture_image(cache_index: int, size: Vector2i, texture_index: int, image: Image) 🔗

Устанавливает изображение текстуры кэша шрифта.


void set_texture_offsets(cache_index: int, size: Vector2i, texture_index: int, offset: PackedInt32Array) 🔗

Устанавливает массив, содержащий данные упаковки глифов.


void set_transform(cache_index: int, transform: Transform2D) 🔗

Задает 2D-преобразование, применяемое к контурам шрифта, может использоваться для наклона, переворачивания и поворота глифов.


void set_variation_coordinates(cache_index: int, variation_coordinates: Dictionary) 🔗

Устанавливает координаты вариации для указанной записи кэша шрифта. См. Font.get_supported_variation_list() для получения дополнительной информации.