お世話になっております。
トリガーボリュームとフラグについての処理で質問です。
サードパーソンのゲームで、PCがAボリューム内にいる間はAフラグ(Aカメラ)Bボリューム内にいる間はBフラグ(Bカメラ)を立てます。
※フラグが立っている間はプレイヤーカメラの代わりにレベルに設置されたカメラからの視点になる仕組みです。
そしてABボリュームは画像のように隣接させており、ボリューム間を移動する場合は常にどちらかのフラグ(カメラ)を立てたいです。(厳密には、位置的に近い or PCが触れている面積の大きい方のボリュームのフラグ)
ですがBeginOverlapとEndOverlapでこの制御をしようとすると、ボリューム間移動の際、PCが中途半端にボリュームへ出入りしたときにEndOverlap処理が前後してしまったりとなかなか問題が多いです。
こういった制御に適した機能など、何かありませんでしょうか?
tamfoi
(tamfoi)
2
厳密にいうと要求に応えられていないのですが、思いついた方法を記載しておきます。
1.katutojiWazenさんと同じようにレベルにCameraとTriggerを2つずつ用意。
2.CharacterにCameraListという名前のCameraActor型の配列を作ります。
3.下記画像の3つのCustomEventをCharacterに作ります。AddCameraとRemoveCameraの引数の型はCameraActorになります
4.レベルBPには以下のように記述します
最初に厳密でないと言ったのは距離では無く、外に出たら次のカメラに切り替えるという仕様になるからです
距離や侵入している面積(または体積)で判定する場合は最後にBeginOverlapした時に得たHitResultやCharacterの位置、向きなどを使えば出来るかもしれません
少しでも参考になれば幸いです。