【Godot】GDScriptのテンプレートの作り方と実例紹介
はじめに
Godotでスクリプト作成時のスクリプトの状態を設定できるテンプレートの作成方法をまとめます。
実例
独自テンプレートを使用して作成すると、このようになります
# meta-name: 基本ノード
# meta-description: 基本のテンプレートです。
#*--------------- Extend ---------------*
extends _BASE_
#*--------------- Exported Fields ---------------*
#*--------------- Fields ---------------*
#*--------------- Events ---------------*
func _ready() -> void:
pass
func _process(_delta: float) -> void:
pass
#*--------------- Methods ---------------*
#*--------------- Signals ---------------*
ポイント
- 変数、関数などの種類ごとに区切り付けて可読性上げる
- シグナルの欄を一番下の方に用意しておくと、追加したときにいい感じに管理できる
- よく使うイベントをデフォルトで用意
作り方
基本的には下記リンク先にある程度まとまっています。
- テンプレートディレクトリに移動する
- 対象のノード名のフォルダを作成する
- .gdファイルを作成する
ディレクトリに移動
ディレクトリは下記参照です。
- Windows: %APPDATA%\Godot\script_templates\
- Linux: $HOME/.config/godot/script_templates/
- macOS: $HOME/Library/Application Support/Godot/script_templates/
(参照: https://docs.godotengine.org/ja/4.x/tutorials/scripting/creating_script_templates.html#editor-defined-templates)
実際のWindows端末だとこのようなパスです。
C:\Users\ユーザー名\AppData\Roaming\Godot\script_templates
対象ノードのテンプレート
対象のノードのテンプレートを作成したい場合、フォルダ名を対象のノードの名前にする必要があります。
テンプレートファイル作成
通常のGDScript同様、.gdファイルで作成します。
説明などの設定
ファイルの先頭に、テンプレートの作成に関する説明文などを指定することができます。
また、インデントのサイズの調整なども可能だそうです。
# meta-name: 基本ノード
# meta-description: 基本のテンプレートです。
適用されるとこんな感じになります。
プレースホルダー
基底クラスなどを指定できるプレースホルダーを利用することができます。
extends _BASE_
上記のように_BASE_
を指定すると、ノードに対して「スクリプトをアタッチ」したときに、自動的にそのノード名を指定してextends できるようになります。
extends Window
また、_CLASS_
を使用すると、GDScriptのファイル名を自動的にパスカルケースでファイル名にしてくれます
extends _BASE_
class_name _CLASS_
その他
プロジェクト用テンプレートの作成
プロジェクト限定で有効なテンプレートを作成することもできます。
プロジェクトのファイルシステムで、script_templates
フォルダを作成して、その中にフォルダ作成、ファイルで定義することで反映されます。
作成されたテンプレートは、「プロジェクト」の欄に表示されます。
テンプレート内で指定した型を削除する
GDScriptは動的型付け、静的型付けのどちらも半々くらいでサポートしています。
この仕様上、若干記法があやふやになりがちです。
そこで、テンプレート内に指定された戻り値などの型指定を削除することができる設定があります。
「型ヒントを追加」という設定をfalse
にすることで、テンプレート内の型を削除することができます。
設定パス:text_editor/completion/add_type_hints
この状態で作成すると、戻り値のvoid
などが自動的に削除されます。
ただし、一部の型は対応できていないそうです…!
extends Node
#*--------------- Events ---------------*
- func _ready():
pass
- func _process(_delta):
pass
# 引数の型がそのまま
- func _input(_event: InputEvent):
pass
さいごに
テンプレートでラクしてスクリプトを作成して、効率的にGDScriptを作成しましょう~!
Discussion