キャラクターがコリジョンにぶつかって、Z軸が動いてしまうのを止めたい。

プレイヤーキャラクターが移動中に、物理的な傾斜のあるCollisionにぶつかった場合、
Z軸で滑るように移動することでオブジェクトを自動で避けてしまうことを防ぎたいです。
例えば、通常登れてしまう坂の様なCollisionを、壁のように登れないようにしたいです。
ですがXY軸でも行ってしまうと壁沿いに移動ができなくなってしまうので、Z軸のみ反映させたいです。

ちなみに、キャラクターは操作によりZ軸でも移動する事があるので、キャラクターをZ軸で固定してしまうのではなく、
あくまで坂のようなCollisionをZ軸で滑り避けてしまえる仕組みのみを削除したいです。

よろしくお願いします。

キャラクターのCharacterMovementComponentの設定の中に
MaxStepHaightWalkableFlooAngleという設定項目があります

それぞれ階段のように踏み越えられる高さと、登れる坂の角度となります

これらを調整すれば坂を越えられないキャラクターを設定することが可能となります。

1 Like

LunaNelis様。ご回答ありがとうございます。
早速MaxStepHeightとWalkbleFloorAngleを変更したところ、歩行するキャラクターに関しては希望道理の挙動ができました。ありがとうございました。

ですが私が作成しているプロジェクトでは、主に水中でのプレイになるため、Swimmingの状態では教えていただいた設定が活用できませんでした。

では水中でもWalkingの設定を使えるようにすれば良いのではと思い、キャラクターのDefoltWaterMovementMoveを[Walking]にしたのですが、WaterVolumeを有効にしたPhysicsVolumeの中でのキャラクターの挙動は、Swimmingのままでした。

水中のキャラクターにも、MaxStepHeightやWalkableFlooAngleの様な挙動を適用する方法を御存知でしたら教えていただきたいです。
よろしくお願いします。