三人称視点ゲームにて、カメラが壁を越えて 向こう側が見える問題

プレイキャラ、壁、カメラ…があったとして。
カメラが壁に近づいたり、キャラと壁に挟まれるようになると、壁メッシュを半分…視点が通り抜けてしまうので、見せたくないものも見えてしまいます。
画像

①カメラの当たり判定 大きくしたら解決するかな・・・?と思ったのですが、 カメラやBoom(アーム)のコリジョン設定に それらしいのが見つけられない
②カメラがプレイキャラのコリジョン無視すれば。あるいは。その逆、キャラがカメラを無視してくれた…と思ったのですが、やり方が分からない。(プロジェクト設定>コリジョン>プロファイル設定…などからアプローチしも変化が見られない)

助言お願いします!!

SpringArmComponent(CameraBoom)のProbeSizeを変更すればCollisionに反応する距離を広げることができます
ただし、これはCameraが貫通しないことを保証する機能ではありません
あくまでもSpringArmの長さを調整するための機能です

SpringArmのCollision判定はデフォルトでは Camera Channelを使用しています
CharacterのデフォルトのCollisionPreset(=Pawn)も、CameraChannelをBlockしています
このCameraChannelをBlockしないように設定するか、SpringArm側が別のCollisionChannelを用いて判定するようにすれば、Characterや地形に反応しなくなります

返答ありがとうございます。
アプローチとしては、最後の「SpringArm側が別のCollisionChannelを用いて判定する」というのをやりたかったのですが、一日中試行錯誤しても どこを見落としてるのか できませんでした…。
差し支えなければ、「自分ならこうする」…という具体的な設定例を指南頂けないでしょうか?
レベルBP、キャラクタBP(+カメラ+アーム)、コントローラーBP、プロジェクト設定…etc

頼り切りで申し訳ございません。

SpringArmComponentの Probe Channel を変更してみてください

SpringArmは当たり判定をチェックする際、自身をここで指定されたCollisionObject/Channelとして扱います
例えばVisibilityに設定すれば、PawnはVisibilityをBlockしないため、キャラクターは無視されますが、地面(BlockAll)はVisibilityをBlockするため、地面を検知してSpringArmの長さが変わります

Character側のCollisionPresetで対処するのであれば、CameraをBlockしないカスタムプリセットを作成し、それを設定してください
プレイヤーはともかく、敵や群衆のCollisionはカスタムプリセットを使ってCameraをBlockしないようにしたほうが都合が良い場合があります

そもそもCollisionチェックしたくない、という場合であれば、 DoCollisionTest をOFFにすれば、Collisionチェックは行われなくなります

1 Like