Released 2025-02-26
See the Animancer v8.0 Upgrade Guide if you're upgrading from a version older than that.
Features
- Added
bool AnimancerState.Events(ref AnimancerEvent.Sequence)
which allows multiple callers to take turns reusing the same state while each maintaining ownership of their own set of events. - Added
MaterialVariantGroup
system for setting up alternative materials for each render pipeline since Unity's material upgrader doesn't properly upgrade Alpha Cutoff materials. - Added
OptionalWarning.MainObjectMismatch
andtransition.ReconcileMainObject
to detect and fix situations where theMainObject
of a transition is changed so the state no longer matches it. - Added context menu functions to create
TransitionAsset
s fromAnimationClip
s,AnimatorController
s, andPlayableAsset
s. - Added
Copy Events from Animation Clip
context menu function to the Transition Inspector's event timeline. - Added
StringAsset.Find
andCreate
. - Added
DictionaryPool
for convenience. - Added
TransitionAssetBase.Events
with an[Obsolete]
attribute explaining why directly accessing the Events of a Transition Asset is generally not recommended.
Improvements
- Improved Directional Animation Sets:
- Added
DirectionalAnimationSet2
andDirection2
for left/right animation pairs. #396 - Renamed
DirectionalAnimationSet
toDirectionalAnimationSet4
. - Refactored all sets to have a generic base class
DirectionalSet<T>
to allow sets of transitions or transition assets or any other type to be created. - Moved the
Direction
enums out of their corresponding sets to be calledDirection4
andDirection8
. - To make a field which can be given any
DirectionalAnimationSet2
,DirectionalAnimationSet4
, orDirectionalAnimationSet8
you now need to useDirectionalSet<AnimationClip>
as the field type. - Moved their static methods out to the
Directions
class. - Renamed their methods in the generic class to be more generic since they could now refer to any type:
- Renamed
GetClip
toGet
. - Renamed
SetClip
toSet
. - Renamed
ClipCount
toDirectionCount
.
- Renamed
- Added
- Improved the default camera settings in the Transition Preview Window. #388
- Improved the log message for
OptionalWarning.DynamicAnimation
to explain that Asset Bundles and Addressables are fine. - Optimized
TableGUI
to skip drawing cells outside the current view area. #384
Changes
- Changed the collection pool
Release
methods into extension methods. - Changed
AnimancerComponent.GatherAnimationClips
to include clips from the Transition Library if one is assigned. - Changed all Transition Library classes to use
IAnimationClipCollection
since it's more flexible thanIAnimationClipSource
. - Changed
AnimancerLayer.Play
to not start fading in the layer if it was set to a non-zero weight and not fading. - Changed
AnimancerLayer.IncrementCommandCount
topublic
so users can avoidOptionalWarning.EndEventInterrupt
for a specific event without disabling the warning entirely. - Removed the equality operator overloads from
StringAsset
because they can often be called during serialization when Unity isn't ready to let the asset name be used. - Removed
ITransitionWithEvents
and merged it intoITransitionDetailed
. - Renamed
AnimancerComponent.InitializePlayable
toInitializeGraph
for consistency with the otherInitializeGraph
method.
Documentation
- Added a brief explanation of how the Dynamic Layers sample can be expanded upon to its Conclusion.
- Added Parameter Debugging section.
- Added a section about When should Transition Assets be used?
- Added a section about When to use End Events.
- Added examples to the
ITransitionGUI
API pages.
Fixes
- Fixed
SpriteEditor
exceptions caused by the targetSprite
not having aTexture
such as when imported via Unity's Vector Graphics package. #373 - Fixed playing a fading state on a different layer to cancel the fade on the clone so that it can start cross fading everything properly.
- Fixed
ExitEvent
to properly assign its callback in its constructor. #397 - Fixed
AnimancerComponent.GetAnimationClips
to exclude missing clips because they crash the Animation Window in Unity 6 or older. - Fixed errors in
ClipTransitionSequence
caused by trying to access the name ofStringAsset
s used as event names during deserialization. - Fixed
MixerState.NormalizedParameter
to use a range of -1 to 1 if the thresholds include both positive and negative values rather than always using 0 to 1. This makes more sense for most 2D Mixers which are usually centered on 0 unlike Linear Mixers which usually start at 0. - Fixed
PlayableAssetState.Destroy
to properly clean up all itsPlayable
s andPlayableOutput
s. #386 - Fixed
PlayableAssetState.Speed
to properly affect the speed of additional tracks. - Fixed the Transition Preview Window to properly focus on the target object. #388
- Fixed the Models list in the Transition Preview Window settings to be properly expandable.
- Fixed transition previews to not trigger
OptionalWarning.UselessEvent
. - Fixed build issues caused by
SampleReadMe
being Editor-Only. - Fixed the Directional Character Sample to not cause errors if Unity's 2D Physics module is disabled.
- Fixed
TransitionLibrary.TryGetTransition
and the Animation Serialization sample to supportAnimancerState.Key
chaining for states created byFadeMode.FromStart
. #395 - Fixed the
Show Inactive States
Display Option to work without needingSeparate Active From Inactive States
to also be enabled. - Fixed
PropertyDrawers
to properly findUnityEditor.ScriptAttributeUtility.GetDrawerTypeForType
in Unity 2022.3. - Fixed event time fields to draw with consistent GUI Control IDs so that going from no End Time to having an End Time doesn't change the active ID.