A character controller is used to move around characters in the physics world. The character is simplified down to a bounding volume and when it moves it does not do it in a physically realistic way. That is mostly evident on the player character in third-person or first-person games.
Dynamic vs Kinematic
There are two ways to make the character controller interact with the rest of the physics way. It can be dynamic or kinematic. With a Dynamic CC you get the basic physic and then you add special cases for when you do not need physics. With a Kinematic CC you add the special cases to get the everything including the physics to work.
A DCC is added as a shape to the physics system with a limit on rotation so it does not fall over. To move it around set the velocity or force.
The character controller use a bounding volume to simulate the character and the two common ones are an AABB or a capsule.
- An AABB has fixed rotation to avoid the problem of the player getting stuck when rotating. It is made up of a center position and an size vector.
- A capsule has a center position, a height and a radius. The height is the distance between the two spheres at end end of the capsule. A capsule is a better choice for climbing stairs.
A way to change the size of the character volume if he crouch for example.
- Super Character Controller - 2016
- Part 1 – Collision Resolution
- Part 2 – Implementation
- Part 3 – Analysis of the Physics API
- Part 4 – First Draft
- Part 5 – Release 1.0.0
- Part 6 – Ground Detection
- The Poor Man's Character Controller - 2015
- PhysX Character
- Bullet Character
- Unity3D Character