Kinematic Character Controller

Kinematic Character Controller

Launched Sep 2017 8.8y

Updated Jun 2022 4.1y Abandoned?

Philippe St-Amand

4.6/5 · 5 recent reviews · rating falling
5.0
183 reviews total
See store for pricing tools

Price history

Tracked store price

No tracked price history is available for this asset yet.

No tracked price history is available for this asset yet.

Signals

Momentum (24h) +1036 views
Recent Sentiment
4.6/5 · 5 recent reviews · rating falling
Package size 27.09 MB

Review Consensus

Editor's Cut

Pros

This asset is widely regarded as a professional-grade, highly extensible kinematic character controller that far surpasses Unity's native offerings in terms of control, physics stability, and movement versatility. It features clean, well-documented, and readable source code that serves as an excellent educational resource for developers looking to build custom movement systems. Users praise its ability to handle complex scenarios like slopes, ceilings, and networking-ready physics, making it a powerful foundation for everything from prototypes to production-ready shooters.
While it is an elite, free framework for those willing to master its codebase, it is a high-maintenance tool that demands significant engineering effort to fix legacy bugs and implement standard gameplay features.

Cons

The asset is not a true plug-and-play solution and carries a significant learning curve, requiring developers to invest time in understanding its architecture to implement basic features like sprinting or crouching. It suffers from occasional collision clipping issues, jitter on specific geometry, and requires manual code patches to resolve quaternion rotation errors when running on newer versions of Unity. Furthermore, the lack of active updates means users must be prepared to perform their own maintenance and troubleshooting to keep it functional in modern environments.
Legacy Software: this asset was last updated 4.1 years since update. Verify compatibility before purchase.

Render pipelines

Built-in

Description

*This asset is now free, and there can be no guarantees regarding support*



What is Kinematic Character Controller?


Kinematic Character Controller a relatively low-level character controller solution that is not tied to any specific game genre and is made to be cleanly integrated into any project/architecture with as little friction or bloat as possible. Instead of using rigidbody physics, it uses a "collide and slide" algorithm that makes its movements perfectly fluid, precise and responsive. Note that its "kinematic" nature means that it will not get pushed by forces or rigidbodies automatically. These sorts of interactions have to be explicitly scripted.



Who is it for?


Strong programming and 3D math knowledge are required in order to use this package. This is by no means a "plug-and-play" solution, and it expects you to write your own input, camera, animation and velocity/rotation-handling code. It was made for users who wish to have the full freedom of writing their own game-specific character controllers, but want to have a strong foundation to start with.



How is it used?


You add a "KinematicCharacterMotor" component to your GameObject, and then create your own custom class that implements an ICharacterController interface and assign it to the motor, giving you various "callbacks" from the motor. Examples of these callbacks are: UpdateVelocity, UpdateRotation, IsColliderValidForCollisions, etc.....



What's included?


This package contains:


- The "core" components that users will use to build their own character controllers


- An "example" character controller that's meant to demonstrate the system's capabilities (the one you see in the WebGL demo)


- A "walkthrough", which is a series of tutorials that give examples of how to implement common features such as double-jumping, climbing ladders, swimming, rootmotion, etc....



Main features and caracteristics


- Capsule-based collisions


- Smoothly interpolated movement


- No GC allocations and several Quality/Performance options


- Handles moving on steps


- Ground snapping (does not "launch" off of slopes)


- Gracefully handles common character controller pitfalls such as slowly shrinking corridors, angled corners and concave colliders


- Supports pushing or standing on dynamic rigidbodies


- Support for moving platforms, without requiring any object parenting.


- Supports arbitrary gravity and up direction


- Supports locking physics/movement to a specific plane (useful for 2.5D games)


- Support for ignoring specific collisions


- Made with networking in mind. You can have explicit control over the "ticking" of the character simulation, allowing you to use this package in an authoritative server architecture with re-simulation of inputs.



_____________________



WebGL Demo


User Guide


Walkthrough