Animancer v8.1

Released 2025-02-26

When upgrading to a newer version of Animancer, you must delete any previous version from your project first.

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 and transition.ReconcileMainObject to detect and fix situations where the MainObject of a transition is changed so the state no longer matches it.
  • Added context menu functions to create TransitionAssets from AnimationClips, AnimatorControllers, and PlayableAssets.
  • Added Copy Events from Animation Clip context menu function to the Transition Inspector's event timeline.
  • Added StringAsset.Find and Create.
  • 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

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 than IAnimationClipSource.
  • 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 to public so users can avoid OptionalWarning.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 into ITransitionDetailed.
  • Renamed AnimancerComponent.InitializePlayable to InitializeGraph for consistency with the other InitializeGraph method.

Documentation

Fixes

  • Fixed SpriteEditor exceptions caused by the target Sprite not having a Texture 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 of StringAssets 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 its Playables and PlayableOutputs. #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 support AnimancerState.Key chaining for states created by FadeMode.FromStart. #395
  • Fixed the Show Inactive States Display Option to work without needing Separate Active From Inactive States to also be enabled.
  • Fixed PropertyDrawers to properly find UnityEditor.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.