# Components

These are the core components included in ECM2:

* [Character](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/character)

  The `Character` is built on top of the `CharacterMovement` component and serves as a base for all your game avatars, whether they are player-controlled or AI-controlled.
* [NavMesh Character](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/navmesh-character)

  The `NavMeshCharacter` component extends a `Character` through composition, providing additional navigation capabilities based on a `NavMesh`.
* [Character Movement](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/character-movement)

  The `CharacterMovement` component is a robust and feature-rich fully kinematic character controller, also known as a motor.
* [Slope Limit Behaviour](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/slope-limit-behaviour)

  The `SlopeLimitBehaviour` component overrides the `CharacterMovement slopeLimit` property, enabling the definition of per-object walk-ability behavior instead of per-face.
* [Physics Volume](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/physics-volume)

  The `PhysicsVolume` component allows you to define physics volumes (trigger areas) such as water, air, oil, etc. Characters will react according to these settings when inside this volume.
* [Root Motion Controller](https://oscar-gracian.gitbook.io/easy-character-movement-2/user-manual/general/components/root-motion-controller)

  The `RootMotionController` is a helper component designed to retrieve the `Animator`'s root motion velocity vector, denoted as `animRootMotionVelocity`. When root motion is enabled, this provides the animation velocity to the associated `Character` class.
