All Classes Namespaces Functions Variables Enumerations Properties Pages
Classes | Public Types | Public Member Functions | Public Attributes | Properties | List of all members
Grounding Class Reference

Foot placement system. More...

Classes

class  Leg
 The Grounding Leg. More...
 
class  Pelvis
 The Grounding Pelvis. More...
 

Public Types

enum  Quality
 The raycasting quality. Fastest is a single raycast per foot, Simple is three raycasts, Best is one raycast and a capsule cast per foot. More...
 

Public Member Functions

RaycastHit GetRootHit (float maxDistanceMlp=10f)
 Raycasts or sphereCasts to find the root ground point. Distance of the Ray/Sphere cast is maxDistanceMlp x maxStep. Use this instead of rootHit if the Grounder is weighed out/disabled and not updated. More...
 
bool IsValid (ref string errorMessage)
 Gets a value indicating whether this Grounding is valid. More...
 
void Initiate (Transform root, Transform[] feet)
 Initiate the Grounding as an integrated solver by providing the root Transform, leg solvers, pelvis Transform and spine solver. More...
 
void Update ()
 Updates the Grounding. More...
 

Public Attributes

LayerMask layers
 Layers to ground the character to. Make sure to exclude the layer of the character controller. More...
 
float maxStep = 0.5f
 Max step height. Maximum vertical distance of Grounding from the root of the character. More...
 
float heightOffset
 The height offset of the root. More...
 
float footSpeed = 2.5f
 The speed of moving the feet up/down. More...
 
float footRadius = 0.15f
 CapsuleCast radius. Should match approximately with the size of the feet. More...
 
float footCenterOffset
 Offset of the foot center along character forward axis. More...
 
float prediction = 0.05f
 Amount of velocity based prediction of the foot positions. More...
 
float footRotationWeight = 1f
 Weight of rotating the feet to the ground normal offset. More...
 
float footRotationSpeed = 7f
 Speed of slerping the feet to their grounded rotations. More...
 
float maxFootRotationAngle = 45f
 Max Foot Rotation Angle, Max angular offset from the foot's rotation (Reasonable range: 0-90 degrees). More...
 
bool rotateSolver
 If true, solver will rotate with the character root so the character can be grounded for example to spherical planets. For performance reasons leave this off unless needed. More...
 
float pelvisSpeed = 5f
 The speed of moving the character up/down. More...
 
float pelvisDamper
 Used for smoothing out vertical pelvis movement (range 0 - 1). More...
 
float lowerPelvisWeight = 1f
 The weight of lowering the pelvis to the lowest foot. More...
 
float liftPelvisWeight
 The weight of lifting the pelvis to the highest foot. This is useful when you don't want the feet to go too high relative to the body when crouching. More...
 
float rootSphereCastRadius = 0.1f
 The radius of the spherecast from the root that determines whether the character root is grounded. More...
 
bool overstepFallsDown = true
 If false, keeps the foot that is over a ledge at the root level. If true, lowers the overstepping foot and body by the 'Max Step' value. More...
 
Quality quality = Quality.Best
 The raycasting quality. Fastest is a single raycast per foot, Simple is three raycasts, Best is one raycast and a capsule cast per foot. More...
 

Properties

Leg[] legs [get, set]
 The Grounding legs. More...
 
Pelvis pelvis [get, set]
 The Grounding pelvis. More...
 
bool isGrounded [get, set]
 Gets a value indicating whether any of the legs are grounded More...
 
Transform root [get, set]
 The root Transform More...
 
RaycastHit rootHit [get, set]
 Ground height at the root position. More...
 
bool rootGrounded [get]
 Is the RaycastHit from the root grounded? More...
 

Detailed Description

Foot placement system.