無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 の、プロジェクトにフォントファイルを1つも追加していない状態でも利用できる FallBack フォントについて紹介します。
また、文字列(テキスト)をスクリプトだけで描画できる draw_string 関数の用例と使用結果についても紹介します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。
_draw イベント関数についての関連記事
文字を描画する関数を記述する CanvasItem 派生クラスで利用できる _draw イベント関数については以下の記事も参照してください。
FallBack フォントとは
GodotEngine では、さまざまなフォントをプロジェクトに追加して使用できます。
しかし、フォントを追加しないデフォルトの状態でテキスト(文字列)を描画したい場合のために FallBack フォントも用意されています。
Font fallback_font
The fallback font of every Control node and Theme resource. Used when no other value is available to the control.
すべてのコントロール ノードとテーマ リソースのフォールバック フォント。コントロールで使用できる他の値がない場合に使用されます。See also Theme.default_font.
ThemeDB — Godot Engine (4.1) documentation in English #fallback-font と Google 翻訳
フォールバックとは、ソフトウェアの場合、不測の事態の際に不完全でも処理を継続させるために、予備などを用いることを指します。
日本語では「縮退運転・縮退運用」と呼びます。
機器やソフトウェア、システムに異常が生じた際、性能や機能を制限したり、異常箇所を切り離したり、予備の機材などを使用するなどして、不完全ながらも処理や稼動を継続させることを意味します。
フォールバック – 三和コムテック|IBM iポータル
似ているリソースとして、Font.default_font もありますが、こちらは無効な場合もあり、 has_default_font 関数でその有効性を確認できます。
Font default_font
The default font of this theme resource. Used as the default value when trying to fetch a font resource that doesn’t exist in this theme or is in invalid state. If the default font is also missing or invalid, the engine fallback value is used
このテーマリソースのデフォルトのフォント。このテーマに存在しない、または無効な状態にあるフォント リソースを取得しようとするときに、デフォルト値として使用されます。デフォルトのフォントも見つからないか無効な場合は、エンジンのフォールバック値が使用されます。(see ThemeDB.fallback_font).
Use has_default_font to check if this value is valid.
Theme — Godot Engine (4.1) documentation in English #default-font と Google 翻訳
FallBack フォントを使用してテキストを描画する例
以下は、FallBack フォントと draw_string 関数を用いて、3つのテキストを描画した用例です。
※ draw_string 関数は _draw イベント関数で使用します。
新規シーンのトップノード Node2D にスクリプトを割り当てて、以下の処理を追加します。
# 再描画したい場合は queue_redraw 関数を呼び出してください。
func _draw():
draw_string(ThemeDB.fallback_font, Vector2(120, 60), "Hello, World!", HORIZONTAL_ALIGNMENT_CENTER, -1, 16, Color.GREEN)
draw_string(ThemeDB.fallback_font, Vector2(120, 240), "Hello, World!", HORIZONTAL_ALIGNMENT_CENTER, -1, 64, Color.GREEN)
draw_string(ThemeDB.fallback_font, Vector2(120, 300), "日本語も使えます!", HORIZONTAL_ALIGNMENT_CENTER, -1, 32, Color.GREEN)CanvasItem.draw_string 関数の引数はたくさんあるので、詳細については以下の公式の説明を参照してください。
用例では、色を指定する部分までの引数を指定しています。
void draw_string(font: Font, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const 🔗
Draws
textusing the specifiedfontat thepos(bottom-left corner using the baseline of the font). The text will have its color multiplied bymodulate. Ifwidthis greater than or equal to 0, the text will be clipped if it exceeds the specified width.指定されたフォントを使用してテキストを位置(フォントのベースラインを使用して左下隅)に描画します。テキストの色は modulate で乗算されます。 width が 0 以上の場合、テキストが指定された幅を超えると切り取られます。Example using the default project font:GDScriptC#
# If using this method in a script that redraws constantly, move the # `default_font` declaration to a member variable assigned in `_ready()` # so the Control is only created once. var default_font = ThemeDB.fallback_font var default_font_size = ThemeDB.fallback_font_size draw_string(default_font, Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)See also Font.draw_string.
CanvasItem — Godot Engine (stable) documentation in English #draw-string と Google 翻訳
テスト
F5 / F6 キーなどで draw_string で文字列を描画するシーンを実行します。
デフォルトで使える FallBack フォントは、半角文字はもちろんですが、日本語も使えて、フォントサイズを 64 まで大きくしてもきれいに描画されます。
※Godot くんのアイコン画像は、スプライトで描画しています。

まとめ
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 の、プロジェクトにフォントファイルを1つも追加していない状態でも利用できる FallBack フォントについて紹介しました。
また、文字列(テキスト)をスクリプトだけで描画できる draw_string 関数の用例と使用結果についても紹介しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- ThemeDB — Godot Engine (4.1) documentation in English #fallback-font
- Theme — Godot Engine (4.1) documentation in English #default-font
- CanvasItem — Godot Engine (stable) documentation in English
- CanvasItem — Godot Engine (stable) documentation in English #draw-string
- フォールバック – 三和コムテック|IBM iポータル
- Node2D — Godot Engine (4.x)の日本語のドキュメント
記事一覧 → Compota-Soft-Press

コメント