記事修正
- 2025/12/5 Ver 1.1
シグナル表示、メソッド・プロパティ・シグナルクリックでコードの該当行を表示へ対応
GitHubのリンクを修正しました。
はじめに
Godot でスクリプトを触っていると、以下のことをもう少し手軽に確認したくなる場面があります。
- 今選択しているスクリプトのクラス名は?
- 継承している親クラスは?
- メソッド一覧をざっと見たい
- プロパティ一覧も確認したい
- コードをスクロールしなくても概要を把握したい
そこで今回、Godot Editor の Dock として
スクリプトのメタ情報を自動表示するプラグイン「Script Explorer」
を作成しました。
SE(Script Explorer)の名称でエディタに表示されます。
Script Explorer とは?
選択しているスクリプトファイルを解析して、以下を Dock に表示します:
| 項目 | 内容 |
|---|---|
| ファイル名 | 現在選択している .gd ファイル名 |
| クラス名(class_name) | スクリプト内で class_name が指定されていれば表示 |
| 継承元 | extends の対象 |
| メソッド一覧 | func で宣言されているもの |
| プロパティ一覧 | @export などの export 変数、var など |
リアルタイムで選択が切り替わると、自動で表示内容が更新されます。
プラグインフォルダ構成
addons/
└ script_explorer/
├ plugin.cfg
├ plugin.gd
├ dock.tscn
└ dock.gd
エディタでは "SE" という名称で Dock が追加されます。
実装ポイント
1. スクリプト変更監視
GodotEditor の以下の signal を利用:
EditorInterface.get_resource_filesystem().connect("filesystem_changed", _on_change)
または
EditorInterface.get_selection().connect("selection_changed", _on_selection_changed)
この2つを組み合わせて「エディタでスクリプトを開いた瞬間」に変更をフックします。
GDScript の AST を軽量にパース
Godot 4 では GDScriptAnalyzer が使えないため、正規表現ベースで自作パーサを作成しました。
抽出例:
var class_name_regex = r"class_name\s+([A-Za-z0-9_]+)"
var extends_regex = r"extends\s+([A-Za-z0-9_\.]+)"
var func_regex = r"func\s+([A-Za-z0-9_]+)"
var export_regex = r"@export\s+var\s+([A-Za-z0-9_]+)"
var var_regex = r"var\s+([A-Za-z0-9_]+)"
表示UI
インスペクターやノードと同じ個所に SE というタブ名で表示されます。
まとめ
Script Explorer は以下の課題を解決します:
- 大規模スクリプトで概要を把握しづらい
- class_name / extends を見失いがち
- 関数一覧を俯瞰したい
- export 変数を一目で確認したい
Godot エディタの作業効率を上げたい方、ぜひ使ってみてください!
✔ GitHub リンク
ダウンロードしてすぐ使えるリリース版は↓↓こちら↓↓
