こんにちは
現在サードパーソンテンプレートを用いてカメラが水中に入ったらカメラにエフェクトをかけるということをしようとしているのですが、Overlapイベントがキャラクターが移動したときのみしか発生しません
上記を実現するために下記の手順を踏みました
- テンプレートに付属しているThirdPersonCharacterのFollowCameraの子にSphereCollisionを配置する
- SphereCollisionは OverlapAllDynamic / Generate Overlap Eventを有効にする
- イベントグラフにて On Component Begin Overlap (Sphere) イベントを置き、Print String等であたったことがわかるようにする
- フィールド上に水中を模した大きなBoxCollisionを持ったアクタを設置しSphereCollisionと同じように設定をする
これで3人称視点でカメラを動かし、水中を模したBoxCollisionにカメラが侵入すればOverlapイベントが走るかと思ったのですが、実際にはキャラクターをWASDまたはジャンプなどキャラ自体に動きをもたせた状態じゃないとOverlapが発生しないという事態になりました。
例
- カメラは水の中でWASDを押してキャラ移動 : 移動した時点でOverlap発生
- カメラは水の外 / キャラクターのみ水中でWASDを押してキャラ移動 : Overlap発生せず
- キャラクターを移動させっぱなしの状態でカメラを水中に入れたり出したり : 水中に入る度にOverlap発生
- キャラクターは移動させっぱなしの状態でカメラは水の外 : Overlap発生せず
上記のようにキャラが移動するときのみしか当たり判定?が働いてないように感じられます
一通り調べては見たのですがコリジョンを使用した方法の解決策がわかりませんでした
どなたか知恵を貸していただけなしでしょうか、よろしくお願いいたします。
環境
- Windows 10 64bit
- Unreal Engine 4.19
- ThirdPerson テンプレート