はじめに
Label
Labelとは?
テキスト(文字列)を表示するノード
看板に書かれた文字を見るように、Label はゲーム画面に「テキストを貼り付ける」ノード。看板のサイズや文字の色・大きさは自由に変えられます。
CanvasItem
このノードを使うべき場面
- ゲーム画面にスコアやHP、レベルなど数値を表示したい
- ゲーム開始画面や一時停止画面にメッセージやタイトルを表示したい
- ボタンやメニューアイテムにテキストラベルを付けたい
- 会話や説明文など、複数行のテキストを表示したい
- 画面上の位置を指定してUI要素としてテキストを配置したい
- リッチテキスト(複数の色や装飾が混在)を本格的に使いたい場合 →
RichTextLabelを検討 - 入力フィールドが必要な場合 →
LineEditやTextEditを使う
主なプロパティと機能
| プロパティ / メソッド | 説明 | 型 / 戻り値 |
|---|---|---|
text | 表示するテキスト | String |
modulate | テキストの色(RGB値) | Color |
add_theme_font_size_override() | フォントサイズを変更 | void |
alignment | テキストの配置(左揃え、中央、右揃え) | HorizontalAlignment |
custom_minimum_size | ノードが占める最小サイズ | Vector2 |
autowrap_mode | テキストが長いときの自動折り返し設定 | TextServer.AutowrapMode |
extends Node2D
func _ready():
# Labelノードを作成
var label = Label.new()
label.text = "Hello, Godot!"
label.position = Vector2(100, 50)
add_child(label)
func _process(delta):
# スコアを毎フレーム更新する例
$Label.text = "Score: %d" % score
text
もっと使いこなす:カスタマイズできるパラメータ
1. 文字の色を変える(modulate)
modulate
label.modulate = Color.RED # 赤
label.modulate = Color(1.0, 0.5, 0.0) # オレンジ(RGB値で指定)
label.modulate.a = 0.5 # 透明度を50%に
動的な色変更
2. フォントサイズを変える
label.add_theme_font_size_override("font_size", 32) # サイズを32に
3. テキストの配置を変える(alignment)
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER # 中央揃え
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT # 右揃え
4. テキストの自動折り返し
label.autowrap_mode = TextServer.AUTOWRAP_WORD
label.custom_minimum_size = Vector2(300, 0) # 幅を300に制限
5. ノードのサイズを明示的に指定
custom_minimum_size
label.custom_minimum_size = Vector2(200, 100) # 幅200、高さ100に固定
6. オフシット(相対位置)を使う
label.offset = Vector2(10, 5) # テキスト描画位置を右に10、下に5ピクシルずらす
まとめ
Labelノードはテキストを表示するシンプルで強力なノード
- テキストを更新するには
textプロパティに代入するだけ - 色やサイズ、配置はプロパティやメソッドで自由にカスタマイズ可能
- 複数のLabelを組み合わせてUI画面全体を構築できる
RichTextLabel
関連性の高いノード解説記事
- . Node
- . Node2D
- . Sprite2D
- . AnimatedSprite2D
- . CharacterBody2D
- . CollisionShape2D
- . Timer
- . Area2D
- . Camera2D
- . Label(このページ)
- . RichTextLabel
- . LineEdit
- . Button
- . HBoxContainer
- . VBoxContainer
この記事は Godot 4.x をもとに執筆しています。



コメント