Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

スクリプトテンプレートの作成

Godot は新しいスクリプトを作成するときの スクリプト作成 ダイアログに表示される、スクリプト テンプレートを追加することができます。

../../_images/script_create_dialog_templates.webp

エディタには一連のビルトインのスクリプトテンプレートが提供されていますが、プロジェクトごとおよびエディタースコープの両方で、新しいテンプレートを作成してデフォルトで設定することもできます。

テンプレートは特定のノード型にリンクされているため、スクリプトを作成するとその特定のノード、またはそのベースクラスに対応するテンプレートのみが表示されます。たとえば 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_path is one of the 2 locations discussed in the previous two sections.

  • node_type is the node it will apply to (for example, Node, or CharacterBody3D), This is case-sensitive. If a script isn't in the proper node_type folder, it won't be detected.

  • file is the custom name you can chose for the template (for example, platformer_movement or smooth_camera).

  • extension indicates which language the template will apply to (it should be gd for GDScript or cs for C#).

例:

  • script_templates/Node/smooth_camera.gd

  • script_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

この場合、名前は "Platformer movement" 、カスタム説明も設定され、ノードのデフォルトテンプレートとして保存されたディレクトリが設定されます。

これはエディタおよびプロジェクトレベルでカスタム テンプレートを利用する例です。

../../_images/script_create_dialog_custom_templates.webp

注釈

スクリプト テンプレートの拡張子は、通常のスクリプト ファイルと同じです。このためスクリプトパーサーがこれらのテンプレートをプロジェクト内で実際のスクリプトとして扱うという問題が発生する可能性があります。これを避けるためには、 .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

Godot エディタは CharacterBody2DCharacterBody3D には basic_movementEditorPlugin には plugin といったノード固有の便利な組み込みテンプレートのセットを提供します。

テンプレートのプレースホルダ

現在実装されているビルトインテンプレートのプレースホルダについて説明します。

基本のプレースホルダー

プレースホルダ

説明

_BINDINGS_NAMESPACE_

Godot名前空間の名前 (C# のみで使用)。

_CLASS_

新しいクラスの名前。

_CLASS_SNAKE_CASE_

The name of the new class as snake_case (used in GDScript only).

_BASE_

新しいスクリプトが継承する基本型。

_TS_

インデントのプレースホルダ。インデントに使用される空白文字の正確な型と数は、それぞれ EditorSettingstext_editor/indent/typetext_editor/indent/size の設定によって決まります。テンプレートの meta-space-indent ヘッダーによってオーバーライドできます。

型のプレースホルダ

Godot 3.x には、テンプレートを使用して新しいスクリプトを作成するたびに置き換えられる GDScript の型ヒントのプレースホルダーがありました。たとえば %INT_TYPE%%STRING_TYPE%%FLOAT_TYPE% または %VOID_RETURN% など。

このプレースホルダは Godot 4.x では機能しなくなりましたが、EditorSettings の設定 text_editor/completion/add_type_hints が無効になっている場合、パラメータと戻り値の型の型ヒントは自動的に削除されます。いくつかの基本タイプ:

  • int

  • String

  • Array[String]

  • float

  • void

  • :== に変換されます