【UE5】NPCのカメラを乗っ取ってデモモードみたいなことをする
ちょっとタイトルがやったことを合っていないかもしれませんが備忘録として。
元々やりたかったのは「PLAYするたびに自力で操作するのがもう面倒だったので、いっそのこと自キャラもNPCとして動いてくれないかな」という内容です。
なんか昔のゲーセンにあったようなアクション系ゲームのデモ画面みたいなイメージです。ある程度の無操作時間が続くと、自キャラが勝手にワールドを歩き回るやつ。
できるっちゃできるみたいなのですが上手く動かなったので、今回は既存のNPCのカメラを乗っ取る方法でやってみました。
やり方
下記の徘徊NPCが実装してある前提です。
1.NPC Characterを改造する
[NPCCharacter]のブループリントを開き、コンポーネントに[Spring Arm]と[Camera Component]を追加します。
手っ取り早いのは[ThirdPersonCharacter]を開いて、コンポーネントの[CameraBoom]と[FollowCamera]があるのでコピーして、[NPCCharacter]にペーストするのが早くて確実かと。
2.NPC Spawnを改造する
[NPCSpawn]ブループリントを開いて、イベントグラフを開く。[Set View Target with Blend]ノードをつなぐ。
inputは、
TargetはGet Player Controllerのoutを接続。
New View Targetは乗っ取りたいカメラを持つCharacterを接続します。
このレベルでは100体のNPCをスポーンしていますが、今回は例として、100番目(=最後)にスポーンしたNPCのカメラを乗っ取ります。
最後のCharacterをNew View Targetに接続しました。
PLAYしてみましょう。しばらくして100体のNPCのスポーンが完了すると、勝手にカメラが移動してNPCの背後を追い続けるようになりました。
ただしカメラがカクカクってぎこちないんですよね。いくつか設定があると改善します。
3.追尾カメラ設定
[NPCCharacter]のブループリントを開き[CameraBoom]を選択。[Lag]グループのパラメータを調整します。
Cameraグループ
Target Arm Length: 基準となるキャラクターからどのくらい距離を置くか、の距離。
Lagグループ
Enable Camera Lag: ONにしましょう。
Camera Lag Speed: 追尾の遅れ具合です。値が小さいほど、遅れて追尾します。
Camera Rotation Lag Speed: 回転の追尾の遅れ具合。
Camera Lag Max Distance: 追尾の遅れる距離の最大値。
