【Godot】スクリプトテンプレートの使い方

GodotEngine

Godotでテンプレートファイルを作成する時の流れは以下の通りです。

  1. テンプレートファイルの設定パスに、適用したいノード名でフォルダを作成 (大文字,小文字の区別あり)
  2. 1.のフォルダ内に、適用したい言語の拡張子(.gd / .cs など)でテンプレートファイルを作成
  3. テンプレートファイルの動作設定(メタヘッダーの編集)
  4. テンプレートコードの編集

スクリプトテンプレートとは?

新しくスクリプトファイル(.gdなど)を作成した際に、自動的に挿入される初期コードのことです。
自分でテンプレートを設定することで、毎回使うコメントやベースコードなどを自動で挿入できます。

テンプレートを設定しておくことで、新しいスクリプト作成時に毎回同じコードを書かずに済み、より効率的な開発が可能になります。

テンプレートファイルの保存場所

スクリプトテンプレートは、テンプレートの利用範囲により以下二つの場所で管理します。

プロジェクト定義

テンプレートファイルの保存先(検索するパス)は、
 プロジェクト設定>エディタ>スクリプト>Templates Search Path で確認/設定が可能です。

※単に検索対象の設定となるため、設定値のフォルダが存在しない場合、新規作成等は行われず、無視されます。

エディタ設定(グローバル)

すべてのプロジェクトで共通して利用したい場合は、Godotエディタ側に設定を行います。
保存先となるパスはOS毎に異なり、以下のようになります。

OSパス
Windows %APPDATA%\Godot\script_templates\
Linux$HOME/.config/godot/script_templates/
MacOS$HOME/Library/Application Support/Godot/script_templates/

テンプレートファイルの作り方

テンプレートファイルを作成する時の流れは以下の通りです。

  1. テンプレートファイルの設定パスに適用したいノード名でフォルダを作成 (大文字,小文字の区別あり)
  2. 1.のフォルダ内に、適用したい言語の拡張子(.gd / .cs など)でテンプレートファイルを作成
  3. テンプレートファイルの動作設定(メタヘッダーの編集)
  4. テンプレートコードの編集

1. 適用ノード名でフォルダを作成

(プロジェクトまたはエディタの)テンプレートファイルの保存場所に、テンプレートファイルを適用したいノード名でフォルダを作成します。(Node や Controlなど。自作のクラスでも設定可能)
ここでのフォルダ名は大文字と小文字が区別されることと、保存場所(検索先)が誤っていると検出されないことに注意してください。

今回は Node クラスを例に作成を進めてみます。

2. テンプレートファイルの作成

1. のフォルダ内に、適用したいプログラム言語の拡張子で、テンプレートファイルを作成します。
GDScriptの場合は .gd 、C#ファイルの場合は .cs を指定します。(ファイル名は任意です)

3. テンプレートファイルの動作設定(メタヘッダーの編集)

テンプレートファイルのメタヘッダーによって、テンプレートファイルの動作設定を行います。
設定可能なメタヘッダーとデフォルトの設定は以下のようになっています。

メタヘッダー説明デフォルト値
# meta-name:テンプレート名称の設定ファイル名と同じ
# meta-description:テンプレートの説明空(説明なし)
# meta-default:ノードのデフォルトに設定false(無効)
# meta-space-indent:スペースインデント4

今回は説明の追記とノードのデフォルト設定を有効化を行います

Nodeを継承基としたスクリプト作成画面で、作成したテンプレートがデフォルトで選択されており、下部には説明が表示されることが確認できます。

4. テンプレートコードの編集

以降は、テンプレートファイルを編集し、コードの初期状態としたい記述をしていきます。

今回はNodeクラスに適当な関数を追加する形で構成してみます。(最終的なコードは以下の通りです)

# meta-description: テスト用に作成したNodeスクリプトテンプレートです
# meta-default: true

extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass


## テンプレートテスト用関数
func add_func():
	print("テンプレートで追加された関数が呼び出されました。")

テンプレートの使用

設定したクラスを継承するスクリプトの新規作成時に、「テンプレート」から選択することで、作成したテンプレートを適用することができます。

例で作成されたスクリプトを確認すると、テンプレートで追記した分の関数が確認できます。

エディタ設定>自動補完>型ヒントを追加 が無効となっている場合、
テンプレートの使用時、一部の型ヒントが自動で削除されることがあります。(:= は =へ置き換え)
(対象:int , String, Array[String], float, void)

表記を残したい場合は、以下設定を確認しておきましょう。

参考

スクリプトテンプレートについては以下公式ドキュメントページでも解説されています。

Creating script templates
Godot provides a way to use script templates as seen in the Script Create Dialog while creating a new script: A set of b...
おすすめの本①
おすすめの本➁(Godot)
GodotEngine
ひらまめ(hiramame)をフォローする

コメント

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