Godot入門:RichTextLabelの使い方と活用法

Node解説

はじめに

RichTextLabel

RichTextLabelとは?

複数の色・装飾・レイアウトが混在したテキストを表示するノード

新聞や雑誌のように、見出しは大きく、重要な部分は目立つ色で、という「デザインされたテキスト」を画面に表示するノード。Labelはシンプルな黒板だとしたら、RichTextLabelは装飾された印刷物です。

Control

このノードを使うべき場面

  • 会話ウィンドウでキャラクター名を色分けして表示したい
  • アイテムの説明文で重要な単語だけを太字や色付けしたい
  • ゲームのストーリーモードでリナレーションテキストを装飾したい
  • ゲーム内ドキュメントやヘルプテキストに見出しとリスト形式で複数行のテキストを整形したい
  • スコアボードやランキング画面で異なるフォントサイズやスタイルを混在させたい
  • 単色で単純なテキストだけを表示する場合 → Label で十分
  • ユーザーがテキストを編集・入力する必要がある場合 → TextEditLineEdit を使う

主なプロパティと機能

プロパティ / メソッド説明型 / 戻り値
text表示するテキスト(BBCodeタグを含む)String
bbcode_enabledBBCodeの解析を有効にするか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

関連性の高いノード解説記事

この記事はGodot 4.xをもとに執筆しています。

コメント