Skip to main content

⚠️ Advance notice for Animator As Code V1

Hello,

In February 2022, I had released Animator As Code version 0 (V0).

During 2023, I had started to move towards Animator As Code to version 1 (V1), in order to do the following breaking changes:

  • Pull major contributions from @galister which:
    • Adds support for sub-state machines, which is important because it enables the creation of states that evaluate multiple transitions within one frame, which is not possible to do without sub-state machines (with one exception).
      • This trait is already extensively used in ComboGestureExpressions V2 and above.
    • Share functionality of state and sub-state machines.
    • Share functionality of Int and Float parameters together.
  • Make it usable in non-VRChat avatar projects.
    • VRChat-related functionality is now exposed as extension functions in a separate package.
    • Also, separate destructive functions and non-destructive functions.
    • Since this no longer requires a VRChat project, this also means it may now be usable in VRChat world projects.
  • Make it more usable in non-destructive components.
    • It is already in use in Prefabulous and Vixen.
  • Move to packages, for distribution using VCC (and now, ALCOM).

My own projects, such as ComboGestureExpressions V3, Vixen, and Prefabulous for VRChat, already use Animator As Code V1.

The project has stalled for long enough, I think it's finally time to give it the last push for release.

V0 and V1 can be installed in the same project

One of the goals of Animator As Code V1 is to preserve the ability for V0 and V1 to be installed in the same project, as Animator As Code V0 is currently being used in the wild.

Therefore, installing Animator As Code V1 will not interfere with Animator As Code V0.

Even then, Animator As Code V0 and V1 are almost identical in syntax, so migrating from V0 and V1 should not be a challenge.

There may be some breaking changes during the beta

Animator As Code V1 will be entering a beta phase before release, which should ideally last a month.

Beta versions of Animator As Code V1 will only be available as pre-release packages, and they may contain breaking changes between two beta versions.

The objective of the Beta is to capture the last inconsistencies in the API, including naming conventions, method signatures, exposed functions and classes, public fields vs public properties, etc. It will also be to complete the documentation, both on this site, and inline documentation.

After Animator As Code V1 comes out of beta in 1.1.0, there should not be any more breaking changes.

Features