Character Movement Fundamentals is a rigidbody-based character movement system.
User Manual
|
Playable WebGL Demo
|
Playable Windows Demo
|
Forum
|
Discord
Put simply, it is a collection of scripts, components and prefabs that will help you quickly set up characters that can move around and react to any 3D game environment in a physically believable way.
Everything in this package is designed to be as versatile and adaptable as possible - whether you're creating a fast-paced first-person
shooter, an atmospheric third-person adventure game or a 2.5D sidescoller, this package will provide all the necessary fundamentals you need.
Features:
- In-depth user manual.
- Fully documented source code.
- Versatile, highly customizable character controller system.
The included character controller can handle all kinds of terrain, smoothly walks up and down slopes and stairs without losing ground
contact and can even slide down slopes that are too steep.
In addition to that, it can be rotated freely at runtime, allowing for
interesting gameplay possibilities (walking on ceilings or on a miniature planet [...]).
To optimize your game for any type of platform, you can choose from three different ground detection methods.
Finally, all movement-related properties (movement speed, air control, jump speed, step height [...]) can be adjusted to fit any type of gameplay.
- All-purpose camera system
The included camera system is well suited for any type of camera perspective (first-person, third-person, top-down [...]) and features
built-in camera rotation smoothing, invertible input axes and adjustable vertical camera angle limits.
- Three example scenes that showcase all the features of the package.
- 16 ready-to-use controller prefabs, that can be "drag'n'dropped" into any scene and just work, no further setup required.
- A collection of basic environment building blocks and a fully rigged and animated low-poly character model, both of which are great
for quick prototyping.
[IMPORTANT NOTICE: Please create SAFETY BACKUPS of your projects before importing if you used an older version of the package and made changes to any scripts!] Version 2.2 MOVER: - Added 'SetColliderThickness()' function to 'Mover', which can be used to change the thickness/width of the controller at runtime. - Most variables related to collider size inside the 'Mover' script are now not public anymore (since they really shouldn't be changed directly at runtime). - Instead, changing the controller's size/shape at runtime should be done only via the 'SetColliderHeight()'/'SetColliderThickness()'/'SetStepHeightRatio()' functions, which will automatically update the ground detection system based on the new size/shape. CONTROLLERS: - All air movement calculations inside 'AdvancedWalkerController' have been completely overhauled and now properly use the controller's momentum. - The 'Air Control' setting has been replaced with 'Air Control Rate' (higher values result in a more direct movement while the controller is in the air). - The slope movement calculations have also been overhauled and are now more effective at preventing the controller from going up slopes (which are too steep, based on slope limit). - A few minor, general code improvements to the 'AdvancedWalkerController'. CAMERA SYSTEM: - Fixed a bug inside 'Camera Mouse Input' that resulted in a 'NaN' error when setting Time.timeScale to '0f' at runtime. - Fixed a bug inside 'Camera Distance Raycaster' that could result in incorrect layermask settings. MISC: - A few minor code improvements to the 'AnimationControl' script.