関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2021.10.13UE4UE/ Levelその他
執筆バージョン: Unreal Engine 4.26 |
みなさん、こんにちは。
今回はEditor Utility Widget内でレベル上にあるActorを指定できるようにする方法をご紹介します。
上図のようにEditor Utility Widgetで、レベル上に配置しているActorを指定し、特定の操作を行える機能を作ることができます。
一例として、今回は配列への追加作業を効率化します!!
配列に複数のActorを1つずつ追加する作業って大変ですよね!!BP_TriggerBoxというトリガーにBP_Itemを配列で追加していく作業を例にして説明します。
まずContent Browserで右クリックし、Editor Utilities > Editor Utility Widgetを選択します。
①BP_TriggerBoxを指定する場所を作ります。
先程作ったEditor Utility Widgetを開いてDesignerでSingle Property Viewをドラッグ&ドロップします。
Single Property Viewの名前はわかりやすく「Selected Trigger」に変更します。
②Graphを開いて、Event Constructを呼び出して
①で追加した「Selected Trigger(Single Property View)」をGetし、Set Objectを呼び出します。
③Set ObjectのNew ObjectはSelfにします。
④Selected TriggerからSet Property Nameを呼び出します。
New Property Nameは「TriggerBox」とします。(ここで指定する「TriggerBox」は次に説明します。)
⑤BP_TriggerBoxを指定できるようにするために、変数を追加します。
ここで注意していただきたいのですが、「Soft Object Reference」を指定してください。
Object Referenceでは上手く動きません。
最後に、Event Constructに繋いで終わりです。
この状態で先程作ったEditor Utility Widgetを右クリックし、Run Editor Utility Widgetを押すと以下の図のようにウィンドウが表示され、
レベル上に配置されているBP_Tigger Boxを指定できるようになりました。
①指定したBP_TriggerBoxに選択中のActorを追加してくれるボタンを作ります。
先程作ったEditor Utility Widgetを開いてDesignerでButtonをドラッグ&ドロップします。
Buttonの名前はわかりやすく「Register item」に変更します。また、ボタンに対してtextで「アイテムを登録」も追加します。
②追加したButtonのDetailsを開き、Events > On Clickedを選択します。
そうするとEvent Graphに移動します。
③変数のTriggerBoxをGetし、右クリックしてConvert to Validated Getを押します。
④Load Asset Blockingを呼び出し、Return ValueにCast To BP_TriggerBoxを入れます。
これで【指定したBP_TriggerBox】を把握できるようになります。
⑤次に、【Actor】を指定します。今回は選択中のBP_ItemだけをBP_TriggerBoxの配列に入れるようにします。
Get Selected Actorsを呼び出し、For Each Loopを繋ぎます。Array ElementからCast To BP_Itemを呼び出してAs BP ItemからADD UNIQUEを繋ぎます。
⑥最後に、Cast To BP_TriggerBoxからGetItemListを呼び出します。ADD UNIQUEにも繋ぎます。
これでボタンを押すだけで、
選択中のActor(今回はBP_Item)がBP_TriggerBoxのItemList内に自動的に追加されるようになります。
ボタンを押すだけで、選択中のActorの中から指定したActor(BP_Item)のみがBP_TriggerBoxの配列に登録されました!!超便利!!