Animancer v1.1

Released 2018-05-29

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

  • [Pro-Only] Added AnimancerLayers which can either override or additively blend with each other and support AvatarMasks to determine which bones they each affect.
  • Improved the layout of the AnimancerController Inspector.
    • States are now grouped by layer.
    • AnimationMixers now show their sub-states even when not showing their details, show the threshold of each sub-state, and show the current Parameter value of the mixer when its details are expanded.
    • The Inspector now repaints itself whenever animations are active to make sure it is always showing the latest information.
  • [Lite-Only] Moved all MonoBehaviour components out of Animancer.dll so that Unity won't lose any script references when upgrading from Lite to Pro.
  • [Lite-Only] Added XML documentation file with Animancer.dll so your IDE can display comments for all public types and members inside the dll.
  • Added AnimancerExtensions class containing extension methods for the Animator component to easily add an AnimancerController or play clips.
  • [Pro-Only] Added AverageVelocity properties to calculate the blended velocity of all states in an AnimancerPlayable, AnimancerLayer, and AnimancerState at their current Weight.
  • [Pro-Only] Added AnimationMixer.CalculateThresholds method which takes a delegate to determine the threshold of each state based on whatever values you like, such as the average root motion velocity on the X and Z axes.
  • Changed AnimancerPlayable to public and exposed it via AnimancerController.Playable.
  • Moved the dictionary of registered states from AnimancerController into AnimancerPlayable to make it more self-contained and potentially reusable without an AnimancerController component. Also removed the OnStateDestroyed event as it was only being used to update the dictionary.
  • Implemented IEnumerable<AnimancerState> with GetEnumerator methods in AnimancerPlayable, AnimancerLayer, and AnimancerStates instead of AnimancerController.GetStates. This allows you to use foreach loops over any of them.
  • Optimised AnimationMixers to not use foreach loops so they no longer generate garbage every frame and when setting the Parameter.
  • Fixed a bug that prevented animations from playing after reactivating an AnimancerController, such as when utilising object pooling.
  • Changing time values or playing states using the Inspector while the editor is paused will now call AnimancerC.Evaluate to immediately apply the changes to the model.
  • Improved the cleanup process when destroying states and layers.
  • [Pro-Only] Fixed an error in the way DirectionalAnimationMixer calculates blend weights.
  • Fixed a bug that prevented states without a registered key from being shown in the AnimancerController Inspector.