- Instead of a
ScriptableObjectthat serializes the curve separately and evaluates it manually, it now accesses the value directly from the animation stream.
- It automatically blends the value according to the weights of all current animations.
- It uses the Animation Jobs system implemented in Unity 2019.1+.
- The Uneven Ground example no longer supports older Unity versions.
ExposedCurvescript can still be downloaded from the Inverse Kinematics page if you need it. See the Help page for contact options if you believe it should be added back into Animancer itself.
- Instead of a
PlayableAssetState.Transition.Bindingsto support Timelines with multiple tracks, including non-animation tracks.
- This feature is still fairly experimental so please use the contact options on the Help page if you have any issues with it.
AnimancerPlayable.KeepChildrenConnectednow defaults to true for Generic Rigs because it has better Performance for
Spriteanimations (and is similarly efficient for other Generic animations).
- Improved Mixers:
ManualMixerState.Statesarray is no longer directly exposed because setting its elements did not reparent the states as children of the mixer.
- Now you have to use
MixerState.PortCountsince it was identical to
- Cleaned up various implementation details.
- Improved Object Pooling:
ObjectPool.Countcan now be set to pre-allocate items.
ObjectPool.SetMinCountto easily pre-allocate items.
AnimancerStatenow exposes the
SetMinEventPoolCountin addition to the existing
PlayableAssetState.Lengthis now cached so it no longer allocates garbage all the time (not sure why Unity's
PlayableAsset.lengthwould do so in the first place though).
RecreatePlayableRecursiveto standardise their initialisation.
TransitionPreviewWindownow uses them instead of totally destroying and recreating the states to ensure that the playables are correct without losing their drawer state. #23
AnimancerState.ChangeMainObjectto standardise the destruction and re-creation of playables when the
ITransitionDetailed.IsValidto determine if a valid state can be created before use.
Validate.CanBePlayedto ensure that a node has a valid playable and parent.
- Improved the output of
AnimancerLayer.maxStateDepthto a property with a conditional
SetMaxStateDepthmethod so it can be properly removed when
UNITY_ASSERTIONSis not defined.
- Moved the
AnimancerNode.IsValidextension method from
- Adjusted the area highlighted by the
TransitionDrawerfor the currently reviewing transition to include the foldout arrow.
AnimancerEvent.Sequencepooling to work correctly.
TransitionPreviewWindownow supports Scriptable Render Pipelines. #17
AnimancerPlayable.LateUpdate.IsConnectedto properly disconnect it when set to false.
AnimancerState.Timesetter now delays assigning the value to the playable until the next update since weights cannot be applied during the late update (so the time and weight could be out of sync for a frame if set during an event). #25
- Fixed the 3D Game Kit example character to stand on moving platforms properly by only accessing the
CharacterController.isGroundedflag once per frame right after moving and using that value for everything. #24
AnimancerNodes no longer get updated.
- Fixed potential
- Fixed errors in
TransitionPreviewWindowwhen the target transition is not valid.