無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 の GD スクリプトに定義した自作の関数や変数に ## から始まるドキュメンテーションコメントで利用できる文字を太字などに修飾したりリンクすることができる BB Code を公式サイトのサンプルを実際に入力して、リファレンスドキュメント(ヘルプ)でどのように表示されるかを紹介します。
※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。
前回の記事
Godot Engine 4 の GD スクリプトに ## から始まるドキュメンテーションコメントを記述して、クラスや関数について説明文を追加表示する手順と、そのリファレンスドキュメントの開き方を紹介しました。
BB Code サンプルの画像の見方
今回は、下図のように、自作のクラスの説明セクションに、太字修飾やリンクが設定できる BB Code のBB Code の記述例とその表示結果を「記述例→表示例」の形式で紹介します。
※このヘルプのもととなるドキュメンテーションコメントやリファレンスドキュメント(ヘルプ)の閲覧については前回の記事を参照してください。
BB Code の記述例は「GDScript documentation comments — Godot Engine (stable) documentation in English」を用いています。
クラスの説明のドキュメンテーションコメントと BB Code サンプル
クラスについて説明するドキュメンテーションコメントは、1行目の extends 継承元クラス名の次の行、または、そのあとに追記した class_name の後に記述できます。
※クラス名を指定しない場合はファイル名がクラスの名前の部分に表示されます。
extends Object
class_name SakuraCrowdUtil
## SakuraCrowd が作成したユーティリティ関数群です。
##
## 自作の static 関数群です。 数が増えたら、機能ごとに分けるかもしれません。
## 本スクリプトは自己責任でご使用ください。
##
## BB Code の[url=https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_documentation_comments.html]公式サイトのサンプル[/url]を以下に記述します。[br]
## ■ クラスへのリンク。[br]
## Move the [lb]Sprite2D[rb]. → Move the [Sprite2D].
## [br][br]
## ■ アノテーションへのリンク[br]
## See [lb]annotation @GDScript.@rpc[rb]. → See [annotation @GDScript.@rpc].[br]
## See [lb]annotation @GDScript.@export[rb]. → See [annotation @GDScript.@export].[br]
## [br][br]
## ■ 定数へのリンク[br]
## See [lb]constant Color.RED[rb]. → See [constant Color.RED].
## [br][br]
## ■ 列挙子へのリンク[br]
## See [lb]enum Mesh.ArrayType[rb]. → See [enum Mesh.ArrayType].
## [br][br]
## ■ メンバ変数・プロパティへのリンク[br]
## Get [lb]member Node2D.scale[rb]. → Get [member Node2D.scale].
## [br][br]
## ■ 関数へのリンク[br]
## Call [lb]method Node3D.hide[rb]. → Call [method Node3D.hide].
## [br][br]
## ■ コンストラクタへのリンク[br]
## Use [lb]constructor Color.Color[rb]. → Use [constructor Color.Color].
## [br][br]
## ■ 演算子へのリンク[br]
## Use [lb]operator Color.operator *[rb]. → Use [operator Color.operator *].
## [br][br]
## ■ シグナルへのリンク[br]
## Emit [lb]signal Node.renamed[rb]. → Emit [signal Node.renamed].
## [br][br]
## ■ theme item へのリンク[br]
## See [lb]theme_item Label.font[rb]. → See [theme_item Label.font].
## [br][br]
## ■ 引数名[br]
## Takes [lb]param size[rb] for the size. → Takes [param size] for the size.
## [br][br]
## ■ 改行[br]
## Line 1.[lb]br[rb]Line 2. → [br]
## Line 1.[br]
## Line 2.
## [br][br]
## ■ [lb] と [rb] を文字列として表記[br]
## [lb]lb[rb]b[lb]rb[rb]text[lb]lb[rb]/b[lb]rb[rb] → [lb]b[rb]text[lb]/b[rb]
## [br][br]
## ■ 太字[br]
## Do [lb]b[rb]not[lb]/b[rb] call this method. → Do [b]not[/b] call this method.
## [br][br]
## ■ イタリック体[br]
## Returns the [lb]i[rb]global[lb]/i[rb] position. → Returns the [i]global[/i] position.
## [br][br]
## ■ 下線[br]
## [lb]u[rb]Always[lb]/u[rb] use this method. → [u]Always[/u] use this method.
## [br][br]
## ■ 打消し線[br]
## [lb]s[rb]Outdated information.[lb]/s[rb] → [s]Outdated information.[/s]
## [br][br]
## ■ 文字の色[br]
## [lb]color=red[rb]Error![lb]/color[rb] → [color=red]Error![/color]
## [br][br]
## ■ フォント(プロジェクトにない場合は、エラーが下パネルの出力に表示されます)[br]
## ・そのフォント (mono.ttf) のパスが無効な場合[br]
## [lb]font=res://mono.ttf[rb]LICENSE[lb]/font[rb] → [font=res://mono.ttf]LICENSE[/font][br]
## ・そのフォント (mplus-1p-regular.ttf) のパスが有効な場合[br]
## [lb]font=res://mplus-1p-regular.ttf[rb]LICENSE[lb]/font[rb] → [font=res://mplus-1p-regular.ttf]LICENSE[/font]
## [br][br]
## ■ 画像[br]
## [lb]img width=32[rb]res://icon.svg[lb]/img[rb] → [img width=32]res://icon.svg[/img]
## [br][br]
## ■ URL リンク[br]
## [lb]url[rb]https://example.com[lb]/url[rb] → [url]https://example.com[/url][br]
## [lb]url=https://example.com[rb]Website[lb]/url[rb] → [url=https://example.com]Website[/url]
## [br][br]
## ■ 中央寄せ[br]
## [lb]center[rb]2 + 2 = 4[lb]/center[rb] → [center]2 + 2 = 4[/center]
## [br][br]
## ■ キーボード・マウス入力のガイド[br]
## Press [lb]kbd[rb]Ctrl + C[lb]/kbd[rb]. → Press [kbd]Ctrl + C[/kbd].
## [br][br]
## ■ コードの表記[br]
## Returns [lb]code[rb]true[lb]/code[rb]. → Returns [code]true[/code].
## [br][br]
## ■ 複数行のコードの表記[br]
## [lb]codeblock[rb][br]
## func greet(name: String) -> void:[br]
## print("Hello, wolrd! Hello, ", name)[br]
## return[br]
## [lb]codeblock[rb][br]
## [codeblock]
## func greet(name: String) -> void:
## print("Hello, wolrd! Hello, ", name)
## return
## [/codeblock]
## [br][br]
前述の BB Code を含むドキュメンテーションコメントから作られたリファレンスドキュメント(ヘルプ)を、メニュー「ヘルプ」→「ヘルプの検索」から自作クラスを選択して、表示した結果が以下です。
■の後にそのあとの BB Code の簡易説明を書きました。
その次の行に、「記述例 → 表示例」の形式で BB Code の結果を表示しています。
クラスへのリンクは単純に [クラス名] と [] で囲むだけですが、そのほかは、 HTML に似た形式で [キーワード パラメータ] の形式で、キーワードに応じたパラメータを入れることで、定数や関数へのリンクなどを指定できます。
一部タグのように囲む場合は [キーワード]囲むもの[/キーワード]と表記します。
改行は [br] で、 [] 自体を表記する場合は [lb] [rb] と記述します。
文字の太字修飾などの他に文字の色やフォントも指定できます。
※フォントはプロジェクトに追加したフォントのパスを指定します。有効でない場合は下パネルの出力にエラーメッセージが表示されます。
画像やサイトへの URL リンクも指定できます。
中央寄せや、キーボード・マウス入力の表記も指定できます。
スクリプトの用例を書く際は [code] 、複数行の場合は [codeblock] で囲みます。
関数の説明のドキュメンテーションコメントと BBCode サンプル
関数の前にドキュメンテーションコメントを書くことで、関数の説明をリファレンスドキュメント(ヘルプ)に表示できます。
## [b]プロパティを全てテキストで出力します。[/b][br]
## [br]
## [param object] の持つプロパティの名前と値の文字列を1行ずつ出力します。[br]
## 形式については [method SakuraCrowdUtil.get_all_property_name_and_value] 関数を参照してください。[br]
static func print_all_property_name_and_value(object: Object) -> void:
# object のプロパティ1つずつを文字列として格納した配列を取得します。
var string_array: Array[String] = get_all_property_name_and_value(object)
# プロパティの文字列を1行ずつ(プラパティ1つずつ)出力します。
for string in string_array:
print(string)
return
extend または class_name の下のドキュメンテーションコメントでは、最初の1行目がクラスの簡易説明で、空行の後の3行目から説明文のセクションに分かれましたが、関数のドキュメンテーションではその区別はありませんでした。
そのため、[b] で1行目を太字にしたり [br] で改行をいれています。
関数の引数は [param 引数名] で薄い青色の文字に修飾できますが、これは水色のリンクできる文字列とは異なり、リンクはできません。
しかし、引数であることが識別しやすくなり、説明が読みやすくなると思います。
BB Code は RichTextLabel などでも使用可能
BB Code は、 GUI のひとつ RichTextLabel のテキストでも利用可能です。
詳細については、公式サイト「RichTextLabelのBBCode — Godot Engine (4.x)の日本語のドキュメント」を参照してください。
まとめ
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 の GD スクリプトに定義した自作の関数や変数に ## から始まるドキュメンテーションコメントで利用できる文字を太字などに修飾したりリンクすることができる BB Code を公式サイトのサンプルを実際に入力して、リファレンスドキュメント(ヘルプ)でどのように表示されるかを紹介しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- GDScript documentation comments — Godot Engine (stable) documentation in English
- RichTextLabel — Godot Engine (4.x)の日本語のドキュメント
- RichTextLabelのBBCode — Godot Engine (4.x)の日本語のドキュメント
記事一覧 → Compota-Soft-Press
コメント