執筆バージョン: Unreal Engine 4.26
|
みなさん、こんにちは。
今回はEditor Utility Widget内でレベル上にあるActorを指定できるようにする方法をご紹介します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog18.png)
上図のようにEditor Utility Widgetで、レベル上に配置しているActorを指定し、特定の操作を行える機能を作ることができます。
一例として、今回は配列への追加作業を効率化します!!
配列に複数のActorを1つずつ追加する作業って大変ですよね!!BP_TriggerBoxというトリガーにBP_Itemを配列で追加していく作業を例にして説明します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog03-1024x505.png)
【指定したBP_TriggerBox】に対して、
【選択中のActorを配列に追加するボタン】Editor Utility Widgetを作ります。
まずContent Browserで右クリックし、Editor Utilities > Editor Utility Widgetを選択します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog04-781x1024.png)
【指定したBP_TriggerBox】を先に作ります。
①BP_TriggerBoxを指定する場所を作ります。
先程作ったEditor Utility Widgetを開いてDesignerでSingle Property Viewをドラッグ&ドロップします。
Single Property Viewの名前はわかりやすく「Selected Trigger」に変更します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog05-1024x607.png)
②Graphを開いて、Event Constructを呼び出して
①で追加した「Selected Trigger(Single Property View)」をGetし、Set Objectを呼び出します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog06.png)
③Set ObjectのNew ObjectはSelfにします。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog07-1024x543.png)
④Selected TriggerからSet Property Nameを呼び出します。
New Property Nameは「TriggerBox」とします。(ここで指定する「TriggerBox」は次に説明します。)
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog08-1.png)
⑤BP_TriggerBoxを指定できるようにするために、変数を追加します。
ここで注意していただきたいのですが、「Soft Object Reference」を指定してください。
Object Referenceでは上手く動きません。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog13-1024x626.png)
最後に、Event Constructに繋いで終わりです。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog08-1024x393.png)
この状態で先程作ったEditor Utility Widgetを右クリックし、Run Editor Utility Widgetを押すと以下の図のようにウィンドウが表示され、
レベル上に配置されているBP_Tigger Boxを指定できるようになりました。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog09-1024x835.png)
次に【選択中のActorを配列に追加するボタン】を作ります。
①指定したBP_TriggerBoxに選択中のActorを追加してくれるボタンを作ります。
先程作ったEditor Utility Widgetを開いてDesignerでButtonをドラッグ&ドロップします。
Buttonの名前はわかりやすく「Register item」に変更します。また、ボタンに対してtextで「アイテムを登録」も追加します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog10-1024x675.png)
②追加したButtonのDetailsを開き、Events > On Clickedを選択します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog11-1024x414.png)
そうするとEvent Graphに移動します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog12.png)
③変数のTriggerBoxをGetし、右クリックしてConvert to Validated Getを押します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog14-1024x953.png)
④Load Asset Blockingを呼び出し、Return ValueにCast To BP_TriggerBoxを入れます。
これで【指定したBP_TriggerBox】を把握できるようになります。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog15-1024x221.png)
⑤次に、【Actor】を指定します。今回は選択中のBP_ItemだけをBP_TriggerBoxの配列に入れるようにします。
Get Selected Actorsを呼び出し、For Each Loopを繋ぎます。Array ElementからCast To BP_Itemを呼び出してAs BP ItemからADD UNIQUEを繋ぎます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog16-1024x140.png)
⑥最後に、Cast To BP_TriggerBoxからGetItemListを呼び出します。ADD UNIQUEにも繋ぎます。
これでボタンを押すだけで、
選択中のActor(今回はBP_Item)がBP_TriggerBoxのItemList内に自動的に追加されるようになります。
![](https://historia.co.jp/wp/wp-content/uploads/2021/10/20211005_Blog17-1024x180.png)
ボタンを押すだけで、選択中のActorの中から指定したActor(BP_Item)のみがBP_TriggerBoxの配列に登録されました!!超便利!!