Structs

ゲームプレイ クラス用構造体の作成および実装に関する参照ページ

Windows
MacOS
Linux

Unreal Engine 4 の Structs はエンジンのリフレクション システムで認識されますが、UObject エコシステムの一部ではありません。その結果、同じデータ レイアウトでも UObject よりも速く作成し UProperties をサポートしますが、ガーベジ コレクション システムで管理されず、UFunctions を提供しません。構造体を UStruct に作成するには、構造体の定義の上の USTRUCT タグを使って、GENERATED_BODY() を定義の一行目に以下のように含みます。

USTRUCT([Specifier, Specifier, ...])
struct StructName
{
    GENERATED_BODY()
};

構造体指定子

構造体を宣言する場合に、各種特性と構造体がどのように動作するのか制御する 構造体指定子 を構造体宣言に追加することができます。

構造体指定子

効果

Atomic

このクラスに対する自動生成コードは作成されません。ヘッダはメタデータをパースするためだけに提供されます。.

BlueprintType

ブループリントの変数に使用できるタイプとして構造体を公開します。

NoExport

このクラスに対する自動生成コードは作成されません。ヘッダはメタデータをパースするためだけに提供されます。

メタデータ指定子

クラス、インターフェイス、構造体、列挙型変数、列挙型変数の値、関数、プロパティを宣言するときに、メタデータ指定子 を宣言に追加して、エンジンやエディタの様々な側面でどのように動作するかを制御することができます。データ構造またはメンバのそれぞれの型には、固有のメタデータ指定子のリストがあります。

クラスは以下のメタタグ指定子を使用することができます。

クラス メタ タグ

効果

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 ノードを使用するクラスのオブジェクトをスポーンしないでください。この指定子は、アクタでも Actor コンポーネントでもない Bluprint 型クラスの場合に限り、有用です。

ExposedAsyncProxy

Async Task ノードでこのクラスのプロキシ オブジェクトを公開します。

IgnoreCategoryKeywordsInSubclasses

クラスの最初のサブクラスが継承されるすべての ShowCategoriesHideCategories の指定子を無視するようにします。

IsBlueprintBase="true/false"

このクラスがブループリントを作成するために使用可能 (または使用不可) の基本クラスであることを示します。 UCLASS の指定子、 BlueprintableNotBlueprintable と同様です。

KismetHideOverrides="Event1, Event2, .."

オーバーライドできないブループリントのイベント リストです。

ProhibitedInterfaces="Interface1, Interface2, .."

クラスと互換性がないインターフェースのリストです。

RestrictedToClasses="Class1, Class2, .."

Blueprint Function Library クラスが使用し、リストに名前があるクラスに使用を制限します。

ShortToolTip="Short tooltip"

親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。

ShowWorldContextPin

このクラスが所有するグラフに配置されたブループリント ノードが、ワールド コンテキストのピンを通常は非表示であっても表示しなければならないことを示します。このクラスのオブジェクトはワールド コンテキストとして使うことはできないからです。

UsesHierarchy

クラスが階層データを使うことを示します。[Details (詳細)] パネルで階層編集機能をインスタンス化するために使用されます。

ToolTip="Hand-written tooltip"

コード コメントから自動的に生成されたツールチップをオーバーライドします。

メタデータ指定子

クラス、インターフェイス、構造体、列挙型変数、列挙型変数の値、関数、プロパティを宣言するときに、メタデータ指定子 を宣言に追加して、エンジンやエディタの様々な側面でどのように動作するかを制御することができます。データ構造またはメンバのそれぞれの型には、固有のメタデータ指定子のリストがあります。

構造体は以下のメタタグ指定子を使用することができます。

構造体メタ タグ

効果

HasNativeBreak="Module.Class.Function"

この構造体はカスタムのBreak Struct ノードを持つことを示します。モジュール、クラス、および関数の名前を指定しなければなりません。

HasNativeMake="Module.Class.Function"

この構造体はカスタムの Make Struct ノードを持つことを示します。モジュール、クラス、および関数の名前を指定しなければなりません。

HiddenByDefault

Make Struct ノードと Break Struct ノードのピンはデフォルトで非表示になっています。

ShortToolTip="Short tooltip"

親クラスのピッカー ダイアログなどフル ツールチップでは長すぎる場合に短いツールチップを使います。

ToolTip="Hand-written tooltip

コード コメントから自動的に生成されたツールチップをオーバーライドします。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback