Commit Graph
136 Commits
Author SHA1 Message Date
Haï~ 836adc8b60 V1.3.0-alpha.1 Add Modification API, named blend trees overload 2025-08-16 05:32:12 +02:00
Haï~ e16115d9a9 Add Modification API:
- 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.
2025-08-16 05:32:12 +02:00
Haï~ 399b721f4a Add named overload for NewBlendTree() and NewBlendTreeAsRaw():
- Add overload for NewBlendTree() which accepts a name.
- Add overload for NewBlendTreeAsRaw() which accepts a name.
- Addresses #56.
2025-07-11 01:51:45 +02:00
Haï~ 84f7f1d089 V1.2.0 Asset container provider & Final breaking changes 2025-06-23 17:34:24 +02:00
Haï~ 2abc34b61d V1.2.0-beta.2 Safeguard case where AssetContainer is null 2025-06-23 13:47:35 +02:00
Haï~ cfc6c5a9d6 Safeguard case where AssetContainer is null:
- Safeguard a case where AssetContainer is null.
- This covers a known case in Vixen where clips are generated in Edit mode for previews.
2025-06-23 13:46:45 +02:00
yewnyx c87904fbbb Add git url installation note for Unity projects to README (#52). 2025-06-02 02:19:38 +02:00
Tayou 114bea608b Include LICENSE.meta for installing through git url (#55):
- 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.
2025-06-02 02:18:31 +02:00
Haï~ 6c16ef567a V1.2.0-beta.1 Asset container provider & Final breaking changes:
- 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.
2024-11-29 12:06:32 +01:00
Haï~ ff681e6d96 (BREAKING) Apply planned breaking changes as specified in the AAC V1 release:
- 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.
2024-11-29 11:58:25 +01:00
Yū KOBAYASHI e445ba8321 Use AacSimpleAssetContainerProvider 2024-11-29 11:53:00 +01:00
Yū KOBAYASHI 061b5397df Add IAacAssetContainerProvider and AacSimpleAssetContainerProvider 2024-11-29 11:53:00 +01:00
Haï~ 735afd669f Update README.md 2024-08-21 04:42:34 +02:00
Haï~ 31383e79db V1.1.0 Public API release:
- Compatibility notes: https://docs.hai-vr.dev/updates/2024/08/21/p0
  - Alternatively, see or find: https://github.com/hai-vr/documentation/blob/main/updates/2024-08-21-p0.md
- Migration guide: https://docs.hai-vr.dev/docs/products/animator-as-code/migrating-v0-to-v1
- What's new: https://docs.hai-vr.dev/docs/products/animator-as-code/v1.1-whats-new
- Planned future breaking changes:
  - The AacFlSettingKeyframes constructor will be made private/internal in V1.2.0.
  - The methods AacFlBase.InternalConfiguration and AacFlBase.InternalDoCreateLayer will be made private/internal in V1.2.0.
  - For compatibility reasons they remain public for the duration of V1.1.x.
- There are no other breaking changes to be expected for the lifetime of V1.
2024-08-21 04:09:21 +02:00
Haï~ 1f4bf4ec83 V1.1.0-beta.9 Expose accessors 2024-08-19 10:52:48 +02:00
Haï~ 705f25df3b Add AacAccessorForExtensions:
- 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.
2024-08-19 07:26:56 +02:00
Haï~ d7d240a7c3 V1.1.0-beta.8 Functional fixes 2024-08-19 03:26:07 +02:00
Haï~ 5df8f375ad Fix calling Or() after TransitionsFromEntry().When(...) no longer fails:
- 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.
2024-08-19 03:22:35 +02:00
Haï~ cca33c83da Make sure State and SSM names don't contain a period '.':
- 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.
2024-08-19 01:49:37 +02:00
Haï~ 01724155b0 Fix Any state transitions will be created from SSMs:
- 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.
2024-08-19 01:40:08 +02:00
Haï~ 4c50d8876e V1.1.0-beta.7 Keep AacFlSettingKeyframes public until V1.2.0 2024-08-18 20:01:18 +02:00
Haï~ d9d2d74c97 Keep AacFlSettingKeyframes public until V1.2.0:
- 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.
2024-08-18 20:00:47 +02:00
Haï~ cb6ccce349 V1.1.0-beta.6 Fix error across packages 2024-08-18 19:43:40 +02:00
Haï~ c9c73155b9 Fix Animator Removal constructor actually needs to be public:
- Animator Removal is used exclusively by destructive workflow extensions.
2024-08-18 19:42:49 +02:00
Haï~ 27e4936445 V1.1.0-beta.5 Fix inconsistencies 2024-08-18 18:34:53 +02:00
Haï~ 68e20a0ffb (BREAKING) Make constructors non-public:
- Fix inconsistency where constructors were public.
2024-08-18 07:02:01 +02:00
Haï~ 0bddfdd7a3 (BREAKING) Replace public readonly fields with properties:
- Fix inconsistency by replacing public readonly fields with getter-only properties.
- Add PublicAPI annotation where it was missing.
2024-08-18 04:23:51 +02:00
Haï~ 98190a47d9 V1.1.0-beta.4 Fix inconsistency 2024-08-17 15:23:14 +02:00
Haï~ be1b4c3447 (BREAKING) Rename AacFlSettingObjectReferenceKeyframes to AacFlSettingKeyframesObjectReference:
- 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.
2024-08-17 13:12:30 +02:00
Haï~ b58b1afd4d V1.1.0-beta.3 Fix more inconsistencies 2024-08-17 08:13:23 +02:00
Haï~ bddad26c0f Rename AacFlSettingCurveColor.WithKeyframes(...) to WithUnit(...):
- Fix inconsistency by renaming AacFlSettingCurveColor.WithKeyframes(...) to WithUnit(...).
- The previous method is obsoleted, but remains.
2024-08-17 08:03:28 +02:00
Haï~ 207ffffb65 Code cleanup, no functional changes. 2024-08-15 10:47:48 +02:00
Haï~ 00e20cda51 Make Component[] null-element safe and add missing multi-component:
- Make Component[] null-element safe.
- Add missing multi-component variations of existing APIs.
- Inline documentation pass.
2024-08-15 06:50:58 +02:00
Haï~ c47e49d516 Work towards correcting inconsistencies in the API:
- Rename *Percent to *Normalized.
- Update inline documentation.
- Add additional single-valued and array overloads.
- Add AacFlSettingCurveObjectReference.WithUnit to be on-par with AacFlSettingCurve.
2024-07-05 02:30:01 +02:00
Haï~ 52c64d97f9 Add AacFlState.WithMotionTime to replace AacFlState.MotionTime:
- Add AacFlState.WithMotionTime(...) to replace AacFlState.MotionTime()
- This is more in line with the function naming convention.
2024-07-03 12:56:40 +02:00
Haï~ 4858f8025b V1.1.0-beta.2 Make public field readonly, update inline docs 2024-07-02 02:16:47 +02:00
Haï~ c607eb938d Fix AacFlState.WithCycleOffset(AacFlFloatParameter floatParam) now correctly enables the parameter 2024-07-01 23:21:18 +02:00
Haï~ 3ecefd7f4a (BREAKING) Make AacFlController.AnimatorController read-only:
- Breaking changes:
  - Make AacFlController.AnimatorController read-only.
2024-07-01 23:21:18 +02:00
Haï~ 0afabd9fd6 Update LICENSE:
- Add galister for major contributions.
2024-07-01 23:21:17 +02:00
Haï~ e50ea684a5 Do a pass on the documentation:
- Add and update inline documentation.
- Mark some inconsistencies.
- Not everything is reviewed yet.
2024-07-01 23:16:51 +02:00
Haï~ c54c377202 Update README.md 2024-06-30 14:14:35 +02:00
Haï~ e17d1d2828 V1.1.0-beta.1 Accomodate new VRCAnimatorPlayAudio requirements 2024-06-30 14:05:25 +02:00
Haï~ 582b109a82 Accomodate new VRCAnimatorPlayAudio requirements:
- Nodes need to know the Animator Root, so that relative paths can be resolved during the creation of State behaviours (i.e. Relative path of an AudioSource).
- Nodes need to have the ability to create a New Behaviour, even if one already exists.
2024-06-30 13:58:54 +02:00
Haï~ a9e1b62818 V1.0.9940 Prepare for ToeTra Rig Creator 2024-03-18 01:27:15 +01:00
Haï~ 689080e032 Change the zAutogenerated asset prefix to directory-like:
- Change the zAutogenerated__ prefix to zAutogenerated/
- This allows the zAutogenerated/ assets to display in a dedicated menu in the animation editor when the animator is selected.
- For legacy compatibility, the old prefix is still matched for the invocation of ClearPreviousAssets() in addition to the new.
2024-02-04 04:23:10 +01:00
Haï~ 89f176a6d2 Add AacFlLayer.WithBlendingMode 2024-01-24 18:13:44 +01:00
Haï~ 12b836d0a3 V1.0.9930 Prepare for CGE 2023-12-06 13:50:01 +01:00
Haï~ 0df82b7b97 Add AacAnimatorNode.At() 2023-10-23 18:20:57 +02:00
Haï~ 64f0dc47f1 Add AacFlLayer.WithWeight 2023-10-23 16:31:38 +02:00
Haï~ 4b45cecb5c Replace blend tree nullable parameters with mandatory overloads:
- Nullable parameters are now replaced with a separate overload with a mandatory parameter.
2023-10-21 21:58:59 +02:00