はじめに
RichTextLabel
RichTextLabelとは?
複数の色・装飾・レイアウトが混在したテキストを表示するノード
新聞や雑誌のように、見出しは大きく、重要な部分は目立つ色で、という「デザインされたテキスト」を画面に表示するノード。Labelはシンプルな黒板だとしたら、RichTextLabelは装飾された印刷物です。
Control
このノードを使うべき場面
- 会話ウィンドウでキャラクター名を色分けして表示したい
- アイテムの説明文で重要な単語だけを太字や色付けしたい
- ゲームのストーリーモードでリナレーションテキストを装飾したい
- ゲーム内ドキュメントやヘルプテキストに見出しとリスト形式で複数行のテキストを整形したい
- スコアボードやランキング画面で異なるフォントサイズやスタイルを混在させたい
- 単色で単純なテキストだけを表示する場合 →
Labelで十分 - ユーザーがテキストを編集・入力する必要がある場合 →
TextEditやLineEditを使う
主なプロパティと機能
| プロパティ / メソッド | 説明 | 型 / 戻り値 |
|---|---|---|
text | 表示するテキスト(BBCodeタグを含む) | String |
bbcode_enabled | BBCodeの解析を有効にするか | bool |
modulate | 全体的なテキストの色(RGB値) | Color |
fit_content_height | テキストの高さに合わせて自動でリサイズ | bool |
scroll_active | スクロール機能を有効にするか | bool |
custom_minimum_size | ノードが占める最小サイズ | Vector2 |
extends Node2D
func _ready():
# RichTextLabelノードを作成
var rich_label = RichTextLabel.new()
rich_label.bbcode_enabled = true
rich_label.text = "[color=red]Error:[/color] File not found"
rich_label.position = Vector2(50, 50)
rich_label.custom_minimum_size = Vector2(400, 200)
add_child(rich_label)
# スクリプトでテキストを更新する
$RichTextLabel.text = "[b]Score:[/b] [color=#FFD700]%d[/color]" % score
もっと使いこなす:カスタマイズできるパラメータ
1. 色付けタグ [color] で部分的に色を変える
[color]
rich_label.text = "[color=red]危険:[/color]敵が近づいています"
rich_label.text = "[color=#00FF00]成功:[/color]ミッション完了"
rich_label.text = "[color=Color(0.5, 0.5, 1.0)]冷静:[/color]落ち着いて行動"
2. 太字・イタリック [b]、[i] で装飾
rich_label.text = "ダメージ受けました。[b]特に胸部に深いダメージ[/b]です。"
rich_label.text = "[i]Note:[/i] このアイテムは一度だけ使用できます。"
rich_label.text = "[b][color=orange]⚠ 警告 ⚠[/color][/b]"
3. フォントサイズを変える [font_size]
rich_label.text = "[font_size=24]章:失われた秘宝[/font_size]\n"
rich_label.text += "長い冒険の果てに、彼らはついに..."
rich_label.text = "通常サイズ [font_size=12]注釈テキスト[/font_size]"
4. 改行制御と改行タグ
\n
# 手動で改行
rich_label.text = "1行目\n2行目\n3行目"
# タグで改行
rich_label.text = "段落1[br]段落2[br]段落3"
[br]
5. リスト表示とインデント
rich_label.text = "[b]装備可能なアイテム:[/b][br]"
rich_label.text += "・[color=#FF6347]赤い剣[/color] - 攻撃力 +5[br]"
rich_label.text += "・[color=#87CEEB]青い盾[/color] - 防御力 +3[br]"
rich_label.text += "・[color=#90EE90]緑のポーション[/color] - HP回復"
6. URLリンクタグ [url]
rich_label.text = "詳しくは[url=https://docs.godotengine.org/]公式ドキュメント[/url]を参照"
rich_label.meta_clicked.connect(_on_meta_clicked)
func _on_meta_clicked(meta):
print("クリックされた:", meta)
まとめ
RichTextLabelはLabelの強化版で、複雑な装飾を含むテキストを簡単に表示できるノード
- 色付け、太字、フォントサイズなど、複数の装飾をテキストに混在させられる
- BBCodeタグの形式を覚えるだけで、複雑な装飾テキストを簡単に作成可能
- 会話ウィンドウ、UI画面、ゲーム内ドキュメントなど、多くの場面で活躍する
入力
LineEdit
関連性の高いノード解説記事
- . Node
- . Node2D
- . Sprite2D
- . AnimatedSprite2D
- . CharacterBody2D
- . CollisionShape2D
- . Area2D
- . RigidBody2D
- . Camera2D
- . Label
- . RichTextLabel(このページ)
- . LineEdit
- . Button
- . HBoxContainer
- . VBoxContainer
この記事はGodot 4.xをもとに執筆しています。



コメント