Released 2020-10-06
See the Animancer v5.0 Upgrade Guide if you're upgrading from a version older than that.
Animancer v5.3.2
Released 2020-11-18
- Fixed warning about "Animancer ... does not have exactly one [AssemblyDescription] attribute" after importing Animancer Pro over the top of Animancer Lite. #82
Animancer v5.3.1
Released 2020-10-08
- Fixed several Development Build errors.
- Fixed the
TransitionPreviewWindow
to not triggerOptionalWarning.EndEventInterrupt
if theNext Animation
is empty.
Experimental
Several changes are currently being considered for the next major version (v6.0). Any feedback would be appreciated.
- Add a
StateChange
class to the FSM system instead of passing the previous/next state into theCanEnterState
andCanExitState
methods. - Restructure the way Animancer Event callbacks are accessed in code.
Changes
- Renamed
IKeyHolder
toIKeyedListItem
. - Reworked Mixer Synchronization to fix several bugs:
- Mixers now keep a list of references to the synchronised child states rather than a
bool[]
that indicates which children are synchronised. - This is slightly more efficient (significantly for nested mixers).
- Added
MixerState.AutoSynchroniseChildren
to control whether newly added children are automatically added to the synchronization list (default true). - Fixed it to work properly on nested mixers by giving their synchronised children to the parent mixer to synchronise them all together so that the outcome is not based on the non-deterministic
AnimancerNode
update order. - Fixed it to keep states synchronised even when none of those states have any
Weight
. - Fixed it to work properly with
LinearMixerState.ExtrapolateSpeed
. - Fixed it to work properly with negative speeds.
- Fixed it to work properly with zero length states.
- Added
OptionalWarning.MixerSynchroniseZeroLength
.
- Mixers now keep a list of references to the synchronised child states rather than a
Improvements
- Animancer Event markers on the
TimeRuler
can now be dragged to move their time. - Added
AnimancerState.NormalizedEndTime
to wrapAnimancerEvent.Sequence.NormalizedEndTime
and return the default time based on theEffectiveSpeed
if the value isNaN
. - Improved the
PlayableAssetState
binding system:- The "Markers" track in Timeline Assets is now automatically skipped.
- The
PlayableAssetTransition
Inspector now highlights the size of theBindings
array as a warning if it does not match tracks in the the assignedAsset
. - The track names are now used for their respective
Bindings
fields (instead of the default "Element X").
- Negative
AnimancerState.Time
values are now displayed correctly in the Live Inspector. AnimationBindings
now continues gathering bindings even when the Unity Editor is Paused.- Improved the formatting of
AnimancerNode.AppendDescription
. - Improved automatically generated state names:
- Changed the default name generated by
AnimancerState.ToString
toMain Object Name (Type Name)
(instead of putting the Type Name first. - Added similar
ToString
methods to Transitions. AnimancerTransition.Apply
now assigns the asset's name to the state.
- Changed the default name generated by
- The Inspector now shows the
Real Speed
of a state if it is different from theAnimancerNode.Speed
(because Mixer Synchronization changes the internal Playable Speed without setting the State Speed). - Added
OptionalWarning.UnusedNode
.
Fixes
- Fixed Mixer Synchronization to ignore zero length states.
- Fixed
AnimancerNode.EffectiveSpeed
to properly account for the rootAnimancerPlayable
speed. - Fixed
EventSequenceDrawer
to work properly outside of aTransitionDrawer
. - Fixed exception when attempting to destroy a state connected to a mixer which doesn't have its
Root
set. - Fixed
OptionalWarning.EndEventInterrupt
to not trigger if theAnimancerLayer.CommandCount
changes. - Fixed
AnimancerEvent.Sequence.SetCallback
to not triggerOptionalWarning.DuplicateEvent
. - Fixed
ObjectPool.Disposable
to work properly forHashSet
s. - Fixed
AnimationBindings
to work properly for Euler Angle rotations (rather than onlyQuaternion
rotations). - Fixed the
TransitionPreviewWindow
to not throw exceptions if theKey
of the previewed transition is null. - Fixed the
AnimancerNode
finalizer to not cause Unity threading errors. - Fixed various Context Menu Functions on Mixer Transitions to ensure they target the correct
SerializedProperty
if there are multiple such fields on the same object. - Fixed various
OptionalWarning.Log
calls to not create any garbage unless the warning is actually enabled.