Animator As Code
1.3.0-alpha.1
This is an alpha, the API may change:
Add Modification API
The Modification API is an upcoming API that is being introduced to 1.3.0.
It is designed specifically for the creation and distribution of modular prefabs, where you generate assets on your developer machine and distribute those generated assets to your users. Your users will not need to install Animator As Code.
When using the Modification API, you will provide references to existing AnimatorController, AnimationClip, and BlendTree assets. These assets will be emptied and their contents replaced with the newly generated content. This is a destructive process, conversely intended for the creation of non-destructive prefabs.
The Modification API can be accessed by calling (AacFlBase).Modification()
This is an alpha, the API may change.
Documentation: https://docs.hai-vr.dev/docs/products/animator-as-code/functions/modification
Other
Add the following overloads with a name parameter:
-
AacFlNonInitializedBlendTree NewBlendTree(string name)(🛠️ Will be added in 1.3.0)
Create a new BlendTree asset with a name. However, the name is only used as a suffix for the asset. The asset is generated into the container. -
BlendTree NewBlendTreeAsRaw(string name)(🛠️ Will be added in 1.3.0)
Create a new BlendTree asset with a name and returns a native BlendTree object. However, the name is only used as a suffix for the asset. The asset is generated into the container.💡 You may use NewBlendTree() instead to obtain a fluent interface.
1.2.0
- Add support for third-party asset container management.
- In preparation for the introduction of IAssetSaver in NDMF 1.6.0,
add the ability to delegate the management of the asset container to a third party.
- No new dependencies are added.
- By default, the behaviour of Animator As Code is the same as V1.1.0.
- Add new optional field
AacConfiguration.AssetContainerProviderto specify an asset container provider. - Add new interface
IAacAssetContainerProviderto abstract asset container management.
- In preparation for the introduction of IAssetSaver in NDMF 1.6.0,
add the ability to delegate the management of the asset container to a third party.
The above changes have been contributed by kb10uy (KOBAYASHI Yū) (first contribution).
The NDMF example in the Getting started page has been updated to demonstrate integration with this new API.
As specified in the changelog for the official release of Animator As Code V1, breaking changes had been planned, and will be applied starting this version:
- AacFlSettingKeyframes constructor is now private.
- For compatibility reasons, it was public for the duration of V1.1.x, and was already marked as obsolete in V1.1.x.
- The methods AacFlBase.InternalConfiguration and AacFlBase.InternalDoCreateLayer are now private.
- For compatibility reasons, it was public for the duration of V1.1.x, and was already marked as obsolete in V1.1.x.
- The class AacAccessorForExtensions replaced them.
These breaking changes are meant to be the last breaking changes for the lifetime of Animator As Code V1.
- Make AAC 1.2.0 a requirement, as AAC 1.2.0 adds additional argument checks for compatibility with Vixen.
- Include contributions from @TayouVR and @yewnyx that make this package better installable via git url.
1.2.0-beta.2
- Requires AAC 1.2.0.
- (intra-version) Asset container provider no longer causes an issue with Vixen, where clips could not be generated in Edit mode for previews.
- Include contributions from @TayouVR and @yewnyx that make this package better installable via git url.
1.2.0-beta.1
- Add support for third-party asset container management.
- In preparation for the introduction of IAssetSaver in NDMF 1.6.0,
add the ability to delegate the management of the asset container to a third party.
- No new dependencies are added.
- By default, the behaviour of Animator As Code is the same as V1.1.0.
- Add new optional field
AacConfiguration.AssetContainerProviderto specify an asset container provider. - Add new interface
IAacAssetContainerProviderto abstract asset container management.
- In preparation for the introduction of IAssetSaver in NDMF 1.6.0,
add the ability to delegate the management of the asset container to a third party.
The above changes have been contributed by kb10uy (KOBAYASHI Yū) (first contribution).
The NDMF example in the Getting started page has been updated to demonstrate integration with this new API.
As specified in the changelog for the official release of Animator As Code V1, breaking changes had been planned, and will be applied starting this version:
- AacFlSettingKeyframes constructor is now private.
- For compatibility reasons, it was public for the duration of V1.1.x, and was already marked as obsolete in V1.1.x.
- The methods AacFlBase.InternalConfiguration and AacFlBase.InternalDoCreateLayer are now private.
- For compatibility reasons, it was public for the duration of V1.1.x, and was already marked as obsolete in V1.1.x.
- The class AacAccessorForExtensions replaced them.
These breaking changes are meant to be the last breaking changes for the lifetime of Animator As Code V1.
1.1.0
For a full changelog, see the announcement page.
Leave Alpha version, by committing some of the last breaking API changes.
Features in V1 compared to V0
- Pull major contributions from @galister which:
- Adds support for sub-state machines, which is important because it enables the creation of states that evaluate multiple transitions within one frame,
which is not possible to do without sub-state machines (with one exception).
- This trait is already extensively used in ComboGestureExpressions V2 and above.
- Share functionality of state and sub-state machines.
- Share functionality of Int and Float parameters together.
- Adds support for sub-state machines, which is important because it enables the creation of states that evaluate multiple transitions within one frame,
which is not possible to do without sub-state machines (with one exception).
- Make it usable in non-VRChat avatar projects.
- VRChat-related functionality is now exposed as extension functions in a separate package.
- Also, separate destructive functions and non-destructive functions.
- Since this no longer requires a VRChat project, this also means it may now be usable in VRChat world projects.
- Make it more usable in non-destructive components.
- It is already in use in Prefabulous and Vixen.
- Move to packages, for distribution using VCC (and now, ALCOM).
- It is now possible to build Unity BlendTree assets using a fluent interface.