This page lists the changes that occured throughout the public tests of Animancer v5.0.
Release Candidate 1
Released 2020-07-17
Changes since Beta 2 (see the v5.0 Change Log for the full list of changes since v4.4):
- Renamed the
AnimancerTransition.Events
property toSerializedEvents
and replaced the original with a property that returns theAnimancerEvent.Sequence
directly instead of theAnimancerEvent.Sequence.Serializable
.- This means that instead of accessing it as
transition.Events.Sequence.OnEnd...
you now only needtransition.Events.OnEnd...
.
- This means that instead of accessing it as
- Renamed the
AnimancerComponent.Play(object key)
methods toTryPlay
and changed them to throw exceptions if the key isn't found instead of returningnull
. Unlike the otherPlay
methods, those ones can only use existing states but not create new ones so this change ensures that they can't be accidentally used when intending to use one of the other overloads and also prevents them from silently doing nothing if the key isn't found. - The
AnimancerPlayable.StateDictionary
indexers (animancer.States[...]
) now throw an exception if no state is registered with the specified key. TransitionPreviewWindow
no longer resets the preview time after an assembly reload.- Improved the Inspector warning when the
Animator.runtimeAnimatorController
field is assigned to explain how generic rigs need a second layer. - Improved the 3D Game Kit example to use a
CustomFade
for the random idle animations and a Mixer for Locomotion instead of the old Blend Tree. - Removed the context menu functions from
AnimancerComponent
since they are no longer necessary with the changes to the runtime Inspector. - Fixed the
NamedAnimancerComponent
Inspector to not hide theAnimations
fields until Play Mode has been properly entered. - Fixed the
Transition
Inspector to allow events to be modified in Play Mode after they have been first used. - Fixed
TimeRuler
to not show looping time indicators for super short animations if they would be so close together that they overlap. - Fixed
TimeRuler
keyboard controls for events. - Fixed
TimeRuler
to properly show looped time indicators when the current time is out of bounds. - Improved the formatting of the animation binding mismatch messages.
- Removed the Animation Curve Preset Libraries and put them as a package in the documentation instead.
- Fixed some minor issues in various examples.
- Cleaned up the Animation Jobs examples.
Beta 2
Released 2020-07-03
Changes since Beta 1 (see the v5.0 Change Log for the full list of changes since v4.4):
- Added optional event names to
AnimancerEvent.Sequence
andAnimancerEvent.Sequence.Serializable
so they can be used to identify events when defining event times in the Inspector and assigning their callbacks in code. #56 - Added
MixerParameterTween
for easily interpolating mixer parameters over time. - Replaced the "Possible animation type mismatch..." warning in the Inspector with a compact icon:
- The icon differentiates between warnings (some animated properties aren't present in the Rig) and errors (none of the animated properties are present in the Rig).
- You can click the icon to get a full explanation of the incompatibilities between the animations and the Rig.
- If this feature is affecting your performance, you can disable it via the Display Options in the layer context menu.
- The Inspector warnings about layers being at 0 weight are no longer shown if the object is inactive since the default
DisableAction.Stop
resets everything to 0 weight. - Changed
KeyedList.AddNew
to throw an exception if theitem
is already in another list (sinceKeyedList
s only allow eachitem
to be in one list at a time). - The Display Options conext menu functions are now shown on states as well as layers.
- Added
Repaint Constantly
option which can be disabled to reduce the automatic repainting rate to an interval specified in theAnimancerSettings
(default 0.25 seconds) in case the constant repainting is affecting performance.
- Added
AnimancerNode.ConnectToGraph
now applies the weight instantly instead of registering the node to be updated.OrbitControls
now uses an enum to specify the mouse button instead of an int slider.- Added
DummyObjectEditor
back in for Unity 2018.4. - Fixed drag and drop into the
NamedAnimancerComponent.Animations
field to work properly. - Fixed some minor pixel alignment issues in
TimeRuler
. - Fixed
NullReferenceException
when first creatingAnimancerSettings
. - Fixed
TimeRuler
to display looped time indicators at the correct intervals. - Cleaned up the Animation Jobs examples and added a SpiderBot to the Two Bone IK example.
- Fixed the SpiderBot-Idle animation to have two keyframes because only having one causes errors when accessing its property bindings.
- Moved the Editor-Only Animancer.Lite.dll into the Core folder since Unity gives build errors relating to serialization if it is in the Editor folder.
Beta 1
Released 2020-06-24
Changes since Alpha 1 (see the v5.0 Change Log for the full list of changes since v4.4):
- Added DefaultHumanoid model (Unity's DefaultAvatar with a different texture) to replace the LowPolyMan.
- Fixed the finger pose of all Humanoid animations (the LowPolyMan didn't have individual fingers).
- Improved the SpiderBot model:
- Cleaned up the naming conventions for bones, meshes, etc.
- Added foot bones so it can be used with Two Bone IK (one of the Animation Jobs examples).
- Improved
TransitionPreviewWindow
:- You can now pan the camera using Left Click while Right Click still rotates it as before.
- Added settings to customise the movement and rotation sensitivity.
- Added a field for selecting a model with a dropdown that remembers previously used assets.
- It automatically picks a recently used model based on the best match of properties animated by the transition and properties that exist in each model.
- Added default human model (uses Animancer's DefaultHumanoid if it exists, otherwise it uses Unity's DefaultAvatar which is just the same model with a different texture).
- Fixed the grid to properly draw behind
Sprite
s. - Fixed the internal details display to use the correct margins in both the Inspector and
TransitionPreviewWindow
. AnimancerState.RecreatePlayable
is now overridden byControllerState
andMixerState
to retain their parameter values.- Fixed the preview time indicator in the
TimeRuler
to work properly on transitions with a variableAnimancerState.Length
(ControllerState
andMixerState
).
- Moved various functionality from
ManualMixerState
into the baseMixerState
so it can be used by custom mixers that don't want to inherit fromManualMixerState
. - Changed
AnimancerPlayable.InsertOutputJob(AnimationScriptPlayable)
intoInsertOutputPlayable(Playable)
so that it could potentially be used for custom mixers as well. - The
AnimancerComponent
Inspector now always shows theAnimancerPlayable.IsGraphPlaying
field (instead of only when it is paused) and also shows itsSpeed
field. - Changed
ControllerState.Playable
back to a regular property instead ofref readonly
and removedHybridAnimancerComponent.ControllerPlayable
. - Moved the editor version of Animancer.Lite.dll into the Internal/Editor folder since having it visible in the root Animancer folder serves no purpose.
- Added
ObjectPool
methods forStringBuilder
s and replaced all standard usage with them. - Standardised
AnimancerState.ToString
instead of having each child class implement its own. - Split
AnimancerPlayable.AppendInternalDetails
out ofAppendDescription
so it can be used to display updatables, dirty nodes, and disposables in a single label. AnimationType.Sprite
now includes any object with onlySpriteRenderer
s in its children without any otherRenderer
types.- Moved
GetParameterValue
(andSet
) toAnimancerUtilities
. - Changed
AnimancerPlayable.FrameID
fromuint
toulong
to avoid the need for a cast. ScriptableObjectEditor
now displays its message about changes being undone when exiting Play Mode as a warning rather than info and only in Play Mode.- Added
ObjectPool.GetCachedResult
for easily creatingGUIStyle
s and other things that need caching. - Moved Pro-Only warnings into the
WarningType
enum and changed them to log individual features once each. - Added
WarningType.AnimatorSpeed
to explain thatAnimancerPlayable.Speed
should be used instead ofAnimator.speed
. - Fixed serialized fields in
AnimancerSettings
to not have their names obfuscated in Animancer Lite. - Fixed
Interpolation.Back...
methods to be consistent with each other. - Fixed
WarningType.CreateGraphWhileDisabled
to not be triggered in Edit Mode and to work in Development Builds. - Fixed the
AnimancerComponent
Inspector updatables list to not cause the horizontal scrollbar to appear. - Fixed
ControllerTransition.NormalizedStartTime
to not interfere with resetting to the default states. - Fixed
MouseDrag
to maintain a fixed distance to the target.
Alpha 1
Released 2020-06-16
First public test release (see the v5.0 Change Log for the full list of changes since v4.4).