ラベル
この記事は Godot 3から Godot 4 へ内容の書き換え中です。 Godot4では存在しない変数、関数が含まれている場合があります。もしその場合はリポジトリのIssuesまでご報告ください。
課題
画面にテキストを表示したい。
解決策
スクリーンにテキストを表示する機会が増えるでしょう。例えば、タイトル表示やカウントダウンタイマー、スコアカウンターなどがその一例です。これらのほとんどは、Godotの Label ノードを使えば簡単に実装できます。
フォント操作について
はじめに、フォントファイルが必要になります。Godotのフォントサポートについては別のレシピで詳しく解説しますが、ここではTTFまたはOTF形式のフォントファイルを前提とします。ビットマップフォントを使用する場合は、関連するレシピを参照してください。
この例では、人気のある無料フォント「Roboto」を使用します。このフォントはGoogle Fontsで入手できます。こちらからもダウンロードできます。 Roboto_font.zip
ラベルの追加方法
シーンに新しい Labelノードを追加してください。インスペクターでは、ほとんどのプロパティが自明な内容になっています(マウスカーソルを合わせると説明が表示されます):
「テキスト」フィールドに任意の文字を入力して、表示スタイルを試してみます。デフォルトフォントが設定されていますが、かなりシンプルな(しかも小さい)デザインになっています。
DynamicFontの追加方法
フォントを追加するには。インスペクターで「カスタムフォント」セクションまでスクロールダウンし、展開してください。空の「フォント」プロパティで『新規ダイナミックフォント』を選択し、新しく表示されたDynamicFontをクリックしてさらに展開します。
フォントファイル(この例ではRoboto-Medium.ttfを使用しています)をフォントデータプロパティにドラッグするか、「読み込み」を選択して直接ファイルを指定します。調整すべきプロパティは複数ありますが、まずはサイズを少し大きくしてみます。
テキストの表示に与える影響を自由に調整してみてください。例えば、以下の画像では、2番目のラベルにフィルタープロパティが有効になっています。
色の調整
ラベルのフォントカラーは「カスタムカラー」セクションで調整できます。ここでは「フォントカラー」を変更できるほか、影の色を追加することもできます。影のプロパティは「カスタム定数」セクションで設定します。
動的に変化するテキスト表示
シーンに静的テキストのみが必要な場合、ここで完了です。ただし、ラベルを動的に更新する必要がある場合は、コード内でtextプロパティを使用して実装できます。
Timerノードがシーンに含まれている場合、以下のように操作できます。
extends Control
var counter = 0
func _ready():
$Label.text = str(counter)
func _on_Timer_timeout():
counter += 1
$Label.text = str(counter)
ラベルの使用例やUIノードとの連携方法については、関連レシピセクションをご覧ください。