Kinematic Character Controller implementation

I'm currently trying to implement the Kinematic Character Controller ( to Bolt. Unfortunately, it's not that easy than I thought.

The controller uses its own UpdateVelocity and UpdateRotation loop and requires to update both parameters inside them. So unlike the unity character controller, there is no Move() method.

Maybe someone could point me in the right direction here?


  • Thanks again stanchion!
  • edited August 2018
    Thanks for providing this detailed set of steps and sample code. Really helps get started.

    One issue that I'm seeing is that characters using this system that are tied to movers (or other simulated objects) are always a frame behind. This would seem to be from the change at the Kinematic Character Controler System - Simulate method which is no longer used. The update flow with that is that every entity gets a Physics Update, then every one gets an UpdatePhase1, then Mover update, and finally an UpdatePhase2. So it runs each step on all the entities, then moves to the next step.

    In the example code - these are ran in that same order - but PER entity (ie: PlayerSimulation:PerformFullSimulation). So this makes interactions between entities order dependent per frame - as opposed to each section being solved - and then put on the wire.

    Does this seem like the right assumption here? Or am I off in the weeds?

    It doesn't seem insurmountable to change this up but wanted to see if I'm on the right track - or if there is something I'm just missing.
    Thanks for any feedback!
Sign In or Register to comment.