A third-person character controller for BabylonJS that handles movement, collisions, and animations without a physics engine.
BabylonJS-CharacterController is a third-person character controller library for the BabylonJS 3D engine. It handles character movement, collisions, animations, and camera tracking using kinematic equations without requiring a separate physics engine. It solves the problem of implementing realistic, responsive character controls in web-based 3D applications.
Web developers and game creators using BabylonJS who need ready-to-use character movement with collision detection and animation blending for third-person or isometric games.
Developers choose this controller for its lightweight, physics-free approach that integrates seamlessly with BabylonJS, offering extensive animation support, customizable movement modes, and programmatic control without the overhead of a full physics engine.
A CharacterController for BabylonJS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports 17+ animation states including walk, run, jump, and strafe, as listed in the README, enabling diverse character behaviors without custom animation code.
Offers dual modes for third/first-person and top-down/isometric gameplay, with configurable turning options, allowing adaptation to various game types.
Automatically adjusts camera position to avoid obstacles, keeping the character in view, which enhances user experience without manual intervention.
Uses kinematic equations and BabylonJS's collision system instead of a physics engine, reducing overhead for smoother performance in web applications.
Version 0.2.0 introduced breaking changes like animation name updates and module restructuring, which can disrupt existing projects and require migration effort.
Does not react to forces and applies uncontrolled forces to other objects, as stated in the README, making it unsuitable for scenes needing precise physics simulations.
Requires manual conversion of mesh rotation from quaternion to euler, especially for GLTF/GLB files, adding an extra step and potential for errors.