- run on the 'nix' label with Nix preinstalled; drop the installer action
- replace the inline release API calls with vpm/publish.sh
- add curl to the devShell for the publish step
- flake.nix: install the libaac cdylib alongside aac-dump and zip it with
the C# Unity packages as the default package
- .gitea/workflows: build+package on push/PR, publish release on v* tags
- vpm: commit the repository index and packaging script, with VPM_INDEX and
VPM_INDEX_URL overrides for generating a local listing
aac.AnimationStore(folder) seeds a clip from an existing .anim asset and
returns a normal ClipBuilder, so pre-made clips work anywhere generated
clips do and can still be edited (looping, keyframes, toggles, blend
shapes). The Unity side clones the asset into the container and applies
the script's changes to the clone, leaving the original untouched.
- ClipData gains optional source; looping becomes Option<bool> so an
untouched store clip keeps the asset's own looping setting.
- Add rust/examples/animation_store.rhai, a worked store example.
The installation instructions incorrectly assumed that the state of the main branch is in a usable state, but this is a false assumption as all repositories in hai-vr are only tested to be working on release tags.
Redirect to the documentation website instead.
- The Modification API is designed specifically for the creation and distribution of modular prefabs, where a developer generates assets on their machine and distributes those generated assets to their users.
- Add AacFlModification class.
- Add (AacFlBase).Modification() which returns a AacFlModification.
- When installing AAC through git url in the Unity package manager (as opposed .unitypackage and ALCOM), the LICENSE file contained within the Packages/ folder would cause errors because files cannot be written there.
- This commit adds the meta file for that LICENSE file, and removes it and other meta files from the exclusion list.
- Original PR comments:
* include LICENSE.meta
generally all meta files should be included. For immutable packages like package registries (e.g. OpenUPM) this is required, as unity can't write a new meta file into the immutable directory. Therefore any files without a meta file will break. Luckily this is just the LICENSE file, no code. but unity still complains
* also include README.md.meta
there is no readme in the package directory. But if there was, its meta file should definitely not be excluded either.
- Description for newly introduced code:
- Add support for third-party asset container management.
- In preparation for the introduction of [IAssetSaver in NDMF 1.6.0](https://github.com/bdunderscore/ndmf/releases/tag/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.AssetContainerProvider` to specify an asset container provider.
- Add new interface `IAacAssetContainerProvider` to abstract asset container management.
- The above changes have been contributed by **[kb10uy (KOBAYASHI Yū)](https://github.com/kb10uy)** (first contribution).
- (BREAKING) 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:
- (BREAKING) 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.
- (BREAKING) 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.
- 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:
- (BREAKING) 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.
- (BREAKING) 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.
- Add static class AacAccessorForExtensions:
- Provides methods for use by extension functions, exposing methods departing from normal fluent interface usage.
- Prepare to make methods marked "Not for public use" private starting from V1.2.0.
- Due to their active use in other packages, it is not immediately private.
- Calling Or() after TransitionsFromEntry().When(...) used to fail due to an unexpected internal state.
- This was due to the implicit conversion operator, which converted a null AnimationState to a AacTransitionEndpoint containing null in it.
- Fix this by returning null in the implicit conversion operators.
- If the name of a state contains a period ".", it can cause the animator to misbehave, so sanitize it.
- Transitions would not work properly during the runtime execution of the animator.
- Apparently this is because sub state machines internally use the dot as a separator.
- Sanitize the name so that menu state names such as "J. Inner" don't mess things up.
- Due to an implementation error, creating Any state transitions previously did not have any effect in the graph.
- This now creates Any state from the root machine.
- Sub-state machines "cannot" have Any state transitions created directly from them.
- Internally, Any always comes from the root state machine, but visually in the graph, it will come from the sub-state machine.
- Keep AacFlSettingKeyframes public until V1.2.0, where it will be made internal.
- AacFlSettingKeyframes is still used in CGE, but CGE already accepts AAC V1.1.x.
- Breaking changes:
- Rename AacFlSettingObjectReferenceKeyframes to AacFlSettingKeyframesObjectReference.
- This makes it more in line with AacFlSettingKeyframesColor.
- AacFlSettingObjectReferenceKeyframes was introduced specifically for Vixen, and it is meant to be used as a lambda expression, so the breaking damage should be limited.
- Rename *Percent to *Normalized.
- Update inline documentation.
- Add additional single-valued and array overloads.
- Add AacFlSettingCurveObjectReference.WithUnit to be on-par with AacFlSettingCurve.