無料・軽快な 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
text
using the specifiedfont
at thepos
(bottom-left corner using the baseline of the font). The text will have its color multiplied bymodulate
. Ifwidth
is 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
コメント