【UE5】C++マクロ入力を自動化するUnrealMacroGeneratorの紹介
プログラマーの尾関です。
今回は UE5/C++ を使うときに便利なマクロ入力自動化拡張「UnrealMacroGenerator」について紹介をします。
UnrealMacroGeneratorとは
UnrealMacroGeneratorとは、Unreal Engine で C++ での「マクロ」の記述を自動化する Visual Studio の拡張機能です。
特に UPROPERTY や UFUNCTION などは複雑なマクロになりやすいので、この拡張機能を使うと入力を自動化できて便利です。

インストール手順
この拡張機能をダウンロードするには、以下のページにアクセスします。
そうしたら、”UnrealMacroGenerator.vsix” のリンクをクリックしてダウンロードします。

ダウンロードしたファイルをダブルクリックして、インストールダイアログから「Install」をクリックするとインストールできます。

使い方
VS上で「ALT+W」または「ALT+E」を押すとマクロ入力のダイアログを表示できます。ここから追加したいマクロや指定子を選択すると、プログラムコードに自動で入力されます。

例えば “UPROPERTY” を選んで OKボタンをクリック。
するとマクロの指定子を選択する表示になるので、例えば “EditAnywhere” にチェックを入れて、”Category” を Edit として、OKボタンをクリック。

するとコードにマクロが自動挿入されました。
便利ですね!

応用編:一覧にないマクロ指定子を追加する方法
例えば エディタ上で特定のフラグが立っているときだけその項目を表示したい場合には「EditConditionHides」というマクロ指定子が便利です。
以下のような記述をすると “MyParamEditable” というフラグがONのときだけ “MyParam” をエディタ上に表示する…ということができます。
// パラメータ編集可能フラグ.
UPROPERTY(EditAnywhere)
bool MyParamEditable = true;
// パラメータ.
UPROPERTY(EditAnywhere, meta = (EditCondition = "MyParamEditable", EditConditionHides))
FActorParam MyParam = {};
ですが、UnrealMacroGeneratorには “EditConditionHides” が含まれていません…。

ただ、UnrealMacroGeneratorはカスタマイズ可能なので、項目を追加していきます。
まずはVS2022のメニューから「ツール > オプション」を選びます


左上の検索欄に “Unreal Macro” と入力すると “Unreal Macro Generator Settings” の項目が表示されるのでこれを選びます。

“UPROPERTY” カテゴリから “Meta Specifiers” を選び、右側の「…」ボタンをクリック。

「追加」ボタンをクリックして、Valueの項目に “EditConditionHides;NoInput” と入力して OKボタンをクリック。

オプション画面もOKボタンで閉じます。
再び UnrealMacroGeneratorを表示すると、”EditConditionHides” の項目が追加されました。

“EditConditionHides” 指定子がソースコードに自動生成できるようになりました。

最後に
UnrealMacroGenerator は UPROPERTY や UFUNCTION だけでなく、UINTERFACE や UMETA、UE_LOG を生成したりできて便利です。

以上、UnrealMacroGenerator の使い方でした。