836adc8b60
V1.3.0-alpha.1 Add Modification API, named blend trees overload
Haï~2025-08-16 05:31:03 +02:00
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.
Haï~2025-08-16 05:27:32 +02:00
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.
Haï~2025-07-11 01:51:45 +02:00
2abc34b61d
V1.2.0-beta.2 Safeguard case where AssetContainer is null
Haï~2025-06-23 13:47:35 +02:00
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.
Haï~2025-06-23 13:46:45 +02:00
c87904fbbb
Add git url installation note for Unity projects to README (#52).
yewnyx2025-06-02 09:19:38 +09:00
114bea608b
Include LICENSE.meta for installing through git url (#55):
Tayou2025-06-02 02:18:31 +02:00
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.
Haï~2024-11-29 12:06:32 +01:00
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.
Haï~2024-11-29 11:58:25 +01:00
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.
Haï~2024-08-19 07:26:56 +02:00
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.
Haï~2024-08-19 03:22:35 +02:00
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.
Haï~2024-08-19 01:49:37 +02:00
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.
Haï~2024-08-19 01:40:08 +02:00
4c50d8876e
V1.1.0-beta.7 Keep AacFlSettingKeyframes public until V1.2.0
Haï~2024-08-18 20:01:18 +02:00
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.
Haï~2024-08-18 20:00:47 +02:00
cb6ccce349
V1.1.0-beta.6 Fix error across packages
Haï~2024-08-18 19:43:40 +02:00
c9c73155b9
Fix Animator Removal constructor actually needs to be public: - Animator Removal is used exclusively by destructive workflow extensions.
Haï~2024-08-18 19:42:22 +02:00
68e20a0ffb
(BREAKING) Make constructors non-public: - Fix inconsistency where constructors were public.
Haï~2024-08-18 07:02:01 +02:00
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.
Haï~2024-08-18 04:23:51 +02:00
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.
Haï~2024-08-17 13:12:30 +02:00
b58b1afd4d
V1.1.0-beta.3 Fix more inconsistencies
Haï~2024-08-17 08:13:23 +02:00
bddad26c0f
Rename AacFlSettingCurveColor.WithKeyframes(...) to WithUnit(...): - Fix inconsistency by renaming AacFlSettingCurveColor.WithKeyframes(...) to WithUnit(...). - The previous method is obsoleted, but remains.
Haï~2024-08-17 08:03:28 +02:00
207ffffb65
Code cleanup, no functional changes.
Haï~2024-08-15 10:47:48 +02:00
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.
Haï~2024-08-15 06:50:58 +02:00
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.
Haï~2024-07-05 02:30:01 +02:00
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.
Haï~2024-07-03 12:55:13 +02:00
4858f8025b
V1.1.0-beta.2 Make public field readonly, update inline docs
Haï~2024-07-02 02:16:47 +02:00
c607eb938d
Fix AacFlState.WithCycleOffset(AacFlFloatParameter floatParam) now correctly enables the parameter
Haï~2024-07-01 21:33:00 +02:00
3ecefd7f4a
(BREAKING) Make AacFlController.AnimatorController read-only: - Breaking changes: - Make AacFlController.AnimatorController read-only.
Haï~2024-07-01 14:06:42 +02:00
0afabd9fd6
Update LICENSE: - Add galister for major contributions.
Haï~2024-07-01 18:10:08 +02:00
e50ea684a5
Do a pass on the documentation: - Add and update inline documentation. - Mark some inconsistencies. - Not everything is reviewed yet.
Haï~2024-07-01 12:58:02 +02:00
e17d1d2828
V1.1.0-beta.1 Accomodate new VRCAnimatorPlayAudio requirements
Haï~2024-06-30 14:05:25 +02:00
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.
Haï~2024-06-24 23:58:37 +02:00
a9e1b62818
V1.0.9940 Prepare for ToeTra Rig Creator
Haï~2024-03-18 01:27:15 +01:00
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.
Haï~2024-02-04 04:23:10 +01:00
4b45cecb5c
Replace blend tree nullable parameters with mandatory overloads: - Nullable parameters are now replaced with a separate overload with a mandatory parameter.
Haï~2023-10-21 21:58:59 +02:00
475e670193
Fix low-pass Simple1D blend trees are now ordered: - Invoking WithAnimation on a Simple1D blend tree now always results in the list of ChildMotion being reordered by threshold. - This prevents an issue with Unity where it is unable to properly run a low-pass filter if the thresholds are stored in the array in the reverse order.
Haï~2023-10-21 21:57:57 +02:00
5236df547f
Add comments for a future fix regarding a Simple1D blend tree quirk that happens creating a low-pass filter in the naive way
Haï~2023-10-20 19:44:15 +02:00
da31c8d22c
Update broken link in README.md
Haï~2023-10-20 00:03:53 +02:00
37c1ddc5b7
V1.0.9920 Prepare for Vixen release
Haï~2023-10-19 23:41:36 +02:00
9ae09900f5
Add layer parameter and overrides copying
Haï~2023-10-16 19:18:53 +02:00
e0b43254a4
Extend name deduplication to sub-state machines
Haï~2023-10-04 00:36:49 +02:00
d7f7bec848
Avoid duplicate state names: - When a state name is reused, Unity replaces it with a non-descriptive name - Replace that state name to avoid duplication
bd_2022-07-29 18:55:38 -07:00
4299b1c5ee
Change the way additional data is stored and exposed in AacConfiguration
Haï~2023-10-03 23:25:38 +02:00
1a559b6251
Allow any object to be an asset container: - Asset containers are no longer restricted to the AnimatorController class when using the new GenericAssetContainer configuration field - The asset container will not be used if it is not a persistent asset
Haï~2023-10-02 08:48:27 +02:00
2f5ebee617
(MIGRATING) Replace AacV0 with AacInternals
Haï~2023-10-02 07:14:02 +02:00
d22d73cc82
(BREAKING) Add AnimatorAsCode V1: - Breaking changes: - Remove dependency to VRChat in the AnimatorAsCode.V1 namespace. The namespace should now be usable in non-VRChat projects. - All VRChat-specific methods are now extension functions in a separate namespace, AnimatorAsCode.V1.VRC. - VRChat methods that modify existing assets are split into a separate namespace, AnimatorAsCode.V1.VRCDestructiveWorkflow. - Breaking fixes: - Fix incorrect type signature on AacFlFloatParameterGroup.ToList() and AacFlIntParameterGroup.ToList(). - Add AacFlBase.NewBlendTree(): - This allows creating blend trees as code. - Add AacFlState.WithAnimation(AacFlBlendTree). - Add AacFlBase.NoAnimator(): - This can be used to obtain AacFlParameter objects for use in the generation of BlendTrees and other systems, without requiring the existence of a backing animator controller. - This can also be used in some cases where there are type casts (Bool to Float, Float to Bool). - Add AacFlBase.NewAnimatorController(): - This is meant to be used for non-destructive workflows. - This creates an animator controller inside the asset container. This animator controller will be reaped in the same way as other assets are reaped.
Haï~2023-09-03 16:23:24 +02:00
3bfcb763a1
(MIGRATION START) Move all of V0 to V1: - This commit marks the start of breaking changes
Haï~2023-09-03 15:05:32 +02:00
b1fbb5f4d8
Add HDR color and update asset lookup: - Add support for HDR color animation. - Update asset lookup to look for proxies and masks in the Packages folder.
Haï~2023-09-03 14:10:02 +02:00
27399ae25b
Add a first batch of automated tests
Haï~2022-12-19 13:34:37 +01:00