ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉UEC++マクロ翻訳 ~UCLASS編~

目次

 

はじめに

UEC++で利用できるUCLASSのマクロをDeepL翻訳したものの一覧です。

順番はソースコードに記載されている順番になっております。

オリジナルはソースコードの以下のパスにあります。

~\Epic Games\UE_5.0\Engine\Source\Runtime\CoreUObject\Public\UObject\ObjectMacros.h

UE5.0.3時点のデータです。

内容に差異がありましたらコメントまでお願いいたします。

UCLASS

 classGroup,

このキーワードは、エディタでクラスが表示されるアクターグループを設定するために使用されます。

 

 Within,

 このクラスのインスタンスは、常に指定されたクラスの外部を持つべきであることを宣言する。 これは、オーバーライドされない限り、サブクラスによって継承されます。

 

 BlueprintType,

このクラスを、ブループリントの変数に使用できる型として公開します。

 

 NotBlueprintType,

このクラスがブループリントの変数に使用されないようにします。

 

 Blueprintable,

このクラスを、ブループリントを作成するための許容ベース クラスとして公開します。デフォルトは NotBlueprintable で、他に継承されていない限りは NotBlueprintable です。これはサブクラスによって継承されます。

 

 NotBlueprintable,

このクラスがブループリントを作成するためのベースクラスとして *NOT* 許容されないことを指定します。デフォルトは NotBlueprintable で、他に継承されていない限りは NotBlueprintable です。これはサブクラスによって継承されます。

 

 MinimalAPI,

このキーワードは、そのクラスがモジュールの外からアクセスできる必要があることを示しますが、すべてのメソッドがエクスポートされる必要はありません。

dynamic_cast<> などの動作に必要な自動生成メソッドのみをエクスポートします。

 

 customConstructor,

コンストラクタ宣言が自動的に生成されないようにする。

 

 Intrinsic,

クラスは C++ で直接宣言されており、UnrealHeaderTool によって生成されたボイラープレートはありません。

新しいクラスではこのフラグを使用しないでください。

 

 noexport,

このクラスでは自動生成されたコードは作成されません。ヘッダーは、メタデータを解析するためにのみ提供されます。

新しいクラスではこのフラグを使用しないでください。

 

 placeable,

ユーザーがこのクラスを作成し、エディタに配置することを許可します。 このフラグは、サブクラスに継承されます。

 

 notplaceable,

このクラスはエディタに配置できません(継承された配置可能フラグを打ち消します)。

 

 DefaultToInstanced,

このクラスのインスタンスはすべて「インスタンス化」されているとみなされます。インスタンス化されたクラス(コンポーネント)は、構築時に複製されます。このフラグはサブクラスにも継承される。

 

 Const,

このクラスのすべてのプロパティと関数は const であり、const としてエクスポートする必要があります。 このフラグは、サブクラスに継承されます。

 

 Abstract,

クラスは抽象的であり、直接インスタンス化することはできません。

 

 deprecated,

このクラスは非推奨であり、このクラスのオブジェクトはシリアライズ時に保存されません。 このフラグはサブクラスによって継承されます。

 

 Transient,

このクラスは保存できません。保存時に NULL を指定します。 このフラグは、サブクラスに継承されます。

 

 Optional,

このクラスはオプションであり、特定のコンテキストでは利用できない場合があります。オプションでないデータ型からの参照は許可されません。

 

 config,

コンストラクション時にオブジェクトの設定を読み込む。 これらのフラグは、サブクラスに継承されます。

コンフィグプロパティを含むクラス。使用法 config=ConfigNameまたはconfig=inherit(ベースクラスから設定名を継承する)。

 

 perObjectConfig,

オブジェクトの設定をクラス単位ではなく、オブジェクト単位で処理する。

 

 configdonotcheckdefaults,

configへのシリアライズ時に、base/defaults iniのチェックを行うかどうかを決定。

 

 defaultconfig,

オブジェクトの設定をDefault INIにのみ保存し、ローカルINIには保存しないようにしました。

 

 EditorConfig,

このオブジェクトにロードする場合、ロードするエディタ設定ファイルをマークします。

 

 editinlinenew,

これらは、プロパティエディタの動作に影響を与えます。

editinline 新規作成ボタンからクラスを作成することができます。

 

 noteditinlinenew,

editinline Newボタンからクラスを構築することはできません。

 

 hidedropdown,

エディターでクラスを選択するドロップダウンにクラスが表示されない。

 

 showCategories,

指定されたカテゴリをプロパティビューアに表示します。使用法:showCategories=CategoryNameまたはshowCategories=(category0, category1, ...)

 

 hideCategories,

プロパティビューアで指定されたカテゴリーを非表示にします。使用法:hideCategories=CategoryNameまたはhideCategories=(category0, category1, ...)

 

 ComponentWrapperClass,

このクラスが、本質的な機能をほとんど持たないコンポーネントのラッパークラスであることを示します (このため、ブループリントでこのクラスがサブクラス化されると、hideCategories や showCategories などは無視されます)。

 

 showFunctions,

指定された関数をプロパティビューアーに表示します。使用法:showFunctions=FunctionNameまたはshowFunctions=(category0, category1, ...)

 

 hideFunctions,

指定された関数をプロパティビューア内で非表示にします。使用法:hideFunctions=FunctionNameまたはhideFunctions=(category0, category1, ...)

 

 autoExpandCategories,

プロパティビューアで自動的に展開されるカテゴリを指定します。

 

 autoCollapseCategories,

プロパティビューアで自動的に折りたたまれるカテゴリを指定します。

 

 dontAutoCollapseCategories,

自動折りたたみカテゴリのリストをクリアします。

 

 collapseCategories,

カテゴリーを使用せずに、エディターでプロパティを表示します。

 

 dontCollapseCategories,

エディターでカテゴリを使ってプロパティを表示する(デフォルトの動作)。

 

 prioritizeCategories,

カテゴリの表示順を指定し、指定しない場合はデフォルトの表示順となります。

 

 AdvancedClassDisplay,

クラスのすべてのプロパティは、デフォルトでメイン表示では非表示になり、詳細表示セクションでのみ表示されます。

 

 ConversionRoot,

 ルート変換は、サブクラスが階層を上がっていく最初のルートクラスの子クラスにのみ変換できるように制限します。

 

 Experimental,

このクラスを 'experimental' (全くサポートされておらず、文書化されていないプロトタイプ) としてマークします。

 

 EarlyAccessPreview,

 このクラスを「早期アクセス」プレビューとしてマークします (製品としてすぐに使えるとは言えませんが、「実験的」よりは一歩進んでおり、来るべきもののプレビューとして提供されます)。

 

 SparseClassDataType,

一部のプロパティは、クラスごとにサイドカー構造体に一度だけ格納され、クラスのインスタンスには格納されません。

 

 CustomThunkTemplates,

CustomThunkの実装を含む構造体を指定します。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。