The Animator Monitor allows you to specify if the Animator should be updated during Fixed Update or Late Update. In order for the controller to be deterministic the Update Location must be set to Fixed Update, otherwise Late Update can be used. You may notice a performance increase by using Late Update instead of Fixed Update.
Animator Window Update
At runtime you’ll notice that the Animator Controller doesn’t update within the editor. This is because the Ultimate Character Controller disables the Animator component so it can update the Animator Controller in the correct execution order. Unfortunately when the component is disabled the Animator Controller editor doesn’t update even if the Animator is being updated. If you want to visually see what state the Animator Controller is in you can enable Debug Animator Controller on the Animator Monitor component. This field should only be enabled when debugging because the timing will be slightly off and in first person view you will notice some jitter.
New Animator Controller
The animator controller included works well for the included demo scene but may not be the best setup for your particular game. It is recommended that you start from a completely new animator controller and add your own states/transitions. The character controller doesn’t particularly care what structure the animator controller has. The only requirement is that you have the same parameters as what the demo animator controller uses.
The Demo Animator for the third person character is made up of 13 layers. Each layer has a specific role in terms of what it controls for the character’s movements which is achieved by utilizing masks and transitions.
The Base Layer is the primary layer and contains all information related to movement for the character. If no other layer is activated everything would default to this layer, so all animations in this layer contain lower and upper body data.
The character’s movement is split into two basic states, Idle and Movement. When not in motion and no other abilities are active, the character defaults to Idle. If the character is not in motion but aiming, the character defaults to Aim Idle. Same thing if the character is in motion, the character could either be in Movement or Aim Movement.
Aim Idle and Aim Movement are then broken down into three different forms of such movement in the default animator: Aim, Melee Aim, and Bow Aim. Each of these aim movement styles correspond to the Movement Set ID value which is set on each individual weapon. In this case all shootable weapons (outside of the bow) are going to Aim (Movement Set ID = 0), melee weapons are going to Melee Aim (Movement Set ID = 1), and the bow is going to Bow Aim (Movement Set ID = 2). You can customize your animator to make use of any number of Movement Set ID values, or only use one set.
Outside of character movement the Base Layer contains substates for a variety of abilities which include Crouch, Fall, Interact, Jump, Quick Turn, Ride, Start Movement, and Stop Movement. Crouch is an ability that is treated as another form of movement, so it’s substate is set up identically to the standing idle and movement substates. The animator transitions to each of these abilities based on the value of the Ability Index parameter.
Left Hand and Right Hand Layers
These two layers are masked to control only the left or right hand of the character respectively. These layers are used to override the Base Layer if an item is equipped that does not have a specific idle animation for the upper body. For example, if the Frag Grenade is equipped the right hand should grip the grenade, but all other motion for the idle animation would remain the same as the Base Layer. So in this case, an idle animation is placed under the Frag Grenade substate within the Right Hand Layer to indicate that the right hand fingers should be in the grip animation at all times.
This layer is masked to control only the arms of the character, it does not utilize chest/torso motion. This layer is used for any item animations that use both arms while the character is in motion. The reason why these can’t be on the Upper Body Layer is so the chest is not included when the character is in motion. If the chest were to be included when moving during the equip animation, the walk cycle for the chest would become out of sync with the base layer. Whenever the character is in motion the animator will use this layer for item abilities such as equip/unequip, reload, etc.
This layer is masked to control the entire upper body of the character, including the chest/torso motion. This layer is used for any item animations that should utilize both arms and the chest rotation.
The shootable weapon substates are identical to the states on the Arms Layer, so the ones on the Upperbody Layer are used to include the chest rotation when the character is not in motion.
The melee weapon substates include the same item actions as the Arms Layer, and in addition also have any attack animations that should include the upper body while in motion. The melee attack animations always include the chest rotation otherwise these would look strange.
Finally, this layer also includes some abilities that utilize both arms and the chest bone such as interact and pickup item.
Left Arm Layer / Right Arm Layer
These layers are masked to control only the left or right arm of the character and do not include the chest/torso motion. These layers are used for any item actions that can be performed with one arm only or use each arm separately.
For instance, with the lighter melee weapons such as the knife and sword, or the frag grenade, while in motion the left arm does not need to play when performing item actions such as equip/unequip, etc. That is why those are on this layer and not the Arms Layer.
The dual pistols are able to be used independently of each other and therefore have their own individual actions on each layer. You can shoot with the left pistol (Left Arm Layer goes to Attack) while the right pistol remains in idle (Right Arm Layer in Idle).
Left Upperbody Layer / Right Upperbody Layer
These layers are masked to control the left arm and the chest/torso motion of the character or the right arm and the chest/torso motion of the character. This allows animations that utilize one of the arms and the chest rotation to play.
For example, the secondary Frag Grenade throw occurs while another weapon is equipped, so a secondary throw animation is under the Frag Grenade substate of each layer. This allows the right arm to continue holding the Assault Rifle for instance, while the Left Arm Upperbody Layer then overrides the Arms Layer and plays the Frag Grenade secondary throw. Including the chest rotation with this allows the Frag Grenade throw to feel powerful enough, while not overriding the primary weapon idle.
This layer is masked to the upper body with a blending mode of additive to allow the animations on this layer to add to the top of previous layers. For example, with the shootable weapons the attack animations should simply add to the aim animation for each. These attack animations include the recoil from shooting the weapon without being their own overriding animation so that the animation seamlessly blends back into the aim state.
The Damage Visualization ability is also on this layer since the damage visualization animations should add on to the top of any animation state the character may be in. For instance if the character is jumping and gets hit, the jumping animation will continue to play while the damage visualization adds on so the chest rotates to show the character was hit.
Additive Left Arm Layer / Additive Right Arm Layer
Same function as the Additive Layer except that these layers are used for additive actions being performed on one arm only. In this case, the dual pistol attack is an additive animation that should be applied to the left and right arm independently.
Full Body Layer
This layer is masked to include the entire avatar, and overrides any previous layer. This layer has the ultimate say! Use cases for this layer are any animation that should immediately take over and play using the full body such as abilities like Die and Revive. In any part of the game the character could die, so this layer allows that to occur immediately with clean transitions.
Other animations that make use of this layer are any full body melee attack animations. For example, when the character attacks with the sword, the attack takes over even if the character in motion already. For the knife, when the character is not in motion the full body attack layer plays and includes the feet rotating for an added effect. When the character is in motion and attacks with the knife it would play the Upper Body Layer and would not utilize the Full Body Layer.