【Godot Engine】GDScript:@export の使いかた

目次

@export とは

GDScriptにおける @export とは、GDScript内の値(クラスメンバ)をGodotエディタにエクスポートするためのアノテーション(注釈)です。
エクスポートされた値はインスペクターに表示され、エディタ側から編集が可能になります。

基本的な用法

@export注釈にはさまざまな種類がありますが、最も基本的な使い方は以下の通りです。

# 新規変数x,yをエクスポート
@export var x = 10
@export var y = 10

※上記の例の場合、初期化した値「10」は各プロパティの“初期値”となります。
(エディタで値を変更した場合、そちらが優先)

初期値を設定したくない(できない)場合は、変数宣言と同様、データ型を指定する必要があります。
(→この場合、プロパティの初期値は各データ型ごとの初期値となります)

@export var x : int
@export var y : float
@export var text : String
@export var resource : Resource
@export var node : Node

グループ化

@exportで出力した各メンバは、@export_category、@export_group、@export_subgroup の三種類でグループ化が可能です。
(単位は category > group > sub group の関係)

@export_category("カテゴリ①")
@export var x :int
@export var y :float
@export_category("カテゴリ➁")
@export var text : String
@export_group("グループA")
@export var a_n= 3
@export_subgroup("グループAーサブ①")
@export var a_sub_text = ""
@export var a_sub_flag = false

エディタ入力範囲の設定

@export_range で、エディタでの入力範囲に制限を設定することができます。

@export_range(0, 10) var a	#範囲:0~10
@export_range(0, 10) var b = 5	#範囲:0~10, 初期値5

三つ目の引数に値を指定することで、変更値をスナップすることもできます。

#範囲:-10~10で、0.5単位でスナップする
@export_range(-10, 10, 0.5) var c: float

特殊なデータ型、出力形式

複数行のテキストボックス

@export_multiline を使うと、String型プロパティを複数行にわたって編集可能なテキストボックスでエクスポートすることができます。(長文のテキスト等を扱いたい場合はこちらが便利です)

@export_multiline var text

Color

Color型データをエクスポートする場合は、基本的に@export で対応できますが、
@export_color_no_alpha を使用することで、アルファ値を含まない(常にα値=1)の出力ができます

@export var col: Color
@export_color_no_alpha var col_no_alpha: Color

配列

配列をエクスポートする際は、@export を使用します。(基本的には配列を宣言する際と同じ要領です)

@export var a = [1, 2, 3]	#基本形
@export var b : Array[int] = []	#空の配列

※定義した配列は、エディタのインスペクターにて要素の追加・編集が可能です。(右画像参照)

列挙型 (enum)

列挙型をエクスポートする場合は、@export_enum を使用します。
(エクスポートするメンバに指定するデータ型は int または String型になります)

@export_enum("A", "B", "C") var Test01: int

# メンバに値を設定する場合は「:」区切りで指定
@export_enum("A:10", "B:20", "C:30") var Test02: int
@export_enum("A:10", "B:20", "C:30") var Test03: int = 20	#初期値は値で指定

# エクスポートするメンバがString型の場合、対応する値も文字列型で指定します
@export_enum("A", "B", "C") var Test04: String = "C"

それぞれ設定した初期値が反映されています

列挙型はプルダウンで選択可能です:

パス文字列

ファイルやディレクトリ用のパスとして文字列をエクスポートする場合は、それぞれ以下のようなアノテーションを使用します。

アノテーション(宣言例)エクスポートするパス
@export_fileファイルへのパス。
 例)@export_file var path
・引数にてファイル形式の指定も可能
 例)@export_file(“*.txt”) var path
@export_dirディレクトリへのパス
 例)@export_dir var path

参考情報

この記事は、以下公式ドキュメント「GDScript」の内容を一部抜粋してまとめたものになります。
より詳細な内容は以下をご参照ください。

Godot Engine documentation
GDScript exported properties In Godot, class members can be exported. This means their value gets saved along with the resource (such as the scene) they're attached to, and get transferred ...
Godot Engine documentation
@GDScript Built-in GDScript constants, functions, and annotations. Description: A list of utility functions and annotations accessible from any script written in GDScript...

おすすめの本①

おすすめの本➁(Godot)

  • URLをコピーしました!
目次