Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

FontFile

Успадковує: Font < Resource < RefCounted < Object

Утримувати дані джерела шрифтів і попередньо відхилений кеш-пам'яті glyph, імпортований з динамічного або бітмапа.

Опис

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("size_font", 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 🔗

  • void set_antialiasing(value: FontAntialiasing)

  • FontAntialiasing get_antialiasing()

Шрифт антиалюзивний режим.


PackedByteArray data = PackedByteArray() 🔗

  • void set_data(value: PackedByteArray)

  • PackedByteArray get_data()

Зміст динамічного файлу джерела шрифту.

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 🔗

  • void set_fixed_size_scale_mode(value: FixedSizeScaleMode)

  • FixedSizeScaleMode get_fixed_size_scale_mode()

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


String font_name = "" 🔗

  • void set_font_name(value: String)

  • String get_font_name()

Ім'я родини шрифтів.


int font_stretch = 100 🔗

  • void set_font_stretch(value: int)

  • int get_font_stretch()

Розмір шрифту, у порівнянні з нормальною шириною. Відсоткова вартість між 50% і 200%.


BitField[FontStyle] font_style = 0 🔗

  • void set_font_style(value: BitField[FontStyle])

  • BitField[FontStyle] get_font_style()

Прапори стилю шрифту.


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, генеруйте карти для текстур шрифту.


Hinting hinting = 1 🔗

  • void set_hinting(value: Hinting)

  • Hinting get_hinting()

Режим натяження шрифту. Використовується тільки динамічними шрифтами.


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 необхідно встановити принаймні twice розмір найбільшого шрифту. 16 дозволяє визначити розміри до 8, щоб виглядати правильно.


int msdf_size = 48 🔗

  • void set_msdf_size(value: int)

  • int get_msdf_size()

Розмір шрифту джерела використовується для створення текстур MSDF. Найвищі значення дозволяють більш точність, але повільніше рендерити і вимагати більше пам'яті. Тільки збільшити це значення, якщо ви помітили видимий недолік точності в рендерингу glyph.


bool multichannel_signed_distance_field = false 🔗

  • void set_multichannel_signed_distance_field(value: bool)

  • bool is_multichannel_signed_distance_field()

Якщо встановити до true, glyphs всіх розмірів подаються за допомогою одного багатоканального пульта дистанційного поля (MSDF) з динамічних даних шрифтів. Оскільки цей підхід не спирається на растровий шрифт кожного разу його зміни розміру, це дозволяє переосмислити шрифт в режимі реального часу без штрафних характеристик. Текст також не буде виглядати зерно для Control, які масштабуються (або для Label3D, виданого з далекої відстані. Як знизу, підказка шрифту не доступна з MSDF. Недолік шрифту може призвести до меншої кількості хрустких і менш читаних шрифтів у невеликих розмірах.

Примітка: Якщо за допомогою контурів шрифтів, msdf_pixel_range повинна бути встановлена принаймні twice розмір найбільшого шрифту.

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


Dictionary opentype_feature_overrides = {} 🔗

  • void set_opentype_feature_overrides(value: Dictionary)

  • Dictionary get_opentype_feature_overrides()

Відкрито Функція типу встановлюється надряддя.


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 🔗

  • void set_subpixel_positioning(value: SubpixelPositioning)

  • SubpixelPositioning get_subpixel_positioning()

Режим позиціонування шрифту glyph. Підпіксельне позиціонування забезпечує формувальний текст та кращий кермінг для менших розмірів шрифтів, за вартістю використання більшої кількості пам'яті та швидкості растрової обробки нижнього шрифту. Використовуйте TextServer. SUBPIXEL_SETTINGING_AUTO для автоматичного включення його на основі розміру шрифту.


Описи методів

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) 🔗

Видаляє всі текстури з запису кешу шрифтів.

Примітка: Ця функція не видаляє гліфи, пов'язані з текстурою, використовуйте 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 🔗

Повернення glyph заздалегідь (зміщення наступного glyph).

Примітка: Перевага для контурів glyph є таким же, як основа glyph заздалегідь і не збережена.


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

Повертає індекс гліфів char, додатково модифікований version_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 🔗

Повертає копію масиву, що містить дані про упаковку glyph.


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.

Навігація: Цей метод повинен бути використаний тільки в редакторі або в випадках, коли вам потрібно завантажити зовнішні шрифти в режимі run-time, такі як шрифти, розташовані в каталозі 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) 🔗

Набори glyph заздалегідь (зміщення наступного glyph).

Примітка: Перевага для контурів glyph є таким же, як основа glyph заздалегідь і не збережена.


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) 🔗

Встановлює масив, що містить дані про упаковку glyph.


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

Набори 2D трансформуються, нанесені на шрифтові контури, можуть використовуватися для сланцевих, флипсових і поворотних гліфів.


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

Налаштовує координати варіації для вказаного запису кешу шрифту. Див. Font.get_supported_variation_list() для отримання додаткової інформації.