UE4初心者が頑張ってるブログ

Unreal Engine4を使用した開発メモ、及びそれに関連することについて不定期に書いています。

UE4 4.20 BlutilityとEditor Scriptingを試してみる その3

前回の記事からの続きです。

合わせてお読みください。

mozpaca.hatenablog.com

 

BlutilityとEditor Scriptingの触りの部分を

前回と前々回の記事で書きました。

 

今回はエディタからStatic MeshにCollisionをつける

処理を書きたいと思います。

 

今回はテーブルのStatic MeshにCollisionを付けたいと思いますが、

デフォルトでCollisionがついているので、Collisionを削除しておきます

f:id:MozPaca:20180711172744p:plain

 

コリジョンからコリジョンを取り除くを選択してSimple Collisionを削除します。

f:id:MozPaca:20180711172952p:plain

 

これで下準備は終わりました。

前回同様にBPU_ActorActionに処理を追加していきます。

f:id:MozPaca:20180711171909p:plain

 

まずは、関数のオーバーライドからGet Supported Classを選択します。

f:id:MozPaca:20180711171857p:plain

 

この関数は右クリックからScript Actionsのタブを出すフィルター的なものです。

デフォルトでは全てのクラスがリターンノードに渡されています。

今回はStatic MeshにCollisionを付けさせるのが目的なので、

Static Mesh以外でScript Actionsのタブが出ると困ります。

f:id:MozPaca:20180711172019p:plain

 

なので、このようにStatic Mesh Actorに対してだけ、

Script Actionsのタブが出るようにしました。

f:id:MozPaca:20180711172300p:plain

 

確認してみました。

Atmospheric Fogで右クリック→出ない。

f:id:MozPaca:20180711172354p:plain

 

Chair→出た。

f:id:MozPaca:20180711172443p:plain

 

大丈夫っぽいです。

 

次にイベントグラフでこのように処理を書きました。

Get Selected Level Actorsで選択したActorを取得し、

それがStatic Mesh ActorであればSimple Collisionを追加するという処理です。

引数をもたせてCollisionの形も指定できるようにしました。

f:id:MozPaca:20180711172511p:plain

 

では確認してみます。

レベルに配置されているテーブルを右クリック

Script ActionsからCE_Add Simple Collisionsを選択します。

f:id:MozPaca:20180711173039p:plain

 

すると引数に渡していたShape Typeを選択する、

ダイアログが出てきました。

わかりやすくするため、Boxを選択します。

f:id:MozPaca:20180711173152p:plain

 

OKボタンを押すと画面が切り替わり、

指定したBoxコリジョンがついたのが確認できました。

f:id:MozPaca:20180711173254p:plain

 

今回のような処理だと実用性が低いですが、

Editor Scriptingで追加されたノードはかなり多いうえに、

c++ではなくノードでこのようなことができる機能は、

非常に面白いと思います。