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. This is mandatory since Unity's package importer system does not delete or rename existing files so any old scripts that are not directly overwritten will cause compile errors that prevent anything from working.

  • [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.