KinematicCharacterController methods (enableAutoStep, maxSlopeClimbAngle, minSlopeClimbAngle) not working in rapier2d-compat
Hello Rapier team,
I have encountered an issue with the KinematicCharacterController (KCC) while using rapier2d-compat. Specifically, the following methods do not seem to have any effect:
-
enableAutoStep -
maxSlopeClimbAngle -
minSlopeClimbAngle
Environment:
- Rapier version: rapier2d-compat
- Platform: TypeScript / JavaScript
- Use case: 2D side-scrolling game (Phaser 3)
Issue details:
- enableAutoStep: When called, the character controller doesn't appear to automatically step over small obstacles or stairs as expected. The character gets stuck at small steps instead of stepping over them.
- maxSlopeClimbAngle / minSlopeClimbAngle: These methods seem to have no effect on the KCC's ability to climb or descend slopes. I have tried different angle values, but the character's behavior remains unaffected, and it still slides down slopes regardless of the angle settings.
Expected behavior:
-
enableAutoStepshould allow the KCC to step over small obstacles automatically. -
maxSlopeClimbAngleandminSlopeClimbAngleshould control the maximum and minimum angles for climbing slopes or slipping down.
Steps to reproduce:
- Set up a
KinematicCharacterControllerin rapier2d-compat. - Try to use the above methods on KCC to modify its behavior.
- Observe that the methods do not alter the character's ability to step over obstacles or climb slopes.
Notes:
- I'm developing a 2D side-scrolling MMORPG using Phaser 3 with Rapier for physics.
- Is this a known issue with rapier2d-compat? Is there any workaround or fix available? Or am i missing something when config rapier world/KCC?
- For some reason, i have disabled gravity simulate on controller when character standing on obstacles/ground
Thank you for your attention, and I look forward to your response!
Hello, thanks for the report!
The character slide bug originated from rapier and is fixed in https://github.com/dimforge/rapier/pull/701 which should be merged soon ; then it make its way to an update to rapier.js 👍
I didn't investigate the stairs situation but I've seen other users mentioning it, I wouldn't be surprised if it's originating from rapier too. I'll keep you updated when I take a look at it!
Hello, wanted to add that this issue is also observable in rapier3d-compat. The autoStep and slope parameters don't work as expected.
https://github.com/user-attachments/assets/d1ca4bdb-4cc4-4015-b3b2-f0cb99c55317