ControllerState Class

Summary

[Pro-Only] An Animancer.AnimancerState which plays a UnityEngine.RuntimeAnimatorController.
graph BT Type-->Base0["AnimancerState"] click Base0 "/animancer/api/Animancer/AnimancerState" Base0-->Base1["AnimancerNode"] click Base1 "/animancer/api/Animancer/AnimancerNode" Base1-->Base2["Key"] click Base2 "/animancer/api/Animancer/Key" Base2-->Base3["Object"] Type-.->Interface0["IUpdatable"] click Interface0 "/animancer/api/Animancer/IUpdatable" Type-.->Interface1["Key.IListItem"] click Interface1 "/animancer/api/Animancer/IListItem" Type-.->Interface2["IEnumerable<AnimancerState>"] Type-.->Interface3["IEnumerator"] Type-.->Interface4["IPlayableWrapper"] click Interface4 "/animancer/api/Animancer/IPlayableWrapper" Type-.->Interface5["ICopyable<AnimancerNode>"] Type-.->Interface6["IAnimationClipCollection"] click Interface6 "/animancer/api/Animancer/IAnimationClipCollection" Type-.->Interface7["ICopyable<AnimancerState>"] Type-.->Interface8["ICopyable<ControllerState>"] Type["ControllerState"] class Type type-node Derived0["Float2ControllerState"]-->Type click Derived0 "/animancer/api/Animancer/Float2ControllerState" Derived1["Float1ControllerState"]-->Type click Derived1 "/animancer/api/Animancer/Float1ControllerState" Derived2["Float3ControllerState"]-->Type click Derived2 "/animancer/api/Animancer/Float3ControllerState"

Syntax

public class ControllerState : AnimancerState, IUpdatable, Key.IListItem, 
    IEnumerable<AnimancerState>, IEnumerator, IPlayableWrapper, ICopyable<AnimancerNode>, 
    IAnimationClipCollection, ICopyable<AnimancerState>, ICopyable<ControllerState>

Remarks

You can control this state very similarly to an UnityEngine.Animator via its Animancer.ControllerState.Playable property.

Documentation: Animator Controllers

Constructors

Name Summary
ControllerState(RuntimeAnimatorController) Creates a new Animancer.ControllerState to play the `controller`.
ControllerState(RuntimeAnimatorController, ControllerState.ActionOnStop[]) Creates a new Animancer.ControllerState to play the `controller`.

Fields

Name Constant Value Summary
DefaultFadeDuration -1
The default constant for fade duration parameters which causes it to use the Animancer.AnimancerPlayable.DefaultFadeDuration instead.
static
NotInList -1
The Animancer.Key._Index which indicates that an item isn't in a list.
Inherited from Key
static

Properties

Name Value Summary
ActionsOnStop ControllerState.ActionOnStop[]
Determines what each layer does when Animancer.ControllerState.Stop is called.
ApplyAnimatorIK bool
IK cannot be dynamically enabled on a Animancer.ControllerState.
ApplyFootIK bool
IK cannot be dynamically enabled on a Animancer.ControllerState.
ApplyParentAnimatorIK bool
Should setting the Animancer.AnimancerNode.Parent also set this node's Animancer.AnimancerNode.ApplyAnimatorIK to match it? Default is true.
Inherited from AnimancerNode
static
ApplyParentFootIK bool
Should setting the Animancer.AnimancerNode.Parent also set this node's Animancer.AnimancerNode.ApplyFootIK to match it? Default is true.
Inherited from AnimancerNode
static
AutomaticallyClearEvents bool
Should the Animancer.AnimancerState.Events be cleared automatically whenever Animancer.AnimancerState.Play, Animancer.AnimancerState.Stop, or Animancer.AnimancerState.OnStartFade are called? Default true.
Inherited from AnimancerState
static
AverageVelocity Vector3
The average velocity of the root motion caused by this state.
Inherited from AnimancerState
ChildCount int
[Animancer.IPlayableWrapper] The number of states using this node as their Animancer.AnimancerState.Parent.
Inherited from AnimancerNode
Clip AnimationClip
The UnityEngine.AnimationClip which this state plays (if any).
Inherited from AnimancerState
Controller RuntimeAnimatorController
The UnityEngine.RuntimeAnimatorController which this state plays.
DebugName string
[Assert-Only] The Inspector display name of this node.
Inherited from AnimancerNode
DefaultStateHashes int[]
The UnityEngine.AnimatorStateInfo.shortNameHash of the default state on each layer, used to reset to those states when Animancer.ControllerState.ApplyActionsOnStop is called for layers using Animancer.ControllerState.ActionOnStop.DefaultState.
Duration float
The number of seconds the animation will take to play fully at its current Animancer.AnimancerNode.EffectiveSpeed.
Inherited from AnimancerState
EffectiveSpeed float
The Animancer.AnimancerNode.Speed of this node multiplied by the Animancer.AnimancerNode.Speed of each of its parents to determine the actual speed it's playing at.
Inherited from AnimancerNode
EffectiveWeight float
The Animancer.AnimancerNode.Weight of this state multiplied by the Animancer.AnimancerNode.Weight of each of its parents down the hierarchy to determine how much this state affects the final output.
Inherited from AnimancerNode
Events AnimancerEvent.Sequence
A list of Animancer.AnimancerEvents that will occur while this state plays as well as one that specifically defines when this state ends.
Inherited from AnimancerState
FadeSpeed float
The speed at which this node is fading towards the Animancer.AnimancerNode.TargetWeight.
Inherited from AnimancerNode
HasEvents bool
Does this state have an Animancer.AnimancerEvent.Sequence?
Inherited from AnimancerState
Index int
The index of the port this node is connected to on the parent's Animancer.AnimancerNode.Playable.
Inherited from AnimancerNode
IsActive bool
Returns true if this state is playing and is at or fading towards a non-zero Animancer.AnimancerNode.Weight.
Inherited from AnimancerState
IsLooping bool
Indicates whether the current state on layer 0 will loop back to the start when it reaches the end.
IsPlaying bool
Is the Animancer.AnimancerState.Time automatically advancing?
Inherited from AnimancerState
IsStopped bool
Returns true if this state isn't playing and is at 0 Animancer.AnimancerNode.Weight.
Inherited from AnimancerState
IsValid bool
Is the Animancer.AnimancerNode.Playable usable (properly initialized and not destroyed)?
Inherited from AnimancerNode
KeepChildrenConnected bool
Indicates whether child playables should stay connected to this mixer at all times (default false).
Inherited from AnimancerNode
Key Object
The object used to identify this state in the root Animancer.AnimancerPlayable.States dictionary. Can be null.
Inherited from AnimancerState
Layer AnimancerLayer
The root Animancer.AnimancerLayer which this node is connected to.
Inherited from AnimancerState
layerCount int
The number of layers in the Animancer.ControllerState.Controller.
LayerIndex int
The index of the Animancer.AnimancerLayer this state is connected to (determined by the Animancer.AnimancerState.Parent). Returns -1 if this state is not connected to a layer.
Inherited from AnimancerState
Length float
The current UnityEngine.AnimatorStateInfo.length of layer 0.
MainObject Object
The UnityEngine.RuntimeAnimatorController which this state plays.
NormalizedEndTime float
[Pro-Only] The Animancer.AnimancerState.NormalizedTime after which the Animancer.AnimancerEvent.Sequence.OnEnd callback will be invoked every frame.
Inherited from AnimancerState
NormalizedTime float
The Animancer.AnimancerState.Time of this state as a portion of the animation's Animancer.AnimancerState.Length, meaning the value goes from 0 to 1 as it plays from start to end, regardless of how long that actually takes.
Inherited from AnimancerState
NormalizedTimeD double
The underlying double value of Animancer.AnimancerState.NormalizedTime.
Inherited from AnimancerState
parameterCount int
The number of parameters in the Animancer.ControllerState.Controller.
ParameterCount int
The number of parameters being wrapped by this state.
parameters AnimatorControllerParameter[]
The parameters in the Animancer.ControllerState.Controller.
Parent IPlayableWrapper
The object which receives the output of the UnityEngine.Playables.Playable.
Inherited from AnimancerState
Playable AnimatorControllerPlayable
The internal system which plays the UnityEngine.RuntimeAnimatorController.
Playable Playable
The internal UnityEngine.Playables.Playable managed by this node.
Inherited from AnimancerNode
RawTime double
The UnityEngine.AnimatorStateInfo.normalizedTime * UnityEngine.AnimatorStateInfo.length of layer 0.
RemainingDuration float
The number of seconds this state will take to go from its current Animancer.AnimancerState.NormalizedTime to the Animancer.AnimancerState.NormalizedEndTime at its current Animancer.AnimancerNode.EffectiveSpeed.
Inherited from AnimancerState
Root AnimancerPlayable
The Animancer.AnimancerPlayable at the root of the graph.
Inherited from AnimancerNode
Speed float
[Pro-Only] How fast the Animancer.AnimancerState.Time is advancing every frame (default 1).
Inherited from AnimancerNode
TargetWeight float
The desired Animancer.AnimancerNode.Weight which this node is fading towards according to the Animancer.AnimancerNode.FadeSpeed.
Inherited from AnimancerNode
Time float
The number of seconds that have passed since the start of this animation.
Inherited from AnimancerState
TimeD double
The underlying double value of Animancer.AnimancerState.Time.
Inherited from AnimancerState
TraceConstructor bool
[Assert-Only] Should a System.Diagnostics.StackTrace be captured in the constructor of all new nodes so Animancer.OptionalWarning.UnusedNode can include it in the warning if that node ends up being unused?
Inherited from AnimancerNode
static
UnsupportedEventsMessage string
[Assert-Only] Animancer Events doesn't work properly on Animancer.ControllerStates.
UnsupportedSpeedMessage string
[Assert-Only] UnityEngine.Playables.PlayableExtensions.SetSpeed``1(``0,System.Double) does nothing on Animancer.ControllerStates.
Weight float
The current blend weight of this node which determines how much it affects the final output.
Inherited from AnimancerNode

Methods

Name Value Summary
~AnimancerNode() void
[Assert-Only] Checks Animancer.OptionalWarning.UnusedNode.
Inherited from AnimancerNode
AppendDescription(StringBuilder, string) void
Appends a detailed descrption of the current details of this node.
Inherited from AnimancerNode
AppendDetails(StringBuilder, string) void
Called by Animancer.AnimancerNode.AppendDescription(System.Text.StringBuilder,System.String) to append the details of this node.
Inherited from AnimancerState
AppendIKDetails(StringBuilder, string, IPlayableWrapper) void
Appends the details of Animancer.IPlayableWrapper.ApplyAnimatorIK and Animancer.IPlayableWrapper.ApplyFootIK.
Inherited from AnimancerNode
static
ApplyActionsOnStop() void
Applies the Animancer.ControllerState.ActionsOnStop to their corresponding layers.
ApplyWeight() void
Applies the Animancer.AnimancerNode.Weight to the connection between this node and its Animancer.AnimancerNode.Parent.
Inherited from AnimancerNode
AssertConnectionWeight() void
[Assert-Only] Logs an error if the weight of the connection between the Animancer.AnimancerNode.Parent and this node does not match the Animancer.AnimancerNode.Weight.
Inherited from AnimancerNode
AssertConnectionWeightRecursive(IPlayableWrapper) void
[Assert-Only] Calls Animancer.AnimancerNode.AssertConnectionWeight for this node and all of its children.
Inherited from AnimancerNode
static
AssertParameterValue(float, string) void
[Assert-Conditional] Asserts that the `value` is valid.
CancelSetTime() void
Prevents the Animancer.AnimancerState.RawTime from being applied.
Inherited from AnimancerState
ChangeMainObject<T>(T, T) void
Sets the `currentObject` and calls Animancer.AnimancerNode.RecreatePlayable. If the `currentObject` was being used as the Animancer.AnimancerState.Key then it is changed as well.
Inherited from AnimancerState
Clone() AnimancerState
Creates a copy of this state with the same Animancer.AnimancerNode.Root.
Inherited from AnimancerState
Clone(AnimancerPlayable) AnimancerState
Creates a copy of this state with the specified Animancer.AnimancerNode.Root.
CopyIKFlags(AnimancerNode) void
IK cannot be dynamically enabled on a Animancer.ControllerState.
CreatePlayable() void
Creates and assigns the UnityEngine.Playables.Playable managed by this state.
Inherited from AnimancerState
CreatePlayable(Playable) void
Creates and assigns the UnityEngine.Animations.AnimatorControllerPlayable managed by this state.
CrossFade(int, float, int, float) void
Starts a transition from the current state to the specified state using normalized times.
CrossFade(string, float, int, float) void
Starts a transition from the current state to the specified state using normalized times.
CrossFadeInFixedTime(int, float, int, float) void
Starts a transition from the current state to the specified state using times in seconds.
CrossFadeInFixedTime(string, float, int, float) void
Starts a transition from the current state to the specified state using times in seconds.
Destroy() void
Destroys the UnityEngine.Playables.Playable and cleans up this state.
DestroyPlayable() void
Destroys the Animancer.AnimancerNode.Playable.
Inherited from AnimancerNode
GatherAnimationClips(ICollection<AnimationClip>) void
[Animancer.IAnimationClipCollection] Gathers all the animations in this state.
GatherDefaultStates() void
Gathers the Animancer.ControllerState.DefaultStateHashes from the current states on each layer.
GetAnimatorTransitionInfo(int) AnimatorTransitionInfo
Gets information about the current transition.
GetBool(int) bool
Gets the value of the specified boolean parameter.
GetBool(string) bool
Gets the value of the specified boolean parameter.
GetChild(int) AnimancerState
[Animancer.IPlayableWrapper] Returns the state connected to the specified `index` as a child of this node.
Inherited from AnimancerNode
GetConstructorStackTrace(AnimancerNode) StackTrace
[Assert-Only] Returns the stack trace of the constructor (or null if Animancer.AnimancerNode.TraceConstructor was false).
Inherited from AnimancerNode
static
GetCurrentAnimatorClipInfo(int) AnimatorClipInfo[]
Gets information about the UnityEngine.AnimationClips currently being played.
GetCurrentAnimatorClipInfo(int, List<AnimatorClipInfo>) void
Gets information about the UnityEngine.AnimationClips currently being played.
GetCurrentAnimatorClipInfoCount(int) int
Gets the number of UnityEngine.AnimationClips currently being played.
GetCurrentAnimatorStateInfo(int) AnimatorStateInfo
Returns information about the current state.
GetDescription(string) string
Returns a detailed descrption of the current details of this node.
Inherited from AnimancerNode
GetEnumerator() FastEnumerator<AnimancerState>
Gets an enumerator for all of this node's child states.
Inherited from AnimancerNode
GetFadeDuration(float) float
Returns the `fadeDuration` if it is zero or positive. Otherwise returns the Animancer.AnimancerPlayable.DefaultFadeDuration.
static
GetFloat(int) float
Gets the value of the specified float parameter.
GetFloat(string) float
Gets the value of the specified float parameter.
GetInteger(int) int
Gets the value of the specified integer parameter.
GetInteger(string) int
Gets the value of the specified integer parameter.
GetLayerCount() int
Gets the number of layers in the Animancer.ControllerState.Controller.
GetLayerIndex(string) int
Gets the index of the layer with the specified name.
GetLayerName(int) string
Gets the name of the layer with the specified index.
GetLayerWeight(int) float
Gets the weight of the layer at the specified index.
GetNextAnimatorClipInfo(int) AnimatorClipInfo[]
Gets information about the UnityEngine.AnimationClips currently being transitioned towards.
GetNextAnimatorClipInfo(int, List<AnimatorClipInfo>) void
Gets information about the UnityEngine.AnimationClips currently being transitioned towards.
GetNextAnimatorClipInfoCount(int) int
Gets the number of UnityEngine.AnimationClips currently being transitioned towards.
GetNextAnimatorStateInfo(int) AnimatorStateInfo
Returns information about the next state being transitioned towards.
GetParameter(int) AnimatorControllerParameter
Gets the details of one of the Animancer.ControllerState.Controller's parameters.
GetParameterCount() int
Gets the number of parameters in the Animancer.ControllerState.Controller.
GetParameterHash(int) int
Returns the hash of a parameter being wrapped by this state.
GetPath() string
Returns the hierarchy path of this state through its Animancer.AnimancerState.Parents.
Inherited from AnimancerState
GetStateInfo(int) AnimatorStateInfo
Returns the current state on the specified `layer`, or the next state if it is currently in a transition.
HasState(int, int) bool
Indicates whether the specified layer contains the specified state.
IndexOf(Key) int
Returns location of this object in the list (or -1 if it is not currently in a keyed list).
Inherited from Key
static
IsInList(Key) bool
Is the `key` currently in a keyed list?
Inherited from Key
static
IsInTransition(int) bool
Indicates whether the specified layer is currently executing a transition.
IsParameterControlledByCurve(int) bool
Indicates whether the specified parameter is controlled by an UnityEngine.AnimationClip.
IsParameterControlledByCurve(string) bool
Indicates whether the specified parameter is controlled by an UnityEngine.AnimationClip.
IsPlayingAndNotEnding() bool
Returns true if the animation is playing and has not yet passed the Animancer.AnimancerEvent.Sequence.EndEvent.
Inherited from AnimancerState
MoveTime(double, bool) void
Sets the Animancer.AnimancerState.Time or Animancer.AnimancerState.NormalizedTime, but unlike those properties this method applies any Root Motion and Animation Events (but not Animancer Events) between the old and new time.
Inherited from AnimancerState
MoveTime(float, bool) void
Sets the Animancer.AnimancerState.Time or Animancer.AnimancerState.NormalizedTime, but unlike those properties this method applies any Root Motion and Animation Events (but not Animancer Events) between the old and new time.
Inherited from AnimancerState
OnAddChild(IList<AnimancerState>, AnimancerState) void
Connects the `state` to this node at its Animancer.AnimancerNode.Index.
Inherited from AnimancerNode
OnSetIsPlaying() void
Called when the value of Animancer.AnimancerState.IsPlaying is changed.
Inherited from AnimancerState
Play() void
Plays this state immediately, without any blending.

Unlike Animancer.AnimancerPlayable.Play(Animancer.AnimancerState), this method only affects this state and won't stop any others that are playing.
Inherited from AnimancerState
Play(int, int, float) void
Plays the specified state immediately, starting from a particular normalized time.
Play(string, int, float) void
Plays the specified state immediately, starting from a particular normalized time.
PlayInFixedTime(int, int, float) void
Plays the specified state immediately, starting from a particular time (in seconds).
PlayInFixedTime(string, int, float) void
Plays the specified state immediately, starting from a particular time (in seconds).
RecreatePlayable() void
Stores the values of all parameters, calls Animancer.AnimancerNode.DestroyPlayable, then restores the parameter values.
RecreatePlayableRecursive() void
Calls Animancer.AnimancerNode.RecreatePlayable on this node and all its children recursively.
Inherited from AnimancerNode
RequireUpdate() void
Calls Animancer.AnimancerPlayable.RequirePreUpdate(Animancer.IUpdatable) if the Animancer.AnimancerNode.Root is not null.
Inherited from AnimancerNode
ResetTrigger(int) void
Resets the specified trigger parameter to false.
ResetTrigger(string) void
Resets the specified trigger parameter to false.
SetBool(int, bool) void
Sets the value of the specified boolean parameter.
SetBool(string, bool) void
Sets the value of the specified boolean parameter.
SetDebugName(string) void
[Assert-Conditional] Sets the Inspector display name of this node. Animancer.AnimancerNode.ToString returns the name.
Inherited from AnimancerNode
SetFloat(int, float) void
Sets the value of the specified float parameter.
SetFloat(int, float, float, float, float) float
Sets the value of the specified float parameter with smoothing.
SetFloat(string, float) void
Sets the value of the specified float parameter.
SetFloat(string, float, float, float, float) float
Sets the value of the specified float parameter with smoothing.
SetInteger(int, int) void
Sets the value of the specified integer parameter.
SetInteger(string, int) void
Sets the value of the specified integer parameter.
SetLayerWeight(int, float) void
Sets the weight of the layer at the specified index.
SetNewCloneRoot(AnimancerPlayable) void
Sets the Animancer.AnimancerNode.Root.
Inherited from AnimancerState
SetParent(AnimancerNode, int) void
Connects this state to the `parent` state at the specified `index`.
Inherited from AnimancerState
SetRoot(AnimancerPlayable) void
The Animancer.AnimancerPlayable at the root of the graph.
Inherited from AnimancerState
SetTrigger(int) void
Sets the specified trigger parameter to true.
SetTrigger(string) void
Sets the specified trigger parameter to true.
SetWeight(float) void
Sets the current blend weight of this node which determines how much it affects the final output. 0 has no effect while 1 applies the full effect of this node.

This method allows any fade currently in progress to continue. If you don't wish to do that, you can set the Animancer.AnimancerNode.Weight property instead.

Animancer Lite only allows this value to be set to 0 or 1 in runtime builds.
Inherited from AnimancerNode
StartFade(float) void
Calls Animancer.AnimancerNode.OnStartFade and starts fading the Animancer.AnimancerNode.Weight over the course of the Animancer.AnimancerPlayable.DefaultFadeDuration (in seconds).
Inherited from AnimancerNode
StartFade(float, float) void
Calls Animancer.AnimancerNode.OnStartFade and starts fading the Animancer.AnimancerNode.Weight over the course of the `fadeDuration` (in seconds).
Inherited from AnimancerNode
Stop() void
Stops the animation and makes it inactive immediately so it no longer affects the output. Also calls Animancer.ControllerState.ApplyActionsOnStop.
ToString() string
Returns the Animancer.AnimancerNode.DebugName if one is set, otherwise a string describing the type of this state and the name of the Animancer.AnimancerState.MainObject.
Inherited from AnimancerState

Extension Methods

Name Value Summary
CalculateEditorFadeDuration(float) float
[Animancer Extension] [Editor-Only] Returns the duration of the `node`s current fade (if any), otherwise returns the `defaultDuration`.
IsValid() bool
[Animancer Extension] Is the `node` is not null and Animancer.AnimancerNode.IsValid?