This page lists the changes that occured throughout the public tests of Animancer v6.0.
Release Candidate 2
Released 2020-12-04
- Renamed
AnimancerLayer.Play(object)toTryPlayto match the name used inAnimancerPlayableandAnimancerComponent. - The Time bars displayed on states in the
AnimancerComponentInspector now scale their height proportional to theAnimancerNode.EffectiveWeight.- Added a Display Option in the context menu to disable that feature.
- Added explicit warning for the missing animation in the
NamedAnimationsexample.
Release Candidate 1
Released 2020-12-01
- Improved State Machines:
- Added null check to the
StateMachineconstructor that takes adefaultState. - Added
StateChange.IsActive(same forKeyChange) to check whether a change is currently occurring. - Changed
StateChangeandKeyChangeto be[ThreadStatic]. - Fixed the
StateMachine.AllowNullStatesflag to actually be checked. - Renamed State Machine folder to FSM.
- Added null check to the
- Improved Timeline track binding support:
- Added
OptionalWarning.PlayableAssetAnimatorBindingin case aPlayableAssetStatetries to bind to the sameAnimatoras Animancer. - The
IsPlayingstate is now propogated onto all tracks. - Tracks which don't require an object to bind will now properly create their output and are shown in the Inspector as a simple label without an
Objectfield. - If a binding has the wrong type, it is now highlighted as a warning in the Inspector.
- Added
- Changed
AnimancerState.IsPlayingto not bevirtualand addedOnSetIsPlayinginstead since only the setter should ever be overridden. - Added Live Inspector for Native Animator Controllers.
- Added
AnimancerEvent.Dummymethod to use for theDummyCallbackso that it has a proper name instead of a compiler generated name for an anonymous method. - Renamed
AnimancerNode.SetEditorNametoSetDebugNameto match theDebugNameproperty. - Fixed build error due to the
AnimancerLayer._Maskfield. - Fixed
AnimationGathererto work properly. - Fixed the
AssemblyInfo.csfile to be properly included in Animancer Pro.
Beta 1
Released 2020-11-22
- Added proper support for Native Animator Controllers (ones assigned to the regular
Controllerfield on theAnimatorcomponent):- Adding an
AnimancerComponentno longer clears that field or collapses theAnimatorInspector. - The
AnimancerComponentInspector no longer displays theAnimatorfields nested inside itself since they are now all usable and theControllerfield doesn't need to be highlighted as a warning. - Added
AnimancerPlayable.SkipFirstFadeto control whether playing an animation with the Base Layer at 0Weightshould snap theWeightto 1 (as it did previously) or allow the fade to play normally (so that it can fade from the native Animator Controller). - Removed
AnimancerPlayable.LayerList.RespectSingleLayerWeightsince it is now handled byAnimancerPlayable.SkipFirstFade. - Removed
AnimancerEditorUtilities.GetIsInspectorExpandedandSetIsInspectorExpandedsince they are now unused. They were just wrappers aroundUnityEditorInternal.InternalEditorUtilitymethods anyway. - Replaced the
Basics/Simple Hybridexample withAnimator Controllers/Hybrid Basics.
- Adding an
- Cleaned up the
Game Managerexample. - Removed
AnimancerUtilities.IfMultiComponentThenChangeType. - Renamed
AnimancerNode.EditorNametoDebugNameand made it available in Development Builds as well as in the Unity Editor. - Renamed
AnimancerNode.ApplyParentIKtoCopyIKFlagsand fixed it to also be called byAnimancerState.SetRoot. - Moved
UnityVersionCheckerinto theReadMe.csfile so that importing Animancer Pro over the top of Animancer Lite won't leave behind the LiteUnityVersionChecker.cs(because it isn't needed in the Pro version). - Added
Removefunction to the event sub-menus of theAnimancerStateInspector context menu. - Changed
StateMachines to not allow the state to be set to null unless you callSetAllowNullStatesfirst. This assertion is only performed in the Unity Editor and Development Builds. - Improved the
AnimationGathererto be able to gather clips and transitions separately. - Improved the
Generate Transitionfunction to support Sub-State Machines, Layers, and Transitions. - Added
AnimancerEditorUtilities.IsNaNforVector2andVector3. - Fixed the
AnimancerStateInspector context menu to disable theInvokefunction for events using theAnimancerEvent.DummyCallback. - Fixed the
TransitionPreviewWindowto properly initialize the camera when the target has no bounds. - Fixed
TransitionPreviewWindow.GetCurrentStateto not throw an exception if the state doesn't exist.
Alpha 3
Released 2020-11-13
- Added Controller State Generator to Weaver which can procedurally generate a class that inherits from
ControllerStatewith properties for directly accessing the parameters of a specific Animator Controller asset. - Added
Generate Transitioncontext menu functions on states and Blend Trees inside Animator Controllers which will generate Transition Assets from them. - Changed
AnimancerState.Durationto properly account for the End Time. - Changed
AnimancerState.RemainingDurationto properly account for the End Time and negative speeds and not give different results for looping animations since End Events don't work any differently for them. - Changed
AnimancerUtilities.Wrap01andAnimancerUtilities.Wrapto not be extension methods since they aren't used that often. - Fixed
AnimancerUtilities.Wrap01andWrapto never return the maximum value (unlikeMathf.Repeat). - Fixed
AnimancerGUI.DoOptionalTimeToggleto properly indicate when the selected objects have different values. - Removed the ability to
Ctrl + Shift + Clickon states in the Inspector to queue them to Cross Fade in a sequence (and the context menu function) since it was more complex to maintain than its usefulness warranted. - Animancer Events:
- Optimised
AnimancerEvent.Sequencemethods that search for a particular item. - The
AnimancerNodecontext menu now shows the details of all Animancer Events instead of only the End Events. - Added a
startIndexparameter toAnimancerEvent.Sequence.IndexOfandIndexOfRequired(default value 0). - Added equality operators to
AnimancerEvent. - Added
AnimancerEvent.Sequence.Serializable.SetNormalizedEndTime. - Added
ITransitionDetailed.EventsandSerializedEvents. - Added context menu functions to the
TimeRulerfor all the functions that can be executed via keyboard controls. - Removed the Inspector toggle from event times which was previously used to remove them.
- Moved
AnimancerEvent.Sequence.Serializable.DummyCallbackout toAnimancerEvent. - Changed the Add Event button in the Inspector into an
Xto remove the selected event (while one is selected). - Changed
AnimancerEvent.Sequence.SetCallbackto triggerOptionalWarning.DuplicateEventif necessary. - Changed
AnimancerEvent.Sequencemethods that modify callbacks to throw anArgumentNullExceptionif the callback is null rather than just logging an assertion. - Fixed
AnimancerState.EventRunnerto allow events to be assigned before theAnimancerNode.Rootis set. - Fixed
EventSequenceDrawerto avoid causing errors when multiple objects are selected with different values. - Fixed
AnimancerEvent.Sequence.Serializable.OnBeforeSerializeto not cause an exception if called when there is noEditor.EventSequenceDrawer.Context.Current.
- Optimised
- State Machines:
- Added
StateMachine<TState>.StateSelectorsystem for managing a prioritised list of potential states. - Restored the commented out
StateExtensionsmethods that you can copy into a base state class to implementIOwnedStatewithout the generic argument inference problems the extension methods have. - Removed
StateExtensions.CanEnterStatesince it is too similar to theIState.CanEnterStateproperty. - Changed the
StateMachine<TState>.InputBuffer.StateMachineto a readonly field.
- Added
- Animancer Tools:
- Changed
AnimancerToolsWindow.MoveSpriteBordersintoModifySpritesand added fields for changing thePivot,Alignment, andBorders. - Changed
AnimancerToolsWindow.ModifySpritesto only show the details that will actually be modified. - Fixed
AnimancerToolsWindow.ModifySpritesto not allowSprites to be moved out of the texture bounds. - Fixed
AnimancerToolsWindow.RenameSpritesto work properly. - Fixed
AnimancerToolsWindow.RemapAnimationBindingsto not use cached bindings since they can be out of date.
- Changed
- Inverse Kinematics:
- Changed
AnimancerPlayable,AnimancerLayer, andMixerStateto store whatever IK flags you set (ApplyAnimatorIKandApplyFootIK) so that when a child is added it can get the same flags. - You can disable the static
AnimancerNode.ApplyParentAnimatorIKandApplyParentFootIKproperties to prevent children from receiving their parent's flags. - Added the IK flags to
AnimancerNode.AppendDescription. - Removed
IHasIKand merged it intoIPlayableWrapper. - Removed
AnimancerPlayable.DefaultApplyAnimatorIKandDefaultApplyFootIK.
- Changed
Alpha 2
Released 2020-11-06
- Added
AnimancerEvent.Sequence.RemoveCallback. #77- Moved
AnimancerEvent.Sequence.Serializable.DummyCallbackout toAnimancerEvent.Sequence.
- Moved
- Added
FSM.StateChangeDebugwhich performs Assert-Only checks to ensure that you access the correctStateChangetype.- Same for
KeyChangeDebugwhich validatesKeyChanges.
- Same for
- Fixed
ManualMixerTransition.Drawer.DoClipOrTransitionFieldto allow the value to be set tonull. - Fixed the keyed
StateMachineto properly register the default state provided in the constructor.
Alpha 1
Released 2020-11-05
First public test release (see the v6.0 Change Log for the full list of changes since v5.3).