Animancer v4.2

Released 2020-03-02

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


  • Added some keyboard controls for Animancer Events in the Inspector:
    • Left and Right Arrows nudge the event time one pixel to the side. #23
    • Holding Shift moves 10 pixels at a time.
    • Space rounds off the event time by one digit. For example: 0.123 would become 0.12 and 0.999 would become 1.
  • Greatly reduced the performance cost of the obfuscation used in Animancer Lite (mainly by removing the allocation of unnecessary garbage).


  • States now delay the initialization of their playables until they are actually needed:
    • States can now be constructed independently of the graph so they no longer require the same 3 constructors to be repeated in every single state class.
    • This will not have any immediate effect for the majority of users, but it removes one of the major issues preventing states from being pre-allocated and re-used in ObjectPools which should be able to improve performance in a future version.
    • Added an implicit conversion from AnimationClip to ClipState so that you can now do things like mixer.SetChild(0, clip).
    • Added AnimancerState.SetRoot which could theoretically allow states to be moved between characters, though it has not been tested for that purpose.
    • AnimancerPlayable.Play now puts the state on layer 0 if it was not already attached to a layer.
    • ITransition.CreateState no longer has an AnimancerLayer parameter so that they can be used similarly with a layer or mixer as the parent.
    • Removed Validate.CanBePlayed since states can be set to meet its conditions on demand.
  • The AnimancerComponent Inspector now shows "-?" for negative Weight values since they don't actually work and don't otherwise fit into the space for "0.0".
  • Moved the default IK flags from AnimancerLayer to AnimancerPlayable.
  • Added AssemblyInfo files for the examples and Animancer.FSM to suppress various coding style suggestions to avoid cluttering user projects with messages about 3rd party code.


  • Fixed Animancer Lite runtime errors when using IL2CPP.
  • Fixed the assertions in StateBehaviour to not create garbage when they pass.
  • Fixed AnimancerPlayable.DestroyAll(IAnimationClipCollection) to actually work.
  • Fixed ControllerState.ResetToDefaultStates to work properly when stopping the state.
  • Set up proper audio falloff settings in the Footstep Events example.
  • Improved Character.GetRootMotion in the 3D Game Kit example. #26