スクリプトテンプレートの作成
Godot は新しいスクリプトを作成するときの スクリプト作成 ダイアログに表示される、スクリプト テンプレートを追加することができます。
エディタには一連のビルトインのスクリプトテンプレートが提供されていますが、プロジェクトごとおよびエディタースコープの両方で、新しいテンプレートを作成してデフォルトで設定することもできます。
テンプレートは特定のノード型にリンクされているため、スクリプトを作成するとその特定のノード、またはそのベースクラスに対応するテンプレートのみが表示されます。たとえば CharacterBody3D のスクリプトを作成している場合は、CharacterBody3D、Node3D、Nodeに対して定義されたテンプレートのみが表示されます。
テンプレートを見つける
テンプレートを管理できる場所は2つあります。
エディタ定義のテンプレート
これは、あらゆるプロジェクトを通じてグローバルに利用できます。このテンプレートの保存場所は、OS ごとに決まります。
Windows:
%APPDATA%\Godot\script_templates\Linux:
$HOME/.config/godot/script_templates/macOS:
$HOME/Library/Application Support/Godot/script_templates/
Steam など公式 Web サイト以外の場所から Godot を入手している場合、フォルダーは別の場所にある可能性があります。 Godot エディタを使用して見つけることができます。 エディター > エディターのデータ / 設定フォルダーを開く を選択すると、ファイルブラウザでフォルダが開きます。そのフォルダー内に script_templates フォルダーがあります。
プロジェクト定義のテンプレート
The default path to search for templates is the
res://script_templates/ directory. The path can be changed by configuring the project setting
Editor > Script > Templates Search Path,
both via code and the editor.
プロジェクト内に script_templates ディレクトリが見つからない場合は、単に無視されます。
テンプレートの構成と命名
エディタ定義のテンプレートとプロジェクト定義のテンプレートはどちらも次のように構成されています。
template_path/node_type/file.extension
それぞれ単語の役割は下記の通り:
template_pathis one of the 2 locations discussed in the previous two sections.node_typeis the node it will apply to (for example, Node, or CharacterBody3D), This is case-sensitive. If a script isn't in the propernode_typefolder, it won't be detected.fileis the custom name you can chose for the template (for example,platformer_movementorsmooth_camera).extensionindicates which language the template will apply to (it should begdfor GDScript orcsfor C#).
例:
script_templates/Node/smooth_camera.gdscript_templates/CharacterBody3D/platformer_movement.gd
Default behavior and overriding it
デフォルトの設定:
テンプレートの名前はファイル名と同じ(拡張子を除いてあります)
空の説明
インデントのスペースは4に設定
テンプレートは、指定されたノードのデフォルトとして適用されない
It is possible to customize this behavior by adding meta headers at the start of your file, like this:
# meta-name: Platformer movement
# meta-description: Predefined movement for classical platformers
# meta-default: true
# meta-space-indent: 4
// meta-name: Platformer movement
// meta-description: Predefined movement for classical platformers
// meta-default: true
// meta-space-indent: 4
この場合、名前は "Platformer movement" 、カスタム説明も設定され、ノードのデフォルトテンプレートとして保存されたディレクトリが設定されます。
これはエディタおよびプロジェクトレベルでカスタム テンプレートを利用する例です。
注釈
スクリプト テンプレートの拡張子は、通常のスクリプト ファイルと同じです。このためスクリプトパーサーがこれらのテンプレートをプロジェクト内で実際のスクリプトとして扱うという問題が発生する可能性があります。これを避けるためには、 .gdignore ファイルを作成して、テンプレートが入っているディレクトリを無視するようにしてください。このディレクトリはプロジェクトのファイルシステム全体からは見えなくなりますが、テンプレートは外部のテキストエディタでいつでも変更することができます。
Tip
デフォルトではプロジェクトディレクトリ内のすべての C# ファイルがコンパイルに含まれます。ビルドエラーを回避するには、スクリプトテンプレートを C# プロジェクトから手動で除外する必要があります。 Microsoft ドキュメントの「ビルドからファイルを除外する <https://learn.microsoft.com/en-us/visualstudio/msbuild/how-to-exclude-files-from-the-build>」_ を参照してください。
プロジェクト固有のテンプレートと同じレベルを持つ、エディタレベルのテンプレート、およびビルトインのテンプレートと同じ名前を持つエディタレベルのテンプレートを作成することが可能で、すべて新しいスクリプト ダイアログに表示されます。
デフォルトのテンプレート
デフォルトのテンプレートをオーバーライドするには、 Node ディレクトリ内のエディタレベルまたはプロジェクトレベルでカスタムテンプレート (サブタイプのみをオーバーライドしたい場合はより具体的な型) を作成し meta-default: true ヘッダーでファイルを開始します。
同じノード型に対して同時にデフォルトとして設定できるテンプレートは1つだけです。
GDScript と C# の両方の基本ノードの Default テンプレートが下記のコードで、これを他のテンプレートを作成するためのベースとして使用できます。
# meta-description: Base template for Node with default Godot cycle methods
extends _BASE_
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
// meta-description: Base template for Node with default Godot cycle methods
using _BINDINGS_NAMESPACE_;
using System;
public partial class _CLASS_ : _BASE_
{
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
}
Godot エディタは CharacterBody2D と CharacterBody3D には basic_movement 、 EditorPlugin には plugin といったノード固有の便利な組み込みテンプレートのセットを提供します。
テンプレートのプレースホルダ
現在実装されているビルトインテンプレートのプレースホルダについて説明します。
基本のプレースホルダー
プレースホルダ |
説明 |
|---|---|
|
Godot名前空間の名前 (C# のみで使用)。 |
|
新しいクラスの名前。 |
|
The name of the new class as |
|
新しいスクリプトが継承する基本型。 |
|
インデントのプレースホルダ。インデントに使用される空白文字の正確な型と数は、それぞれ EditorSettings の text_editor/indent/type と text_editor/indent/size の設定によって決まります。テンプレートの |
型のプレースホルダ
Godot 3.x には、テンプレートを使用して新しいスクリプトを作成するたびに置き換えられる GDScript の型ヒントのプレースホルダーがありました。たとえば %INT_TYPE% 、 %STRING_TYPE% 、 %FLOAT_TYPE% または %VOID_RETURN% など。
このプレースホルダは Godot 4.x では機能しなくなりましたが、EditorSettings の設定 text_editor/completion/add_type_hints が無効になっている場合、パラメータと戻り値の型の型ヒントは自動的に削除されます。いくつかの基本タイプ:
intStringArray[String]floatvoid:=は=に変換されます