ManualMixerState Class

Summary

[Pro-Only] An Animancer.AnimancerState which blends multiple child states by allowing you to control their Animancer.AnimancerNode.Weight manually.
graph BT Type-->Base0["AnimancerState"] click Base0 "/animancer/api/Animancer/AnimancerState" Base0-->Base1["AnimancerNode"] click Base1 "/animancer/api/Animancer/AnimancerNode" Base1-->Base2["AnimancerNodeBase"] click Base2 "/animancer/api/Animancer/AnimancerNodeBase" Base2-->Base3["Object"] Type-.->Interface0["ICopyable<AnimancerNode>"] Type-.->Interface1["IEnumerable<AnimancerState>"] Type-.->Interface2["IEnumerator"] Type-.->Interface3["IHasDescription"] click Interface3 "/animancer/api/Animancer/IHasDescription" Type-.->Interface4["IAnimationClipCollection"] click Interface4 "/animancer/api/Animancer/IAnimationClipCollection" Type-.->Interface5["ICloneable<AnimancerState>"] Type-.->Interface6["ICopyable<AnimancerState>"] Type-.->Interface7["ICopyable<ManualMixerState>"] Type-.->Interface8["IParametizedState"] click Interface8 "/animancer/api/Animancer/IParametizedState" Type-.->Interface9["IUpdatable"] click Interface9 "/animancer/api/Animancer/IUpdatable" Type["ManualMixerState"] class Type type-node Derived0["MixerState<TParameter>"]-->Type click Derived0 "/animancer/api/Animancer/MixerState_1"

Syntax

public class ManualMixerState : AnimancerState, ICopyable<AnimancerNode>, 
    IEnumerable<AnimancerState>, IEnumerator, IHasDescription, IAnimationClipCollection, 
    ICloneable<AnimancerState>, ICopyable<AnimancerState>, ICopyable<ManualMixerState>, 
    IParametizedState, IUpdatable

Remarks

This mixer type is similar to the Direct Blend Type in Mecanim Blend Trees. The official Direct Blend Trees tutorial explains their general concepts and purpose which apply to Animancer.ManualMixerStates as well.

Documentation: Mixers

Properties

Name Value Summary
ApplyAnimatorIK bool
ApplyFootIK bool
ApplyParentAnimatorIK bool
Should setting the Animancer.AnimancerNodeBase.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.AnimancerNodeBase.Parent also set this node's Animancer.AnimancerNode.ApplyFootIK to match it? Default is true.
Inherited from AnimancerNode
static
AverageVelocity Vector3
The average velocity of the Root Motion caused by this state.
ChildCapacity int
The size of the internal array of Animancer.ManualMixerState.ChildStates.
ChildCount int
The number of nodes using this as their Animancer.AnimancerNodeBase.Parent.
ChildStates AnimancerState[]
The states connected to this mixer.
Clip AnimationClip
The UnityEngine.AnimationClip which this state plays (if any).
Inherited from AnimancerState
DebugName Object
[Assert-Only] The Inspector display name of this node.
Inherited from AnimancerNode
DefaultChildCapacity int
Animancer.ManualMixerState.ChildCapacity starts at 0 then expands to this value when the first child is added.
static
Duration float
The number of seconds the animation will take to play fully at its current Animancer.AnimancerNodeBase.EffectiveSpeed.
Inherited from AnimancerState
EffectiveSpeed float
The Animancer.AnimancerNodeBase.Speed of this node multiplied by the Animancer.AnimancerNodeBase.Speed of each of its parents to determine the actual speed it's playing at.
Inherited from AnimancerNodeBase
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
FadeGroup FadeGroup
The current fade being applied to this node (if any).
Inherited from AnimancerNode
FadeSpeed float
The speed at which this node is fading towards the Animancer.AnimancerNode.TargetWeight.
Inherited from AnimancerNode
Graph AnimancerGraph
The Animancer.AnimancerGraph containing this node.
Inherited from AnimancerNodeBase
HasEvents bool
Have the Animancer.AnimancerState.SharedEvents or Animancer.AnimancerState.OwnedEvents been initialized?
Inherited from AnimancerState
HasOwnedEvents bool
Have the Animancer.AnimancerState.OwnedEvents been initialized?
Inherited from AnimancerState
Index int
The index of the port this node is connected to on the parent's UnityEngine.Playables.Playable.
Inherited from AnimancerNode
IsActive bool
Is this state currently updating or affecting the animation output?
Inherited from AnimancerState
IsCurrent bool
Is this state playing and not fading out?
Inherited from AnimancerState
IsLooping bool
Are any child states looping?
IsPlaying bool
Is the Animancer.AnimancerState.Time automatically advancing?
Inherited from AnimancerState
IsStopped bool
Is this state not playing and at 0 Animancer.AnimancerNode.Weight?
Inherited from AnimancerState
KeepChildrenConnected bool
Should child playables stay connected to the graph at all times?
Inherited from AnimancerNodeBase
Key Object
The object used to identify this state in the graph Animancer.AnimancerGraph.States dictionary. Can be null.
Inherited from AnimancerState
Layer AnimancerLayer
The root Animancer.AnimancerLayer which this node is connected to (if any).
Inherited from AnimancerNodeBase
LayerIndex int
The index of the Animancer.AnimancerLayer this state is connected to (determined by the Animancer.AnimancerNodeBase.Parent).
Inherited from AnimancerState
Length float
The weighted average Animancer.AnimancerState.Length of each child state.
MainObject Object
The main object to show in the Inspector for this state (if any).
Inherited from AnimancerState
MainObjectType Type
[Editor-Only] The base type which can be assigned to the Animancer.AnimancerState.MainObject.
Inherited from AnimancerState
MinimumSynchronizeChildrenWeight float
The minimum total weight of all children for their times to be synchronized. Default 0.01.
static
NormalizedEndTime float
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
OwnedEvents AnimancerEvent.Sequence
Events which will be triggered while this state plays based on its Animancer.AnimancerState.NormalizedTime.
Inherited from AnimancerState
Owner Object
[Assert-Only] An optional reference to the object that owns this state.
Inherited from AnimancerState
Parent AnimancerNodeBase
The object which receives the output of the Animancer.AnimancerNodeBase.Playable.
Inherited from AnimancerNodeBase
Playable Playable
The internal object this node manages in the UnityEngine.Playables.PlayableGraph.
Inherited from AnimancerNodeBase
RaiseEventsDuringFadeOut bool
Should events be raised on a state which is currently fading out?
Inherited from AnimancerState
static
RawTime double
The weighted average Animancer.AnimancerState.Time of each child state.
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.AnimancerNodeBase.EffectiveSpeed.
Inherited from AnimancerState
SharedEvents AnimancerEvent.Sequence
Events which will be triggered while this state plays based on its Animancer.AnimancerState.NormalizedTime.
Inherited from AnimancerState
Speed float
[Pro-Only] How fast the Animancer.AnimancerState.Time is advancing every frame (default 1).
Inherited from AnimancerNodeBase
SynchronizedChildCount int
The number of Animancer.ManualMixerState.SynchronizedChildren.
SynchronizedChildren AnimancerState[]
A copy of the internal list of child states that will have their times synchronized.
SynchronizeNewChildren bool
Should newly added children be automatically added to the synchronization list? Default true.
static
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
UpdatableIndex int
The index of this object in its Animancer.IndexedList`2.
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
Add(AnimancerState) void
Assigns the `state` as a child of this mixer.
Add(AnimationClip) ClipState
Creates and returns a new Animancer.ClipState to play the `clip` as a child of this mixer.
Add(ITransition) AnimancerState
Calls Animancer.AnimancerUtilities.CreateStateAndApply(Animancer.ITransition,Animancer.AnimancerGraph) then Animancer.ManualMixerState.Add(Animancer.AnimancerState).
Add(Object) AnimancerState
Calls one of the other Animancer.ManualMixerState.Add(System.Object) overloads as appropriate for the `child`.
AddContextMenuIK(GenericMenu, AnimancerNodeBase) void
[Editor-Only] Adds functions to show and set Animancer.AnimancerNodeBase.ApplyAnimatorIK and Animancer.AnimancerNodeBase.ApplyFootIK.
Inherited from AnimancerNodeBase
static
AddRange(AnimationClip[]) void
Calls Animancer.ManualMixerState.Add(UnityEngine.AnimationClip) for each of the `clips`.
AddRange(IList<AnimationClip>) void
Calls Animancer.ManualMixerState.Add(UnityEngine.AnimationClip) for each of the `clips`.
AddRange(IList<ITransition>) void
Calls Animancer.ManualMixerState.Add(Animancer.ITransition) for each of the `transitions`.
AddRange(IList<Object>) void
Calls Animancer.ManualMixerState.Add(System.Object) for each of the `children`.
AddRange(ITransition[]) void
Calls Animancer.ManualMixerState.Add(Animancer.ITransition) for each of the `transitions`.
AddRange(Object[]) void
Calls Animancer.ManualMixerState.Add(System.Object) for each of the `children`.
AppendDescription(StringBuilder, string) void
Appends a detailed descrption of the current details of this object.
Inherited from AnimancerNode
AppendDetails(StringBuilder, string) void
AppendIKDetails(StringBuilder, string, AnimancerNodeBase) void
Appends the details of Animancer.AnimancerNodeBase.ApplyAnimatorIK and Animancer.AnimancerNodeBase.ApplyFootIK.
Inherited from AnimancerNode
static
AssertConnectionStatus() void
[Assert-Only] Calls Animancer.AnimancerNode.GetConnectionStatusError and logs the result if it isn't null.
Inherited from AnimancerNode
AssertConnectionStatusRecursive(AnimancerNodeBase) void
[Assert-Only] Calls Animancer.AnimancerNode.AssertConnectionStatus for the `node` and all of its children.
Inherited from AnimancerNode
static
AssertOwnership(Object) void
[Assert-Conditional] Sets the Animancer.AnimancerState.Owner and asserts that it wasn't already set to a different object.
Inherited from AnimancerState
CalculateRealEffectiveSpeed() float
The multiplied UnityEngine.Playables.PlayableExtensions.GetSpeed``1(``0) of this mixer and its parents down the hierarchy to determine the actual speed its output is being played at.
CalculateTotalWeight(AnimancerState[], int) float
Calculates the sum of the Animancer.AnimancerNode.Weight of all `states`.
static
CancelFade() void
Removes this node from the Animancer.AnimancerNode.FadeGroup.
Inherited from AnimancerNode
ChangeMainObject<T>(T, T) bool
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(CloneContext) AnimancerState
Creates a new object with the same type and values this.
CopyFrom(AnimancerNode, CloneContext) void
Copies the details of `copyFrom` into this node, replacing its previous contents.
Inherited from AnimancerState
CopyFrom(AnimancerState, CloneContext) void
Copies the contents of `copyFrom` into this object, replacing its previous contents.
CopyFrom(ManualMixerState, CloneContext) void
Copies the contents of `copyFrom` into this object, replacing its previous contents.
CopyIKFlags(AnimancerNodeBase) void
Copies the IK settings from `copyFrom` into this node:
  • If is true, copy .
  • If is true, copy .
Inherited from AnimancerNode
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.AnimationMixerPlayable managed by this state.
CreatePlayable<T>(AnimancerGraph, T, bool) AnimationScriptPlayable
Creates an UnityEngine.Animations.AnimationScriptPlayable to run the specified Animation Job instead of the usual UnityEngine.Animations.AnimationMixerPlayable.
CreatePlayable<T>(Playable, T, bool) void
Creates an UnityEngine.Animations.AnimationScriptPlayable to run the specified Animation Job instead of the usual UnityEngine.Animations.AnimationMixerPlayable.
Destroy() void
Destroys the UnityEngine.Playables.Playable and cleans up this state.
DestroyChildren() void
Destroys all Animancer.ManualMixerState.ChildStates connected to this mixer. This operation cannot be undone.
DestroyPlayable() void
Destroys the UnityEngine.Playables.Playable.
Inherited from AnimancerNode
DisableRemainingStates(int) void
Sets the weight of all states after the `previousIndex` to 0.
DisconnectChildSafe(int) void
Disconnects the UnityEngine.Playables.Playable of the child at the specified `index` from this node.
Inherited from AnimancerNode
DontSynchronize(AnimancerState) void
Removes the `state` from the Animancer.ManualMixerState.SynchronizedChildren.
DontSynchronizeChildren() void
Removes all children of this mixer from the Animancer.ManualMixerState.SynchronizedChildren.
EnsureRemainingChildCapacity(int) void
Ensures that the remaining unused Animancer.ManualMixerState.ChildCapacity is greater than or equal to the specified `minimumCapacity`.
Events(Object) AnimancerEvent.Sequence
If the Animancer.AnimancerState.OwnedEvents haven't been initialized yet, this method gets them and returns true.
Inherited from AnimancerState
Events(Object, AnimancerEvent.Sequence) bool
If the Animancer.AnimancerState.OwnedEvents haven't been initialized yet, this method gets them and returns true.
Inherited from AnimancerState
GatherAnimationClips(ICollection<AnimationClip>) void
[Animancer.IAnimationClipCollection] Gathers all the animations in this state.
GetChild(int) AnimancerState
Returns the state connected to the specified `index` as a child of this node.
GetConnectionStatusError() string
Returns null if this node is properly connected to its parent. Otherwise, returns an error message to be logged.
Inherited from AnimancerState
GetConstructorStackTrace(AnimancerNode) StackTrace
[Assert-Only] Returns the stack trace of the constructor (or null if Animancer.AnimancerNode.TraceConstructor was false).
Inherited from AnimancerNode
static
GetDisplayKey(AnimancerState) string
Gets a user-friendly key to identify the `state` in the Inspector.
GetEnumerator() FastEnumerator<AnimancerState>
Gets an enumerator for all of this node's child states.
GetEventDispatchInfo(float, float, bool) void
Gets the details used to trigger Animancer.AnimancerEvents on this state: Animancer.AnimancerState.Length, Animancer.AnimancerState.NormalizedTime, and Animancer.AnimancerState.IsLooping.
GetJobData<T>() T
Gets the Animation Job data from the UnityEngine.Animations.AnimationScriptPlayable.
GetParameters(List<StateParameterDetails>) void
Gets the details of all parameters in this state.
GetParentMixer() ManualMixerState
Returns the highest Animancer.ManualMixerState in the hierarchy above this mixer or this mixer itself if there are none above it.
GetParentMixer(AnimancerNodeBase) ManualMixerState
Returns the highest Animancer.ManualMixerState in the hierarchy above the `state` (inclusive).
static
GetPath() string
Returns the hierarchy path of this node through its Animancer.AnimancerNodeBase.Parents.
Inherited from AnimancerNode
GetTemporaryFloatArray(int) float[]
Returns an array at least as large as the `count`.
static
IndexOf(AnimancerState) int
Returns the index of the specified `child` state.
InitializeSynchronizedChildren(bool[]) void
Initializes the internal Animancer.ManualMixerState.SynchronizedChildren list.
IsChildOf(AnimancerNodeBase, AnimancerNodeBase) bool
Is the `child` a child of the `parent`?
static
IsPlayingAndNotEnding() bool
Returns true if the animation is playing and has not yet passed the Animancer.AnimancerEvent.Sequence.EndEvent.
Inherited from AnimancerState
IsSynchronized(AnimancerState) bool
Is the `state` in the Animancer.ManualMixerState.SynchronizedChildren?
MarkAsUsed(AnimancerNodeBase) void
[Assert-Conditional] Prevents the `node` from causing Animancer.OptionalWarning.UnusedNode.
Inherited from AnimancerNodeBase
static
MoveTime(double, bool) void
Sets the Animancer.AnimancerState.Time or Animancer.AnimancerState.NormalizedTime, but unlike those properties this method doesn't skip Events or Root Motion between the old and new time.
MoveTime(float, bool) void
Sets the Animancer.AnimancerState.Time or Animancer.AnimancerState.NormalizedTime, but unlike those properties this method doesn't skip Events or Root Motion between the old and new time.
Inherited from AnimancerState
NormalizeAndApplyWeights(float, float[]) void
Divides `weights` by the `totalWeight` and applies them to the child states.
NormalizeDurations() void
Recalculates the Animancer.AnimancerState.Duration of all child states so that they add up to 1.
OnChildCapacityChanged() void
Called when the Animancer.ManualMixerState.ChildCapacity is changed.
OnChildIsLoopingChanged(bool) void
Called when a child's Animancer.AnimancerState.IsLooping value changes.
OnSetIsPlaying() void
Called when the value of Animancer.AnimancerState.IsPlaying is changed.
Play() void
Plays this state immediately, without any blending and without affecting any other states.
Inherited from AnimancerState
RecreatePlayable() void
Calls Animancer.AnimancerNode.DestroyPlayable and Animancer.AnimancerNode.CreatePlayable.
Inherited from AnimancerNode
RecreatePlayableRecursive() void
Calls Animancer.AnimancerNode.RecreatePlayable on this node and all its children recursively.
Inherited from AnimancerNode
Remove(AnimancerState, bool) void
Removes the specified `child`.
Remove(int, bool) void
Removes the child at the specified `index`.
Set(int, AnimancerState, bool) void
Replaces the `child` at the specified `index`.
Set(int, AnimationClip, bool) ClipState
Replaces the child at the specified `index` with a new Animancer.ClipState.
Set(int, ITransition, bool) AnimancerState
Replaces the child at the specified `index` with a Animancer.ITransition.CreateState.
Set(int, Object, bool) AnimancerState
Calls one of the other Animancer.ManualMixerState.Set(System.Int32,System.Object,System.Boolean) overloads as appropriate for the `child`.
SetChildrenTime(float, bool) void
Sets Animancer.AnimancerState.Time for all Animancer.ManualMixerState.ChildStates.
SetDebugName(Object) void
[Assert-Conditional] Sets the Animancer.AnimancerNode.DebugName to display in the Inspector.
Inherited from AnimancerNode
SetExpectFade(AnimancerState, float) void
[Internal] Sets a flag for Animancer.OptionalWarning.ExpectFade.
Inherited from AnimancerState
static
SetGraph(AnimancerGraph) void
Sets the Animancer.AnimancerNodeBase.Graph.
SetJobData<T>(T) void
Sets the Animation Job data in the UnityEngine.Animations.AnimationScriptPlayable.
SetParameters(List<StateParameterDetails>) void
Sets the details of all parameters in this state.
SetParent(AnimancerNode) void
Connects this state to the `parent` at its next available child index.
Inherited from AnimancerState
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.
Inherited from AnimancerState
StartFade(float) void
Calls Animancer.AnimancerNode.OnStartFade and starts fading the Animancer.AnimancerNode.Weight over the course of the Animancer.AnimancerGraph.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.
Inherited from AnimancerNode
Synchronize(AnimancerState) void
Adds the `state` to the Animancer.ManualMixerState.SynchronizedChildren.
ToString() string
Returns a string describing the type of this mixer and the name of states connected to it.
Update() void
Recalculates the weights of child states and synchronizes their times if necessary.
UpdateEventsRecursive(AnimancerState) void
Checks if any events should be invoked on the `parent` and its children recursively.
Inherited from AnimancerState
static
UpdateEventsRecursive(AnimancerState, bool) void
Checks if any events should be invoked on the `parent` and its children recursively.
Inherited from AnimancerState
static

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 its Animancer.AnimancerNodeBase.Playable valid?