com.unity.animation 0.4.0-preview.1

com.unity.animation

Notes: processedReleased May 8, 2020

Browse versions

PreviousNext

Unity Compatibility

Minimum Unity: 2019.3 (0f1)

Features

  • Added 3 new assemblies: `Unity.Animation.Graph`, `Unity.Animation.DefaultGraphPipeline`, and `Unity.Animation.DefaultGraphPipeline.Hybrid`
  • Added Euler curve support for rotation bindings in `ClipBuilder`'s AnimationClip to DenseClip conversion.
  • Added velocity calculation functions to Core namespace:
  • - `Core.ComputeLocalToParentLinearVelocities`
  • - `Core.ComputeLocalToParentAngularVelocities`
  • - `Core.ComputeLocalToWorldLinearVelocities`
  • - `Core.ComputeLocalToWorldAngularVelocities`
  • Added experimental API to create and manage a set of sub-nodes associated with a GraphHandle. These nodes are either automatically released when disposing the animation system NodeSet or when you explicitly dispose the GraphHandle. Relevant functions added are:
  • - `AnimationSystemBase.CreateGraph()`
  • - `AnimationSystemBase.CreateNode(GraphHandle)`
  • - `AnimationSystemBase.CreateNode(GraphHandle, Entity)`
  • - `AnimationSystemBase.Dispose(GraphHandle)`
  • Added BlobAssetStore extension methods to support `AnimationClip`, `AnimationCurve` and `RigComponent`:
  • - `BlobAssetStore.GetClip(AnimationClip)`
  • - `BlobAssetStore.GetAnimationCurve(AnimationCurve)`
  • - `BlobAssetStore.GetRigDefinition(RigComponent)`
  • Added `SynchronizationTag` to `Clip`: To use them you need to create Animation Events on your clips defined with an ObjectReferenceParameter that implements the `ISynchronizationTag` interface. Their main use are for continuous blending between motion of the same type but that aren't authored like Synchronize Motions.
  • Added `ISynchronizationTag` to the `Unity.Animation.Hybrid` assembly.
  • Added a twist bone solver `Core.SolveTwistCorrection` and relevant DFG node `TwistCorrectionNode` to redistribute a percentage of the source rotation over a leaf bone in order to correct *candy-wrapper* mesh deformation artifacts.

📈 Improvements

  • Moved following files from `Unity.Animation` to `Unity.Animation.Graph`:
  • - `AnimationSystemBase`
  • - All DFG nodes
  • - `NodeDefinitionAttribute`
  • - `IRigContextHandler`
  • - `DFGUtils` class
  • - NodeSet extension methods
  • Moved following files from `Unity.Animation` to `Unity.Animation.DefaultGraphPipeline`:
  • - `PreAnimationSystemGroup` and `PostAnimationSystemGroup`
  • - `PreAnimationGraphSystem` and `PostAnimationGraphSystem`
  • - `RigComputeMatricesSystem`
  • - `ComputeSkinMatrixSystem`
  • - `PrepareSkinMatrixToRendererSystem`
  • - `FinalizePushSkinMatrixToRendererSystem`
  • Moved following files from `Unity.Animation` to `Unity.Animation.DefaultGraphPipeline.Hybrid`:
  • - `PostAnimationGraphReadTransformHandle`
  • - `PostAnimationGraphWriteTransformHandle`
  • - `PreAnimationGraphReadTransformHandle`
  • Changed assembly `Unity.AnimationCurves.asmdef` to `Unity.Animation.Curves.asmdef`
  • Changed assembly `Unity.AnimationCurves.Hybdrid.asmdef` to `Unity.Animation.Curves.Hybrid.asmdef`
  • Changed assembly `Unity.AnimationCurves.Tests.asmdef` to `Unity.Animation.Curves.Tests.asmdef`
  • Removed dependency on `com.unity.rendering.hybrid` since common rendering structures are defined in `com.unity.entities`. **This means that all projects currently using `com.unity.animation` and HDRP for skinning should include `com.unity.rendering.hybrid` to their package manifests**.
  • Removed nested `BlobAssetReference` found in `ClipInstance`. Storing `RigHashCode` and `ClipHashCode` to know what data was used to generate the specific `ClipInstance`.
  • Changed `Unity.Animation.RigRemapUtils.CreateRemapTable` and `Unity.Animation.Hybrid.RigRemapUtils.CreateRemapTable` to take an extra optional parameter in order to remap specific channel types. By default all rig channels are used for matching.
  • Interface `IAnimationChannel` does not inherit from `System.IEquatable` anymore.
  • `LocalTranslationChannel` now implements `IEquatable`. The `Equals` function was changed to take an argument of type `LocalTranslationChannel` instead of the generic `IAnimationChannel`. Same for `LocalRotationChannel`, `LocalScaleChannel`, `FloatChannel` and `IntChannel`.
  • Deprecated `ClipBuilder.AnimationClipToDenseClip` which is replaced by extension method `AnimationClip.ToDenseClip` implemented in `Unity.Animation.Hybrid`.
  • Deprecated `ClipInstance.Create` which is replaced by `ClipInstanceBuilder.Create`.
  • `AnimationSystemBase`, `RigComputeMatricesSystemBase`, `ComputeSkinMatrixSystemBase`, `BoneRendererMatrixSystemBase` and `BoneRendererRenderingSystemBase` have been upgraded to `SystemBase`.
  • Upgraded com.unity.entities to 0.9.1-preview.15
  • Upgraded com.unity.jobs to 0.2.8-preview.3
  • Upgraded com.unity.collections to 0.7.1-preview.3
  • Upgraded com.unity.dataflowgraph to 0.14.0-preview.2
  • Upgraded com.unity.test-framework to 1.1.13
  • Upgraded com.unity.test-framework.performance to 2.0.8-preview

🔧 Bug Fixes

  • Fixed StringHash so that both null and empty strings give the same default hash value (id = 0)
  • Fixed `SolveAimConstraint` to prevent rolling effects
  • Fixed copy of integer curves values to incorrect AnimationStream indices in `Core.EvaluateClip`
  • Fixed RigRemapperNode to output destination rig default values (or overridden default values) when the RemapTable, SourceRigDefintion or node input stream is invalid.