Commit Graph
74 Commits
Author SHA1 Message Date
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
Haï~ 30a970d043 Add FUNDING.yml 2022-02-27 20:16:34 +01:00
Haï~ 58c51926a7 Add Animator As Code 2022-02-27 20:16:34 +01:00
Haï~ 16199f7614 Initial commit 2021-05-07 12:42:29 +02:00