Skip to main content

✨ Animation Viewer V2.1

  • Add support for CTRL-K Unity Search window.
  • The "Animation Viewer" search provider must be enabled in that CTRL-K search window (three dots at the top right).
  • Animation clips will show up in double in that Search window, as this version does not modify the stock Project search provider.
  • The prefix anim:<your search query> may be used in your search query to only show Animation Viewer results.

βš™οΈ LetMeSee V1.1.3

  • Continue rendering when Play Mode is paused:
    • When the Editor is paused, continue rendering in the HMD as if it was not paused.
    • This allows the user to continue viewing the scene in VR while objects are frozen in place (i.e. physically simulated hair).

βš™οΈ LetMeSee V1.1.2

  • Add language selector.
  • Add machine-translated Japanese localization file, translated using ChatGPT.
  • Add machine-translated Korean localization file, translated using ChatGPT.

Versions 1.1.0 and 1.1.1 contain errors.

β˜€οΈ LetMeSee (LMS)

🌊 Any Platform

I am releasing LetMeSee (LMS), a tool that lets you see your content in VR, with the Unity Editor in Edit Mode.

The Scene tab is used as the camera viewpoint. You can use this to fly through avatars and worlds.

This product is released for free.

πŸ—’οΈ Open documentation

Using LMS for worlds and level design.

Using LMS for avatars.

⚠️ 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​

βš™οΈ Lightbox Viewer V2.2.0

This update tries to improve Lightbox Viewer speed in Edit mode, especially in avatar setups where there may be a lot of non-destructive components which have code that runs when that component is destroyed.

There are no speed improvements in Play mode.

πŸ” View changelog

βš™οΈ ComboGestureExpressions V3.2.0

  • Allow installation with VRChat Avatars SDK 3.6.x
  • Remove the Beta label.
  • Attempt to fix "The script class couldn't be found" when adding curve keys.
  • Fix Eye Tracking toggle now uses Write Defaults setting.

β˜€οΈ Prefabulous V2.0

🌊 Any Platform

I am releasing Prefabulous V2. This update makes it so Prefabulous components can be used in other social VR platforms, apps, and VTubing apps. VRChat is no longer required.

Users who use the VCC/ALCOM package manager will not need to take special actions to update to V2. If you don't use VCC/ALCOM, see below.

Prefabulous has been split into two packages, and I am introducing a new package:

Updating from V1 to V2 for users who don't use VCC​

If you don't use VCC, you will need to follow special upgrade instructions from V1 to V2:

  • If you use VCC/ALCOM, do not do this.
  • Open Unity.
  • Create a new empty scene.
  • Remove the Prefabulous package.
  • Add the new Prefabulous Universal package.
  • Add the new Prefabulous for VRChat package.

β˜€οΈ New component: Add ARKit to BlendShapeAvatar​

A new component, Add ARKit to BlendShapeAvatar, has been added to Prefabulous for VRM.

This component automatically links all blendshapes found in your meshes as ARKit-named BlendShapeClips for use by VRM apps.

API Changes​

Prefabulous is not meant to have any public API, but there has been changes that could affect other plugins.

In essence:

  • NDMF plugin qualified names have been changed,
  • class names have been changed,
  • namespaces have been changed,
  • assembly definitions have been changed,
  • internal classes have been changed.

Prefabulous Universal name changes​

  • Component namespace: Prefabulous.Universal.Common.Runtime
Component classNDMF Plugin
PrefabulousAssignUVTiledev.hai-vr.prefabulous.universal.AssignUVTile
PrefabulousConvertBlendshapeConventionsdev.hai-vr.prefabulous.universal.ConvertBlendshapeConventions
PrefabulousDeletePolygonsdev.hai-vr.prefabulous.universal.DeletePolygons
PrefabulousEditAllMeshAnchorOverridedev.hai-vr.prefabulous.universal.EditAllMeshAnchorOverride
PrefabulousEditAllMeshBoundsdev.hai-vr.prefabulous.universal.EditAllMeshBounds
PrefabulousGenerateBlendshapesFTEdev.hai-vr.prefabulous.universal.GenerateBlendshapesFTE
PrefabulousGenerateTwistBonesdev.hai-vr.prefabulous.universal.GenerateTwistBones
PrefabulousRecalculateNormalsdev.hai-vr.prefabulous.universal.RecalculateNormals
PrefabulousReplaceTexturesdev.hai-vr.prefabulous.universal.ReplaceTextures
PrefabulousChangeAvatarScale-

Prefabulous for VRChat name changes​

  • Component namespace: Prefabulous.VRC.Runtime
Component classNDMF Plugin
PrefabulousAccurateEyeTrackingdev.hai-vr.prefabulous.vrc.AccurateEyeTracking
PrefabulousBlankExpressionsdev.hai-vr.prefabulous.vrc.BlankExpressions
PrefabulousBlankFXAnimatordev.hai-vr.prefabulous.vrc.ReplaceAnimators
PrefabulousBlankGestureAnimatordev.hai-vr.prefabulous.vrc.ReplaceAnimators
PrefabulousReplaceActionAnimatordev.hai-vr.prefabulous.vrc.ReplaceAnimators
PrefabulousReplaceLocomotionAnimatordev.hai-vr.prefabulous.vrc.ReplaceAnimators
PrefabulousFaceTrackingExtensionsdev.hai-vr.prefabulous.vrc.FaceTrackingExtensions
PrefabulousImportExpressionParametersdev.hai-vr.prefabulous.vrc.ImportExpressionParameters
PrefabulousLockLocomotionMenuItemdev.hai-vr.prefabulous.vrc.LockLocomotionMenuItem
PrefabulousMassBlendshapeSyncdev.hai-vr.prefabulous.vrc.MassBlendshapeSync
(Universal)
PrefabulousChangeAvatarScale
dev.hai-vr.prefabulous.vrc.ChangeAvatarScaleForVRChat

Prefabulous for VRM and VTubing name changes​

  • Component namespace: Prefabulous.VRM.Runtime
Component classNDMF Plugin
PrefabulousAddARKitToBlendShapeAvatardev.hai-vr.prefabulous.vrm.AddARKitToBlendShapeAvatar

πŸ—’οΈ Open documentation

✨ Vixen V1.2.0

You can now add arbitrary blendshape properties on a SkinnedMeshRenderer, even if they don't exist in Edit mode.

This feature was added to support the upcoming release of Starmesh.

β˜€οΈ Denormalized Avatar Exporter

Compatible with VSeeFace
Compatible with VNyan
Compatible with Warudo

I am releasing "Denormalized Avatar Exporter", a Unity Editor tool that lets you export avatars normally designed for use in VRChat into VTubing apps, without the disruptive pre-processing steps that would normally be needed:

You don't have to normalize your avatar bones, and you don't have to export your avatar to VRM and import that VRM back into Unity.

Normalization is done when the avatar is being exported, so that you can keep editing the original avatar model file or prefabs just like anyone would normally do for a VRChat avatar.

It will also permit the use of some non-destructive avatar tools initially created for VRChat that are based on NDMF (Non-Destructive Modular Framework).

πŸ—’οΈ Open documentation

β˜€οΈ Generate Twist Bones (Prefabulous V1.11)

A new component, Generate Twist Bones (Alpha), has been added to Prefabulous.

New component: Generate Twist Bones (Alpha)​

This component will generate twist bones, which improves the look of the elbow joint by twisting the part of the lower arm that is closer to the elbow.

It creates new twist bones with constraints, and automatically repaints the bones weights of all meshes of the avatar which use that bone.

warning

🚧🚧🚧 This component is currently in an alpha phase. 🚧🚧🚧

At the moment, it only fully supports meshes that are part of the base mesh armature.

The current version will not be able to generate twist bones for additional meshes used by VRCFury Armature Link, and may not be able to generate twist bones for additional meshes used by Modular Avatar Merge Armature.

Both are intended to be supported in the future, but it's significantly harder to do so. The component is still released in this state of development as it is beneficial for the bare skin of your avatar.

Thank you for your understanding.

πŸ—’οΈ Open documentation

About Prefabulous 2.0​

This update does not include the Prefabulous Universal / Prefabulous for VRChat package split yet, as that particular update needs more regression testing to ensure the stability of existing projects.

✨ FaceTra Shape Creator V0.8

New Construction Line: Blush Modifier Selection​

Many avatars have blendshapes hidden inside the head to make the character blush.

However, when you squint, or when you puff your cheeks, these blush blendshapes will visibly clip through your face expressions.

To address this, Blush Modifier Selection is a new construction line, which can only be selected using blendshapes (it is not a traditional vertex selection). It can be left empty.

When blendshapes are added to the Blush Modifier Selection, the blendshape will be simulated to be active, so that they will be moved by the following shapes:

  • Cheek Squint
  • Cheek Puff

Unfortunately, this will not work with all avatar bases. The density of the blush mesh needs to be similar (or half as similar) to the face mesh itself. If it's a gigantic polygon, it will not work so well.

Convert from Unified Expressions to ARKit​

Functionality almost identical to Prefabulous Convert Blendshape Conventions has been added natively to FaceTra Shape Creator, in the Output section. This only affects blendshapes that FaceTra creates, and will not affect any other non-face tracking related blendshapes.

  • Contrary to Prefabulous, the VRChat SDK is not required.
  • This allows you to export blendshapes using the ARKit naming convention. It will still be a bit messy as FaceTra creates many more blendshapes than ARKit needs, such as left/right variants for blendshapes that do not have left/right variants in ARKit.
    • The blendshapes will only be converted when entering Play mode, or baking the avatar using NDMF, or preparing a Resonite bake using FaceTra. Edit mode will still display the blendshapes using the Unified Expressions naming convention.