Meiryo’s blog

やってみて詰まったことを備忘録として残すブログ

【UE5】スポーンして動く的を作った時に詰まったこと

アンリアルクエスト4でスポーンして動く的を作ったのですが
色々詰まったのでメモを残しておきます。

環境
Unreal Engine5.0.3

的の動かし方

この的はInterpToMovementコンポーネント
使用して動かしています。

InterpToMovementコンポーネントの使い方が
わからない方はこちらの動画を見てみてください

スポナーのBlueprint

やっていることは

  • スポーンするActorの位置と向き
  • 動く速さを変更できるようにするための変数Duration
  • スポナーの参照

を入力しています。

SpawnActorfromClassにDurationとスポナーのピンを
出す方法は後ほど説明します。

動く範囲を可視化して楽に設定できるようにする

StartPointとEndPointは的の動く範囲を設定しています。

「Instance Editable」と「Show 3D Widget」に
チェックを入れることにより
ビューポート上で設定できるようになります。

スポーンするActorのBlueprint

スポナーで設定した情報を
InterpToMovementコンポーネントに設定します。

InterpToMovementから繋がっている青いSETノードは
「Set Control Points」ノードです。

スポナーに変数を公開する

SpawnActorfromClassにDurationとSpawnerピンが
表示されていましたがこれは変数の設定で
「Instance Editable」と「Expose On Spawn」に
チェックを入れるとできるようになります。

【余談】ActorにOwnerかInstigatorを渡す場合

これは試したことのメモなので必要ない人は飛ばしてください。

最初、Ownerピンがあるのでこれに参照を渡せば
良いのではないかと思いました。
それでやってみた結果ですが
スポナーの情報を取り出せませんでした。

他の変数に設定されているのかと思いBlueprint Debuggerを
見てみたところ、Instigatorという変数が使えそうだとわかったので

やってみたらうまくいきました。

が。
Instigatorのドキュメントを読んだらダメージ担当の型?らしいので
この使い方は良くなさそうと思いやめました。

スポナーを置いて設定する

スポナーを配置して移動範囲を設定しますが
StartPointとEndPointの初期値を0にしてある場合、
重なっていて操作しづらいです。
これは最初エディタで位置を変えると操作しやすくなります。

これで動く範囲を楽に設定できるスポナーを作れました。
Durationを変更すると速度も変更できます。

動く床にする場合の注意

以前動く床をInterpToMovementを使用して作ったのですが
うまく動かなくなる現象が起きました。
もしスポーンする動く床などを作ろうと思っている人は
下記の記事を見てみてください。
【UE5】InterpToMovementで作った動く床が沈む問題の解決法 - Meiryo’s blog

参考

Moving Platform Tutorial In 3 Minutes Unreal Engine 4/5 - YouTube

Change an Actor Class' Variable before spawning - #5 by Ohmless - Programming & Scripting - Epic Developer Community Forums

Blueprint Quickshot: Expose on Spawn | 11 | v4.7 Tutorial Series | Unreal Engine - YouTube