Gaming Life

一日24時間、ゲームは10時間

Blutilityで遊んでみる(1) レベルエディタ上でActorのスケールを変更する

 先日UE4.20のPreview1が公開された。で、このverで前々から気になってたBlutilityの機能がちょっと拡張されたらしいのでちょっと遊んでみた。詳しい手順は以下の記事が分かりやすい。

qiita.com

unrealengine.hatenablog.com

anapurna.co.jp

 ざっくり説明するとエディタ上でブループリントを実行できるという機能。UI拡張は出来ないがC++を書かずにある程度の機能拡張ができるというのが魅力。まだまだ実験段階でやれる事は少ないが可能性を感じる。

 とりあえず今回はActorのスケール値を二倍or二分の一にする関数を実装してみる。

実装

 上記の記事に従いBlutilityを使えるようにし、コンテンツブラウザで作成。この時親クラスは 「ActorActionUtility」 とする。

 コンテンツブラウザ上で右クリック->「ブループリントを編集」でブループリントを編集できる。関数「ActorScale 2times」と「ActorScale oneHalf」を作成。

f:id:ai_gaminglife:20180611012629p:plain

 中身はこんな感じ。oneHalfの方は掛ける値を0.5に変更するだけなので省略。特に説明することのない基本的なもの。

 続いてこのBlutilityの対象をActor継承クラスだけに制限するために関数のオーバーライドで「GetSupportedClass」を書き換え。Return NodeにActorを設定する。

f:id:ai_gaminglife:20180611012640p:plain

 このBlutilityはレベルエディタ上でActor継承クラスを選択した状態で右クリック->Scripted Action で使用可能。実際使った様子がこちら。

f:id:ai_gaminglife:20180611012523g:plain

 詳細パネルでScaleを直打ちしたほうが早い気もするが、Actorを複数選択した状態でこのBlutilityを実行すればそれぞれのScale値を基準に二倍してくれるのでその点においては良いかも。ただしUndoが効かないのが難点。  

f:id:ai_gaminglife:20180611012700p:plain

 最初画像下の「Get Selected Assets」を使ってうまくいかなかったのだが、上の「GetSelection Set」に変更したら機能した。この2つの違いはよくわかってない。

 まだまだ実験段階であるが色々できそう。しばらくこれで遊んでみるかも。