com.unity.animation 0.3.0-preview.9
Notes: processedReleased March 27, 2020
Unity Compatibility
Minimum Unity: 2019.3 (0f1)
Package Dependencies
- com.unity.burst (1.3.0-preview.7)
- com.unity.collections (0.7.0-preview.2)
- com.unity.dataflowgraph (0.13.0-preview.2)
- com.unity.entities (0.8.0-preview.8)
- com.unity.jobs (0.2.7-preview.11)
- com.unity.mathematics (1.1.0)
- com.unity.rendering.hybrid (0.4.0-preview.8)
- com.unity.test-framework (1.1.11)
- com.unity.test-framework.performance (1.3.3-preview)
✨ Features
- Added `SkinnedMeshRendererConversion` system that automatically convert any `SkinnedMeshRenderer` component if a `RigComponent` exists on this GameObject or on any of his parents up to the root GameObject.
- Added `NotSupportedTransformHandle` for animation systems that do not support reading from or writing to exposed transforms like the default `PreAnimationGraphSystem`
- Added a `BindingHashDelegate` to override hashing strategy of bindings when converting clips and rig definitions. Notably the following functions have changed signature:
- - `Unity.Animation.ClipBuilder.AnimationClipToDenseClip(AnimationClip sourceClip, BindingHashDelegate bindingHash = null)`
- - `Unity.Animation.Hybrid.RigGenerator.ExtractSkeletonNodesFromTransforms(Transform root, Transform[] transforms, BindingHashDelegate bindingHash = null)`
- - `Unity.Animation.Hybrid.RigGenerator.ExtractSkeletonNodesFromGameObject(GameObject root, BindingHashDelegate bindingHash = null)`
- - `Unity.Animation.Hybrid.RigGenerator.ExtractSkeletonNodesFromRigComponent(RigComponent rigComponent, BindingHashDelegate bindingHash = null)`
- - `Unity.Animation.Hybrid.RigGenerator.ExtractAnimationChannelFromRigComponent(RigComponent rigComponent, BindingHashDelegate bindingHash = null)`
- - When no `BindingHashDelegate` is specified, the `Unity.Animation.BindingHashUtils.DefaultBindingHash` is used. The `Unity.Animation.BindingHashUtils.DefaultBindingHash` defaults to `Unity.Animation.BindingHashUtils.HashFullPath`. If your pipeline wants to create bindings based on names rather than the full path, `Unity.Animation.BindingHashUtils.HashName` could be employed.
- Added support for LocalToRoot space remapping and two new helpers to streamline the process of creating a `RigRemapTable`:
- - `Unity.Animation.RigRemapUtils.CreateRemapTable(BlobAssetReference src, BlobAssetReference dst, OffsetOverrides offsetOverides = null)`: Given a source and destination `RigDefinition` this function creates a remap table based on matching bindings. By default all matches are mapped in LocalToParent space but this can be overriden using the `Unity.Animation.RigRemapUtils.OffsetOverrides`.
- - `Unity.Animation.Hybrid.RigRemapUtils.CreateRemapTable(RigComponent src, RigComponent dst, OffsetOverrides offsetOverrides = null, BindingHashDelegate bindingHash = null)`: Given a source and destination `RigComponent` this function creates a remap table based on matching ids. A `BindingHashDelegate` can be specified in order to match using either the transform path [`BindingHashUtils.HashFullPath`], the transform name [`BindingHashUtils.HashName`] or a custom delegate. When no binding hash deletegate is specified, the system wide `BindingHashUtils.DefaultBindingHash` is used. By default, LocalToParent mapping is performed, however `Unity.Animation.RigRemapUtils.OffsetOverrides` can be specified to remap in LocalToRoot space and/or add translation/rotation offsets.
- - Note that remapping in LocalToRoot space has a performance cost and should be used with care.
- - LocalToRoot space in the `RigRemapTable` changes format. **All previous `RigRemapTable` BlobAssetReferences or usage of these in SubScenes need to be regenerated**.
📈 Improvements
- Removed `PreAnimationGraphWriteTransformHandle` MonoBehaviour since default system definition does not support this operation.
- Upgraded com.unity.dataflowgraph to 0.13.0-preview.2
🔧 Bug Fixes
- Undeprecated `RigComputeMatricesSystem`, it's still necessary for pipelines to have a well defined sync point in order for all rig buffers to be up-to-date.
- Fixed AnimationSystemBase to be reactive to component data instead of previous `AnimationSystemOperation` flags. The `WriteTransformComponentJob` computes `AnimatedLocalToWorld` only for the required rig.
- Fixed NullReferenceException when using Menu option `Animation/Rig/Setup Rig Transforms` for the first setup.
- ### Deprecated
- Deprecated `SkinnedMesh` and `SkinnedMeshConversion` system to reduce setup complexity. You no longer need to add the `SkinnedMesh` component on the same GameObject than your `SkinnedMeshRenderer` to convert it. see `SkinnedMeshRendererConversion`
