Creature Control for Unity v0.1
Loading...
Searching...
No Matches
Creatures.Insects.Insect Class Reference

Description

A creature with six legs.

Unity Properties

In order to control various parts of the insect, certain bones need to be identified in the Configuration section. Bones which are children of a bone listed in this section are detected automatically.

The child bones can be inspected by folding out the parent bone section For instance, the antennae of the insect are automatically detected when the head is identified.

It is always possible to manually identify these bones or to override the automatically detected bones by editing the fields of the child bones.

Bones are identified by settings the parameters in the Configuration section to refer to bones in the armature or rig of the model.

Note
The configuration parameters should not point to the bones in the 'Target Rig' but to those in the model.
  • Configuration
    • Head (head) This shall point to the head bone transform
    • Tail (tail) This shall point to the first bone of the tail
    • Left Front Leg (leftFrontLeg) This shall point to the hip or upper leg bone transform of the leg
    • Left Middle Leg (leftMiddleLeg) This shall point to the hip or upper leg bone transform of the leg
    • Left Back Leg (leftBackLeg) This shall point to the hip or upper leg bone transform of the leg
    • Right Front Leg (rightFrontLeg) This shall point to the hip or upper leg bone transform of the leg
    • Right Middle Leg (rightMiddleLeg) This shall point to the hip or upper leg bone transform of the leg
    • Right Back Leg (rightBackLeg) This shall point to the hip or upper leg bone transform of the leg
  • Animator (animator)
Inheritance diagram for Creatures.Insects.Insect:
Creatures.Creature

Public Member Functions

override Quaternion GetStdOrientation ()
 Get the standard orientation of the model.
override void UpdatePose ()
 Update the bones of the creature's rig from the target rig pose.
override void Animate ()
 Update the animator parameters based on the linear and angular velocity.
virtual void Update ()
 Update the creature.

Static Public Member Functions

static Dictionary< string, Transform > GenerateBoneDictionary (Transform root)
 Get all protential bones in the model.

Public Attributes

Leg leftFrontLeg
 The left front leg of the insect.
Leg leftMiddleLeg
 The left middle leg of the insect.
Leg leftBackLeg
 The left back leg of the insect.
Leg rightFrontLeg
 The right front leg of the insect.
Leg rightMiddleLeg
 The right middle leg of the insect.
Leg rightBackLeg
 The right back leg of the insect.
float stepSize = 1
 The length of one step in meters.
Transform model
 The (hopefully rigged) 3D model of the creature.
Tail tail
 The abdomen of the insect.
Vector3 toCreatureTranslation
 The positional different between the target rig and model root.
Quaternion toCreatureRotation
 The rotational difference between the target rig and the model root.
Animator animator
 The animator of the creature.
Dictionary< string, Transform > boneDictionary
 A dictrionary of all (possible bones) indexed by their names.

Protected Member Functions

virtual void Awake ()
 Unity calls Awake when loading an instance of a script component.
virtual void OnValidate ()
 Editor-only function that Unity calls when the script is loaded or a value changes in the Inspector.
void ScaleAnimationForStepSize ()
 Scale the IK targets to scale the animation step size.
override Vector3 CalculateLinearVelocityWorld (float deltaTime)
 Calculate the linear velocity in world space.
virtual float CalculateAngularVelocityWorld (float deltaTime)
 Calculate the angular velocity around the verical axis in world space.

Protected Attributes

Vector3 previousPosition
 The position in the previous update.

Static Protected Attributes

static readonly float animationStepSize = 0.004f
 The step size in the walk animation.
static readonly int ForwardParameter = Animator.StringToHash("Forward")
 Animator parameter for forward/backward motion.
static readonly int RightParameter = Animator.StringToHash("Right")
 Animator parameter for sideward motion.
static readonly int RotateParameter = Animator.StringToHash("Rotation")
 Animator parameter for rotational motion.
static readonly int SpeedParameter = Animator.StringToHash("ForwardSpeed")
 Animation parameter for forward/backward speed.
static readonly int SideSpeedParameter = Animator.StringToHash("SidewardSpeed")
 Animation paramter for sideward speed.
static readonly int BaseLayer = 0
 The id of the animator base layer.
static readonly int SidestepLayer = 1
 The id of the sidestep layer of the animator.
static readonly int SidestepWalk = Animator.StringToHash("Sidestep.Strafe")
 The id of the SideStep.Walk animation state.

Properties

new Rig rig [get]
 The insect-specific rig.
new Head head [get]
 The insect-specific head.
new Torso torso [get]
 The insect-specific torso.
override float length [get]
 The length of the insect.

Member Function Documentation

◆ GetStdOrientation()

override Quaternion Creatures.Insects.Insect.GetStdOrientation ( )
virtual

Get the standard orientation of the model.

Returns
The standard orientation of the model

This matches the orientation of the target rig. This orienation does not depend on the orientations of the bones in the model but is derived from the hierarchy of the bones

Reimplemented from Creatures.Creature.

◆ UpdatePose()

override void Creatures.Insects.Insect.UpdatePose ( )
virtual

Update the bones of the creature's rig from the target rig pose.

Reimplemented from Creatures.Creature.

◆ Animate()

override void Creatures.Insects.Insect.Animate ( )
virtual

Update the animator parameters based on the linear and angular velocity.

Reimplemented from Creatures.Creature.

◆ CalculateLinearVelocityWorld()

override Vector3 Creatures.Insects.Insect.CalculateLinearVelocityWorld ( float deltaTime)
protectedvirtual

Calculate the linear velocity in world space.

Parameters
deltaTimeThe time step to use
Returns
The linear velocity in meters/second

This should be called only once per update

Reimplemented from Creatures.Creature.

◆ GenerateBoneDictionary()

Dictionary< string, Transform > Creatures.Creature.GenerateBoneDictionary ( Transform root)
staticinherited

Get all protential bones in the model.

Parameters
root
Returns

◆ CalculateAngularVelocityWorld()

virtual float Creatures.Creature.CalculateAngularVelocityWorld ( float deltaTime)
protectedvirtualinherited

Calculate the angular velocity around the verical axis in world space.

Parameters
deltaTimeThe time step to use
Returns
The angular velocity in degrees per second

This should be called only once per update


The documentation for this class was generated from the following file: