Godot4 print_rich 関数でBBCodeで装飾した文字列を出力

無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、URL リンクのついたテキストや、文字を太くしたり色を変えることができる BB Code を使える print_rich 関数を使って標準出力メッセージをわかりやすくする使用例を紹介します。
print 関数の中で、長くなった文字列出力結果を変えずに、折り返すために改行する方法も紹介します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。

BB Code によるテキストの修飾

BB Code によるテキストの修飾については以下の記事を参照してください。

print_rich 関数とは

print_rich 関数では BB Code を使ってテキストを修飾できます。
しかし、すべての BB Code を使えるわけではありません。

print_rich 関数で使用できる BB Code のタグは

  • b : 太字
  • i : イタリック体
  • u : 下線
  • s : 打消し線
  • indent : インデントを挿入します。 ol や ul の箇条書きでとられる幅と同じです。
  • code : スクリプトの1行のコードとして表記します。
  • url : リンク付きテキスト (URL のみ)
  • center : 中央寄せ
  • right : 右寄せ
  • color : 文字の色の指定
  • bgcolor : 文字の背景色の指定
  • fgcolor : 文字の前景色の指定

タグの詳細については公式ガイド「RichTextLabelのBBCode — Godot Engine (4.x)の日本語のドキュメント」等を参照してください。

また、指定できる色は、名前が付けられた以下の色に限定され、16 進数のカラーコードの指定はサポートされません

blackredgreenyellowbluemagentapinkpurplecyanwhiteorangegray
黒、赤、緑、黄、青、マゼンタ、ピンク、紫、シアン、白、オレンジ、グレー

void print_rich(…) vararg

Converts one or more arguments of any type to string in the best way possible and prints them to the console.

The following BBCode tags are supported: biusindentcodeurlcenterrightcolorbgcolorfgcolor.

Color tags only support the following named colors: blackredgreenyellowbluemagentapinkpurplecyanwhiteorangegray. Hexadecimal color codes are not supported.

URL tags only support URLs wrapped by a URL tag, not URLs with a different title.

When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Support for ANSI escape codes varies across terminal emulators, especially for italic and strikethrough. In standard output, code is represented with faint text but without any font change. Unsupported tags are left as-is in standard output.

任意の型の 1 つ以上の引数を可能な限り最良の方法で文字列に変換し、コンソールに出力します。

次の BBCode タグがサポートされています: b、i、u、s、indent、code、url、center、right、color、bgcolor、fgcolor。

カラー タグは、黒、赤、緑、黄、青、マゼンタ、ピンク、紫、シアン、白、オレンジ、グレーの名前付き色のみをサポートします。 16 進数のカラーコードはサポートされていません。

URL タグは、URL タグでラップされた URL のみをサポートし、異なるタイトルを持つ URL はサポートしません。

標準出力に出力する場合、サポートされている BBCode のサブセットは、端末エミュレータが表示できるように ANSI エスケープ コードに変換されます。 ANSI エスケープ コードのサポートは、特に斜体と取り消し線の場合、端末エミュレータによって異なります。標準出力では、コードは薄いテキストで表されますが、フォントは変更されません。サポートされていないタグは標準出力にそのまま残されます。
@GlobalScope — Godot Engine (4.x)の日本語のドキュメント method-print-rich と Google 翻訳

エラー・警告メッセージのために使用する場合は、 print, print_rich ではなく、 push_error, push_warning を推奨します。
これについては以下の記事を参照してください。

Windows では 10 以降、標準出力に ANSI エスケープコードを正しく表示します。

URL タグは URL のみを扱うと前述にありましたが、GodotEngine のエディタ上に表示する場合はテキストを指定できます

Note: Consider using push_error and push_warning to print error and warning messages instead of print or print_rich. This distinguishes them from print messages used for debugging purposes, while also displaying a stack trace when an error or warning is printed.

Note: On Windows, only Windows 10 and later correctly displays ANSI escape codes in standard output.

Note: Output displayed in the editor supports clickable [url=address]text[/url] tags. The [url] tag’s address value is handled by OS.shell_open when clicked.

注: エラーおよび警告メッセージを出力するには、print または print_rich の代わりに、push_error および Push_warning を使用することを検討してください。これにより、デバッグ目的で使用される印刷メッセージと区別されると同時に、エラーまたは警告が出力されるときにスタック トレースも表示されます。

注: Windows では、Windows 10 以降のみが標準出力に ANSI エスケープ コードを正しく表示します。

注: エディターに表示される出力は、クリック可能な [url=address]text[/url] タグをサポートしています。 [url]タグのアドレス値は、クリックされるとOS.shell_openによって処理されます。
@GlobalScope — Godot Engine (4.x)の日本語のドキュメント method-print-rich と Google 翻訳

print_rich 関数の使用例

以下の使用例では、リンク付きテキストを表示する url タグと、文字の色を変更させる color タグを使ってメッセージを装飾しています。
太字に文字を修飾する b タグも使いましたが、あまり変化は見られませんでした。

		print_rich("SakuraCrowdTileMapLayer.get_entered_tiles: \
[url=https://docs.godotengine.org/ja/4.x/classes/class_shape2d.html]Shape2D[/url]\
 の[color=red][b]リソースがありません。[/b][/color]")

文字列を途中で改行させながら記述するには \ をつけます

print 関数などの引数の文字列が長くなりすぎて折り返したい場合は、前述の使用例のように、改行の前に \ (バックスラッシュ) をつけます。
注意点として、\ をいれた改行の後は、インデントのタブも文字列に含まれるので、タブを削除して続けてください。

テスト

F5 キーで、このスクリプトを持っているシーンを実行すると、下図のように、下線のついたリンク付きテキストと、色が一部赤色に変更されたテキストが混ざったメッセージが表示されました。
色を一部変更することで、メッセージがわかりやすくなったと思います。

下線のついたリンク先テキストクリックすると、そのリンク先のサイトがウェブブラウザで開きました。

Godot4 print_rich 関数で BBCodeで修飾した文字列を標準出力する例.

まとめ

今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、URL リンクのついたテキストや、文字を太くしたり色を変えることができる BB Code を使える print_rich 関数を使って標準出力メッセージをわかりやすくする使用例を紹介しました。
print 関数の中で、長くなった文字列出力結果を変えずに、折り返すために改行する方法も紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました