Commit Graph
100 Commits
Author SHA1 Message Date
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
Haï~ 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.
2023-10-21 21:57:57 +02:00
Haï~ 5236df547f Add comments for a future fix regarding a Simple1D blend tree quirk that happens creating a low-pass filter in the naive way 2023-10-20 19:44:15 +02:00
Haï~ da31c8d22c Update broken link in README.md 2023-10-20 00:03:53 +02:00
Haï~ 37c1ddc5b7 V1.0.9920 Prepare for Vixen release 2023-10-19 23:41:36 +02:00
Haï~ 9ae09900f5 Add layer parameter and overrides copying 2023-10-19 23:40:58 +02:00
Haï~ 5689bc19c4 Add ObjectReference keyframes 2023-10-19 23:40:15 +02:00
Haï~ 7da76c544d Add functions to store and copy parameters from a NoAnimator to a concrete animator 2023-10-10 12:08:31 +02:00
Haï~ 21adaa86a6 Changed AssetContainer type to Object, add ContainerMode 2023-10-04 10:59:52 +02:00
Haï~ a43516f45e Do not require some assets to be persistent 2023-10-04 08:59:48 +02:00
Haï~ e79400afa9 Add multi-blendshape 2023-10-04 00:39:13 +02:00
Haï~ e0b43254a4 Extend name deduplication to sub-state machines 2023-10-04 00:39:13 +02:00
Haï~ 4299b1c5ee Change the way additional data is stored and exposed in AacConfiguration 2023-10-03 23:46:50 +02:00
Haï~ 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
2023-10-03 23:46:50 +02:00
Haï~ 2f5ebee617 (MIGRATING) Replace AacV0 with AacInternals 2023-10-02 07:16:49 +02:00
Haï~ 3de37ded74 (MIGRATING) Rename Rotating to RotatingUsingEulerInterpolation, and add RotatingUsingQuaternionInterpolation:
- See https://forum.unity.com/threads/new-animationclip-property-names.367288/#post-2384172
2023-10-02 07:16:48 +02:00
Haï~ 3afc3a1f42 (MIGRATING) Rename Rotationing to Rotating 2023-10-02 07:16:47 +02:00
Haï~ d31b2282fa (MIGRATING) Change AnimationUtility.SetEditorCurve to AnimationClip.SetCurve to match new V1 behaviour 2023-10-02 07:16:46 +02:00
Haï~ 3b3c37ae8e Replace all .meta GUIDs 2023-10-02 06:56:43 +02:00
Haï~ e319d85c84 Fix avatar masks were generated in the controller instead of the container 2023-10-02 05:20:12 +02:00
Haï~ a603cd5690 Update LICENSE year 2023-10-02 04:53:27 +02:00
Haï~ c07e47ca48 (PACKAGING) Change the folder structure for package format 2023-10-02 04:53:27 +02:00
Haï~ 7ab6312160 (PACKAGING) Move migration guide to a central documentation repository 2023-10-02 04:53:27 +02:00
Haï~ c4d5cba7f0 (PACKAGING) Move all examples to a separate repository 2023-10-02 04:53:27 +02:00
Haï~ 2b2ec1e27c (PACKAGING) Move VRChat Extensions and Destructive Workflow to separate repositories 2023-10-02 04:53:27 +02:00
Haï~ c556a9b96a Replace AnimationUtility.SetEditorCurve with AnimationClip.SetCurve 2023-10-02 04:53:27 +02:00
Haï~ 48b71e063a Add AacFlEditClip.AnimatesObjectReference 2023-10-02 04:53:27 +02:00
Haï~ ecc272ebac Allow the AssetContainer to be null, so assets will only live in memory 2023-10-02 04:53:27 +02:00
Haï~ 3d13898ab2 Add AacFlBase.DuplicateAsset 2023-10-02 04:53:27 +02:00
Haï~ 207d94cf30 Rename AacFlController.CreateLayer to AacFlController.NewLayer 2023-10-02 04:53:27 +02:00
Haï~ 0e15f255b3 Disable undo on all relevant Unity function invocations 2023-10-02 04:53:27 +02:00
Haï~ a1e5a43491 (BREAKING) Replace structs with classes 2023-10-02 04:53:27 +02:00
Haï~ fd5c47e83c Split functions from Aac into AacInternals 2023-10-02 04:53:27 +02:00
Haï~ 53da87438e Add AacFlBase.NewBlendTree 2023-10-02 04:53:27 +02:00
Haï~ 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.
2023-10-02 04:51:07 +02:00
Haï~ 3f5fd7aff7 (MIGRATION END) Change namespaces 2023-10-02 04:48:23 +02:00
Haï~ 6c00522b62 (MIGRATION) Redefine assembly definitions 2023-10-02 04:48:10 +02:00
Haï~ f3d4a5b760 (MIGRATION) Rename AacV0 to AacV1 2023-10-02 04:48:03 +02:00
Haï~ af5ce1576b (MIGRATION) Fix all compilation issues 2023-10-02 04:47:57 +02:00
Haï~ c4174120b9 (MIGRATION) Rearrange assembly structure 2023-10-02 04:47:51 +02:00
Haï~ 3bfcb763a1 (MIGRATION START) Move all of V0 to V1:
- This commit marks the start of breaking changes
2023-10-02 04:47:33 +02:00
Haï~ 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.
2023-09-03 15:01:02 +02:00
Haï~ 27399ae25b Add a first batch of automated tests 2023-09-03 15:01:01 +02:00
Haï~ dfbabc55a3 Restrict DrivingIncreases and DrivingDecreases to numeric parameters only:
- This change was made in-between versions.
2023-09-03 15:00:48 +02:00
Haï~ a675325491 Fix transition duration to SSM was not configured (was 0.1 second by default) 2023-09-03 14:59:50 +02:00
Haï~ fbda5a01fa (BACKWARDS) Create anomalous default clip:
- Ensure backwards compatibility by creating an anomalous clip to be used by default on animators
2023-09-03 14:59:30 +02:00
Haï~ 9cbdd51964 (BREAKING) Fix double unit conversion when using Frames unit, potentially resulting in 1-keyframe animations. 2023-09-03 14:58:37 +02:00
Haï~ 7bf965824d Use a Unity function to clear sub-state machines:
- The previous method may not have been safe for clearing assets.
2022-05-10 20:06:47 +02:00
Haï~ 46c7bf9000 Add CgeAacFlTransition.Automatically():
- This is equivalent to a transition that occurs after the animation is at least at 0 percent.
- It is meant to be used with sub state machine nodes exiting.
2022-05-10 20:06:47 +02:00
Haï~ 77d68dcc0f Add IAacDefaultsProvider.ConfigureStateMachine(...) to position the core nodes 2022-05-10 20:06:47 +02:00
Haï~ 955655fd6f Add AacFlStateMachine.WithParentStateMachinePosition(...) 2022-05-10 20:06:47 +02:00
Haï~ 1afdc600b3 Add AacFlState.AutomaticallyMovesTo(AacFlStateMachine) for parity:
- This brings parity with States, so that a state machine node can automatically move to another state.
2022-05-10 20:06:47 +02:00
Haï~ 928f4dfe79 Rename NewStateMachine to NewSubStateMachine so that it does not share the same prefix as the more commonly used ".NewState(...)" 2022-05-10 20:06:46 +02:00
Haï~ 261ea030c4 Replace single-letter template variable T with TNode 2022-05-10 20:06:46 +02:00
Haï~ 7369355a76 Make some functions in AacFlLayers return themselves instead of void:
- AacFlLayer.OverrideValue(...) overloads now returns itself.
- AacFlLayer.WithAvatarMask(...) now returns itself.
- AacFlLayer.WithAvatarMaskNoTransforms(...) now returns itself.
- AacFlLayer.ResolveAvatarMask(...) now returns itself.
- Other void-returning functions in AAC do not return themselves because:
  - Some of them are meant to be used for cleanup purposes rather than for build purposes, so returning void here creates a usability gap to draw attention.
  - The ones used in animation keyframes marks it as the last operation that consumes the chain, as further calls would not be logical (i.e. .WithOneFrame(...).WithAnimationCurve(...))
2022-05-10 20:02:55 +02:00
Haï~ 8bbf482210 Add AacFlState.PoseSpaceEntered(...), PoseSpaceExited, PoseSpaceEnteredPercent, and PoseSpaceExitedPercent:
- Add AadFlState.PoseSpaceEntered(...) with 0-duration default overload.
- Add AadFlState.PoseSpaceExited(...) with 0-duration default overload.
- Add AadFlState.PoseSpaceEnteredPercent(...)
- Add AadFlState.PoseSpaceExitedPercent(...)
2022-05-10 20:02:55 +02:00
Haï~ 508b458fba Add AacFlState.WithCycleOffset(...), WithCycleOffsetSetTo, and WithSpeedSetTo:
- Add AacFlState.WithCycleOffset(...)
- Add AacFlState.WithCycleOffsetSetTo(...) which takes a fixed value.
- Add AacFlState.WithSpeedSetTo(...) which takes a fixed value. AacFlState.WithSpeed(...) already exists.
2022-05-10 20:02:55 +02:00
Haï~ f846228d82 Add AacFlTransition.WithInterruption(...):
- Add AacFlTransition.WithInterruption(...). This may replace AacFlTransition.WithSourceInterruption(...)
2022-05-10 20:02:55 +02:00
Haï~ 4d6aa08314 Add AacFlState.PlayableEnables(...), PlayableDisables, and PlayableSets:
- Add AacFlState.PlayableEnables(...) with 0-duration default overload.
  This function is exposed with the assumption that Playable Layer Control would often be used with a all-or-nothing weight.
- Add AacFlState.PlayableDisables(...) with 0-duration default overload.
- Add AacFlState.PlayableSets(...) to control everything about the behaviour.
2022-05-10 20:02:55 +02:00
Haï~ 48855de6ce Document the use of WithDefaultState:
- Document how WithDefaultState differs from Entry transitions.
2022-03-20 05:19:04 +01:00
Haï~ c7a6684e75 Fix Animates documentation was incorrect:
- Fix Animates documentation used to describe animating the enabled property of a Component, which was not the case.
2022-03-20 05:19:04 +01:00
Haï~ 2ea5b42092 Add AacFlSettingCurve.WithAnimationCurve(...) to animate using traditional AnimationCurve objects:
- Add WithAnimationCurve to animate using traditional AnimationCurve objects
2022-03-20 05:19:04 +01:00
Haï~ 573fc7eaef Add AacFlLayer.WithDefaultState(...) to change the default state:
- Add WithDefaultState to change the default state of a layer
2022-03-20 05:19:04 +01:00
Haï~ e31fbb1586 Update README.md 2022-03-10 21:45:33 +01:00
Haï~ 010f2f17f5 Add missing Driving overloads:
- DrivingIncreases for int
- DrivingDecreases for int
- DrivingRandomizesLocally for bool
- Fix documentation
2022-03-07 13:36:25 +01:00
Haï~ 739292efdb Add Introduction 2022-02-28 15:24:37 +01:00
Haï~ 276c8d3ddf Add Reference 2022-02-28 15:24:37 +01:00
Haï~ 9ba8fa3520 Rename AreLesserThan to AreLessThan (Breaking):
- Breaking change: Rename AreLesserThan to AreLessThan, to match the singular counterparts
2022-02-27 23:28:46 +01:00
Haï~ e532cd82ac Make avatar buildable, and improve examples:
- Surround example code with UNITY_EDITOR condition
- Change assembly definition to depend on VRC
- Improve Example 3: Make it animate a wedge
- Improve ExampleManual Placing States: Add zero argument overload
2022-02-27 22:05:43 +01:00