本記事について
難易度★☆☆☆☆(1)BPのみ、ある程度ノードが組める人/初心者でも可
職種ターゲット:誰でも
所要時間:5~10分程度
検証エンジンVer:5.6~
概要
FName変数をドロップダウンメニューにします。基本的にデバッグ用途になります。
ドロップダウンメニューにすると何が良い?
データテーブルなどではID管理が多いと思います。
上手くやれば例えばIDではなく敵やアイテムの名前で表示することも可能です。
ドロップダウンメニューにすることでID入力の面倒やこのIDなんだっけ...?ということがなくなります。
最終的なゴールは以下の様なものになります。凄く箸休め記事となります。

方法
①ドロップダウンメニューにしたいBPアクターを用意する。
今回はAActorを継承したBP_DebugActorを作成しました。

②Name変数を作成する。
今回は変数名をSpawnActorとしています。
用途によってはFString型でも可能です。他の型は(FText含む)不可でした。

③InstanceEditableを有効にする。
作成した変数のDetailsを開き、設定する。
または①の添付画像にある目のマークをクリックしても変更できます。

④NameArray変数を作成する。
NameListとしました。
試しに要素を追加して適当な文字列を入力します。「テスト」


⑤SpawnActor変数のDetailsを設定する
Advancedという項目があるので展開してDrop-down Optionsというパラメータに表示したいNameArray変数名を入力する。

⑥用意したBPアクターをレベルに配置して確認する。
注意点:リスト化するArrayはFName型でないと出来ないようです。
応用編
ID管理のデータテーブルから自動でリスト化する。ついでに選択したクラスをスポーンさせる。
サンプルとして以下のような適当なデータテーブルを用意しました。

ConstructionScriptに以下の処理を用意しました。

処理を分解すると
AddUniqueまでがNameListにDT_EnemyStatusにあるName(化け猫、河童、天狗)要素を追加しています。
その後のBranchで選択中のSpawnActor変数と一致する場合のIDをStatusID変数に格納しています。
河童を選択した状態でPIEすると河童アクターが生成されました。

改善のススメ
今回SpawnActorはSingle変数でしたがArrayにすることで複数にすることも可能です。

ゲーム内容によっては、
装備のプリセットをDataAssetで用意してるのであればそれをドロップダウンメニューにして用意してあげたり、
関係ないですがプレイヤーのステータスの上書きなどを設定できるようになればデバッグしやすくなるのかなと思います。
まとめ
やることはドロップダウンメニューにしたい変数をNameArray設定するだけ!
BPで完結しているのでC++でUPROPETYを設定する必要がありません。
個人的にデバッグ用のアクターにソースコード書くの面倒くさい!のが解消されました。
開発環境によるかもしれませんが、PRGじゃなくても作成できる難易度だと思っています。
良きデバッグライフを!
C++を活用した方法はこちらを参考に
https://qiita.com/_whoisefe/items/1930525c15f881ac56db

