UE4 4.20 BlutilityとEditor Scriptingを試してみる その3
前回の記事からの続きです。
合わせてお読みください。
BlutilityとEditor Scriptingの触りの部分を
前回と前々回の記事で書きました。
今回はエディタからStatic MeshにCollisionをつける
処理を書きたいと思います。
今回はテーブルのStatic MeshにCollisionを付けたいと思いますが、
デフォルトでCollisionがついているので、Collisionを削除しておきます
コリジョンからコリジョンを取り除くを選択してSimple Collisionを削除します。
これで下準備は終わりました。
前回同様にBPU_ActorActionに処理を追加していきます。
まずは、関数のオーバーライドからGet Supported Classを選択します。
この関数は右クリックからScript Actionsのタブを出すフィルター的なものです。
デフォルトでは全てのクラスがリターンノードに渡されています。
今回はStatic MeshにCollisionを付けさせるのが目的なので、
Static Mesh以外でScript Actionsのタブが出ると困ります。
なので、このようにStatic Mesh Actorに対してだけ、
Script Actionsのタブが出るようにしました。
確認してみました。
Atmospheric Fogで右クリック→出ない。
Chair→出た。
大丈夫っぽいです。
次にイベントグラフでこのように処理を書きました。
Get Selected Level Actorsで選択したActorを取得し、
それがStatic Mesh ActorであればSimple Collisionを追加するという処理です。
引数をもたせてCollisionの形も指定できるようにしました。
では確認してみます。
レベルに配置されているテーブルを右クリック
Script ActionsからCE_Add Simple Collisionsを選択します。
すると引数に渡していたShape Typeを選択する、
ダイアログが出てきました。
わかりやすくするため、Boxを選択します。
OKボタンを押すと画面が切り替わり、
指定したBoxコリジョンがついたのが確認できました。
今回のような処理だと実用性が低いですが、
Editor Scriptingで追加されたノードはかなり多いうえに、
c++ではなくノードでこのようなことができる機能は、
非常に面白いと思います。