クラス、インターフェイス、構造体、列挙型変数、列挙型変数の値、関数、プロパティを宣言するときに、メタデータ指定子 を宣言に追加して、エンジンやエディタの様々な側面でどのようにインタラクタするかを制御することができます。データ構造またはメンバのそれぞれの型には、固有のメタデータ指定子のリストがあります。
メタデータはエディタのみに存在しています。メタデータにアクセスするゲーム ロジックを書かないでください。
メタデータ指定子を追加するには、指定子の後に meta
という言葉を使用し、該当する場合はそれらの値を UCLASS、
UENUM、
UINTERFACE、
USTRUCT、
UFUNCTION、
UPROPERTY` マクロで以下のように使用します。
{UCLASS/UENUM/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(SpecifierX, meta=(MetaTag1="Value1", MetaTag2, ..), SpecifierY)
列挙型の特定の値にメタデータ指定子を追加するには、UMETA
タグを値に追加します (カンマがある場合はカンマの前に)。以下のようになります。
UENUM()
enum class EMyEnum : uint8
{
// DefaultValue Tooltip
DefaultValue = 0 UMETA(MetaTag1="Value1", MetaTag2, ..),
// ValueWithoutMetaSpecifiers Tooltip
ValueWithoutMetaSpecifiers,
// ValueWithMetaSpecifiers Tooltip
ValueWithMetaSpecifiers UMETA((MetaTag1="Value1", MetaTag2, ..),
// FinalValue Tooltip
FinalValue (MetaTag1="Value1", MetaTag2, ..)
};
クラス メタデータ指定子
クラスは以下のメタタグ指定子を使用することができます。
クラス メタ タグ | 効果 |
---|---|
BlueprintSpawnableComponent |
このコンポーネント クラスが存在する場合、ブループリントでスポーン可能です。 |
BlueprintThreadSafe |
ブループリント関数ライブラリでのみ有効です。この指定子は Animation ブループリントのノンゲーム スレッドでこのクラスの関数を呼び出し可能とマーク付けします。 |
ChildCannotTick |
Actor クラスと Component クラスで使用されます。ネイティブ クラスがティックできない場合、このアクタまたはコンポーネントを元にしてブループリントが生成したクラスは、bCanBlueprintsTickByDefault が true であっても決してティックできません。 |
ChildCanTick |
Actor クラスと Component クラスで使用されます。ネイティブ クラスがティックできない場合、bCanBlueprintsTickByDefault が false であっても、このアクタまたはコンポーネントを元にしたブループリントが生成したクラスでは、bCanEverTick がオーバーライドされます。 |
DeprecatedNode |
ビヘイビア ツリー ノードで、クラスが非推奨であることを示し、コンパイル時に警告が表示されます。 |
DeprecationMessage="Message Text" |
このメタデータを含む非推奨のクラスには、コンパイル中にブループリント スクリプトが生成する標準の非推奨の警告とともにこのテキストが含まれます。 |
DisplayName="Blueprint Node Name" |
ブループリント スクリプト内のこのノード名は、コードが生成する名前の代わりにここで指定する値で置き換えられます。 |
DontUseGenericSpawnObject |
ブループリントで Generic Create Object ノードを使用するクラスのオブジェクトをスポーンしないでください。この指定子は、アクタでもアクタ コンポーネントでもないブループリント タイプのクラスにのみ適用されます。 |
ExposedAsyncProxy |
Async Task ノードでこのクラスのプロキシ オブジェクトを公開します。 |
IgnoreCategoryKeywordsInSubclasses |
クラスの最初のサブクラスが継承されるすべての ShowCategories と HideCategories の指定子を無視するようにします。 |
IsBlueprintBase="true/false" |
このクラスがブループリントを作成するために使用可能 (または使用不可) の基本クラスであることを示します。Blueprintable や NotBlueprintable と同様です。 |
KismetHideOverrides="Event1, Event2, .." |
オーバーライドできないブループリントのイベント リストです。 |
ProhibitedInterfaces="Interface1, Interface2, .." |
クラスと互換性がないインターフェースのリストです。 |
RestrictedToClasses="Class1, Class2, .." |
Blueprint Function Library クラスが使用し、リストに名前があるクラスに使用を制限します。 |
ShortToolTip="Short tooltip" |
親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。 |
ShowWorldContextPin |
このクラスが所有するグラフに配置されたブループリント ノードが、ワールド コンテキストのピンを通常は非表示であっても表示しなければならないことを示します。このクラスのオブジェクトはワールド コンテキストとして使うことはできないからです。 |
UsesHierarchy |
クラスが階層データを使うことを示します。[Details (詳細)] パネルで階層編集機能をインスタンス化するために使用されます。 |
ToolTip="Hand-written tooltip" |
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
列挙型変数のメタデータ指定子
列挙型は以下のメタデータ指定子を使用することができます。
列挙型メタタグ | 効果 |
---|---|
Bitflags |
Bitmask メタデータ指定子で設定された integer UPROPERTY 変数によって列挙型変数をフラグとして使用できることを示します。 |
Experimental |
型を実験的でサポート対象外としてラベルします。 |
ScriptName="Display Name" |
引用符で囲んだ文字列は、Unreal Header Tool が生成したデフォルト名ではなく、列挙型変数名としてエディタ内で使用されます。 |
ToolTip="Hand-written tooltip" |
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
列挙型変数内の個々の値には独自のメタデータ指定子があります。他のメタデータ指定子と少し違う点は、これらは上位レベルのキーワード UMETA
を使用し、それらが修正する前ではなく後ろで指定される点です。
列挙型変数値 UMeta タグ | 効果 |
---|---|
DisplayName="Enumerated Value Name" |
この値の名前は、コードが生成した名前ではなくて、ここで指定されたテキストです。 |
Hidden |
この値はエディタには表示されません。 |
ToolTip="Hand-written tooltip." |
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
インターフェース メタデータ指定子
インターフェースは以下のメタタグ指定子を使用することができます。
ブループリント イベントは実行可能なインターフェースのみで許可されるようにします。内部専用機能が許可されています。 このインターフェイスに、ブループリントが定義されていないブループリント呼び出し可能関数が含まれている場合は、ネイティブに実装する必要があることを確認してください。
インターフェース メタ タグ | 効果 |
---|---|
CannotImplementInterfaceInBlueprint |
このインターフェースは内部専用インターフェース以外の BlueprintImplementableEvent または BlueprintNativeEvent 関数を含むことができません。ブループリント定義ではないブループリントで呼び出し可能な関数を含む場合、これらの関数はネイティブ コードで実装されなければなりません。 |
構造体メタデータ指定子
構造体は以下のメタタグ指定子を使用することができます。
構造体メタ タグ | 効果 |
---|---|
HasNativeBreak="Module.Class.Function" |
この構造体はカスタムのBreak Struct ノードを持つことを示します。モジュール、クラス、および関数の名前を指定しなければなりません。 |
HasNativeMake="Module.Class.Function" |
この構造体はカスタムの Make Struct ノードを持つことを示します。モジュール、クラス、および関数の名前を指定しなければなりません。 |
HiddenByDefault |
Make Struct ノードと Break Struct ノードのピンはデフォルトで非表示になっています。 |
ShortToolTip="Short tooltip" |
親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。 |
ToolTip="Hand-written tooltip |
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
関数メタデータ指定子
関数メタ タグ | 効果 |
---|---|
AdvancedDisplay="Parameter1, Parameter2, .." |
コンマで区切られたパラメータのリストが詳細ピンとして表示されます (UI の展開が必要)。 |
AdvancedDisplay=N |
N を数字で置き換えて、N 番めより後のすべてのパラメータが詳細ピンとして表示されます (UI の展開が必要)。たとえば、'AdvancedDisplay=2' は、最初の 2 つのパラメータを除いて advanced としてマーク付けします) |
ArrayParm="Parameter1, Parameter2, .." |
BlueprintCallable 関数で Call Array Function ノードを使用し、リストされているパラメータをワイルドカード配列のプロパティとして扱うかを示します。 |
ArrayTypeDependentParams="Parameter" |
ArrayParm を使用する場合、この指定子は ArrayParm リストにあるすべてのパラメータの型を決めるパラメータを示します。 |
AutoCreateRefTerm="Parameter1, Parameter2, .." |
リストされているパラメータは参照によって渡されますが、ピンが接続されていなければ自動作成されるデフォルトを持ちます。これは配列ピンで使用されるブループリントの便利な機能です。 |
BlueprintAutocast |
ブループリント関数ライブラリから静的な BlueprintPure 関数によってのみ使用されます。Cast ノードが自動的に戻り型と関数の最初のパラメータの型に追加されます。 |
BlueprintInternalUseOnly |
この関数は内部実装の詳細です。他の関数やノードを実装するために使われます。グラフ内で直接公開されることはありません。 |
BlueprintProtected |
この関数は、ブループリントで所有しているオブジェクトでのみ呼び出し可能です。他のインスタンス上での呼び出しはできません。 |
CallableWithoutWorldContext |
WorldContext ピンを持つ BlueprintCallable 関数のために使われ、そのクラスが GetWorld 関数を実装していなくても呼び出し可能であることを示します。 |
CommutativeAssociativeBinaryOperator |
BlueprintCallable 関数が、Commutative Associative Binary ノードを使用すべきであることを示します。このノードにはピン名がありませんが、追加の入力ピンを作成する Add Pin ボタンがあります。 |
CompactNodeTitle="Name" |
BlueprintCallable 関数をコンパクト表示モードで表示することを示し、モード内で表示する名前を指定します。 |
CustomStructureParam="Parameter1, Parameter2, .." |
リストされているパラメータはすべてワイルドカードとして扱われます。この指定子は カスタム |
DefaultToSelf |
BlueprintCallable 関数では、オブジェクトのプロパティの名前付けしたデフォルト値は、ノードの self コンテキストになります。 |
DeprecatedFunction |
ブループリントでこの関数を参照すると、関数が非推奨であることを示すコンパイルに関する警告が出ます。DeprecationMessage メタデータ指定子を使って非推奨の警告メッセージに追加することができます (例、非推奨の関数を置き換える旨の指示を表示)。 |
DeprecationMessage ="Message Text" |
関数が非推奨であると、それを使用するブループリントをコンパイルしようとすると、このメッセージが標準の非推奨の警告に追加されます。 |
DeterminesOutputType="Parameter" |
関数の戻り値の型は、指定されたパラメーター ピンに接続されている入力に一致するように動的に変更されます。パラメータは TSubClassOf<X> または TSoftObjectPtr<X> のようなテンプレート タイプでなければなりません。関数の元の戻り値は X* 、または値の型として X* を持つコンテナです (TArray<X*> など)。 |
DevelopmentOnly |
DevelopmentOnly とマーク付けされている関数は Development モードでのみ実行します。出荷する製品には存在しないデバッグ出力のような機能で役立ちます。 |
DisplayName="Blueprint Node Name" |
ブループリント内のこのノード名は、コードが生成する名前の代わりにここで指定する値で置き換えられます。 |
ExpandEnumAsExecs="Parameter" |
BlueprintCallable 関数で、ある入力実行ピンがパラメータが使用する enum で各エントリに対して作成されることを示します。パラメータは、UENUM タグを持つ列挙型である必要があります。 |
HidePin="Parameter" |
BlueprintCallable 関数で、このパラメータ ピンをユーザーから見えないようにします。この方法では、機能ごとに 1 つのピンのみを非表示にできます。 |
HideSelfPin |
"self" ピンを隠します。"self" ピンは関数が呼び出されているオブジェクトを示すために使われます。"self" ピンは BlueprintPure 関数で自動的に非表示になり、これはブループリントのクラスを呼び出すのに相当します。HideSelfPin メタタグを使用する関数は、 DefaultToSelf 指定子も頻繁に使用します。 |
InternalUseParam="Parameter" |
HidePin に類似していますが、これは名前付けしたパラメータ ピンをユーザーから見えなくし、ひとつの関数につきひとつのパラメータに対してのみ使用可能です。 |
KeyWords="Set Of Keywords" |
ブループリント グラフで関数を呼び出すノードを配置する場合など、この関数を検索するときに使用可能なキーワード一式を指定します。 |
Latent |
潜在的 (latent) アクションを示します。潜在的アクショには、FLatentActionInfo 型のパラメータをひとつ持ち、このパラメータは LatentInfo 指定子で名前付けされます。 |
LatentInfo="Parameter" |
Latent BlueprintCallable 関数では、どれが LatentInfo パラメータであるかを示します。 |
MaterialParameterCollectionFunction |
BlueprintCallable 関数では、マテリアル オーバーライド ノードを使わないことを示します。 |
NativeBreakFunc |
BlueprintCallable 関数では、標準の Break Struct ノードと同じように表示されることを示します。 |
NotBlueprintThreadSafe |
ブループリント関数ライブラリでのみ有効です。この関数は、所有しているクラスの一般的な BlueprintThreadSafe メタデータの例外として扱われます。 |
ShortToolTip="Short tooltip" |
親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。 |
ToolTip="Hand-written tooltip |
コード コメントから自動的に生成されたツールチップをオーバーライドします。 |
UnsafeDuringActorConstruction |
この関数はアクタの構築中には安全に呼び出すことはできません。 |
WorldContext="Parameter" |
BlueprintCallable 関数によって使用され、オペレーションが起こるワールドをどのパラメータが決めるかを示します。 |
プロパティ メタデータ指定子
プロパティ メタ タグ | 効果 |
---|---|
AllowAbstract="true/false" |
Subclass と SoftClass のプロパティで使用されます。クラス ピッカーで抽象クラス型を表示するかを示します。 |
AllowedClasses="Class1, Class2, .." |
FSoftObjectPath プロパティで使われます。アセット ピッカーに表示されるクラスの型を示すコンマで区切られたリストです。 |
AllowPreserveRatio |
FVector プロパティで使われます。このプロパティを [Details (詳細)] パネルに表示するときに、ratio のロックが追加されます。 |
ArrayClamp="ArrayProperty" |
integer のプロパティに使用されます。UI に入力する有効な値を 0 と配列のプロパティの名前の長さにクランプします。 |
AssetBundles |
SoftObjectPtr または SoftObjectPath のプロパティで使用します。Primary Data Assets 内で使用されるバンドル名のリストで、参照がどのバンドルの一部であるかを指定します。 |
BlueprintBaseOnly |
Subclass と SoftClass のプロパティで使用されます。クラス ピッカーで Blueprint クラスのみを表示するかを示します。 |
BlueprintCompilerGeneratedDefaults |
ブループリントのコンパイラによってプロパティのデフォルトが生成されて、コンパイル後に CopyPropertiesForUnrelatedObjects 関数が呼び出されてもコピーされません。 |
ClampMin="N" |
float と integer のプロパティに使用されます。プロパティに入力可能な最小値、N を指定します。 |
ClampMax="N" |
float と integer のプロパティに使用されます。プロパティに入力可能な最大値、N を指定します。 |
ConfigHierarchyEditable |
このプロパティは、 config (.ini ) ファイルにシリアル化されて、 config 階層のどこにでも設定することができます。 |
ContentDir |
FDirectoryPath プロパティによって使用されます。このパスは、Content フォルダ内のスレート スタイルのディレクトリ ピッカーを使って選ぶことができます。 |
DisplayAfter="PropertyName" |
このプロパティは、ブループリント エディタでの中で、プロパティが両方とも同じカテゴリにある限り、ソースコードの順番に関係なく PropertyName という名前のプロパティの直後に表示されます。複数のプロパティの DisplayAfter 値と DisplayPriority 値が同じ場合、ヘッダ ファイルで宣言された順番で、名前付きプロパティの後に表示されます。 |
DisplayName="Property Name" |
コードが生成する名前の代わりになるプロパティの表示名です。 |
DisplayPriority="N" |
2 つのプロパティの DisplayAfter 値が同じである、または同じカテゴリで DisplayAfter メタ タグがない場合にこのプロパティがソート順を決定します。優先度が高い値は 1 です。つまり、, meaning that a property with a DisplayPriority 値が 1 のプロパティは DisplayProirity 値が 2 のプロパティに優先します。複数のプロパティの DisplayAfter 値が同じ場合、ヘッダ ファイルで宣言された順番で、名前付きプロパティの後に表示されます。 |
DisplayThumbnail="true" |
プロパティがアセット タイプであることを示し、選択したアセットのサムネイルを表示します。 |
EditCondition="BooleanPropertyName" |
このプロパティの編集を無効にするかどうかを示すために使うブール プロパティに名前を付けます。プロパティ名の前に "!" を付けるとテストが反転します。 |
EditFixedOrder |
ドラッグすることで配列の要素の順番が変わるのを防ぎます。 |
ExactClass="true" |
AllowedClasses と合わせて FSoftObjectPath プロパティで使用されます。AllowedClasses で指定されているものと同じクラスだけを使用可能か、サブクラスも有効であるかを示します。 |
ExposeFunctionCategories="Category1, Category2, .." |
ブループリント エディタで関数リストを構築するときに関数を公開するカテゴリのリストを指定します。 |
ExposeOnSpawn="true" |
このクラスのタイプで Spawn Actor ノードでこのプロパティを公開するかを指定します。 |
FilePathFilter="FileType" |
FFilePath プロパティによって使用されます。ファイル ピッカーで表示するパス フィルタを示します。共通の値として、"uasset" と "umap" 値を含みますが、他にも使える値があります。 |
GetByRef |
このプロパティに対する "Get" Blueprint ノードに、その値のコピーではなく const 参照をプロパティに返させます。Sparse Class Data を使ってのみ、NoGetter が存在しない場合のみ使用可能です。 |
HideAlphaChannel |
FColor プロパティと FLinearColor プロパティで使用されます。詳細で、プロパティ ウィジェットを表示するときに Alpha プロパティが非表示になることを示します。 |
HideViewOptions |
Subclass と SoftClass のプロパティで使用されます。クラス ピッカーで表示オプションを変更する機能を隠します。 |
InlineEditConditionToggle |
他のプロパティで切り替わり、単独では表示されない編集条件として、ブール プロパティはインラインでのみ表示されることを表します。 |
LongPackageName |
FDirectoryPath プロパティによって使用されます。パスを長いパッケージ名に変換します。 |
MakeEditWidget |
Transform プロパティ、Rotator プロパティ、または Transforms、Rotators の配列で使用されます。移動可能なウィジェットとしてプロパティがビューポートに公開されることを示します。 |
NoGetter |
ブループリント生成がこのプロパティに対して "get" ノードを生成しないようにします。Sparse Class Data でのみ使用可能です。 |