Skip to content

AvatarBridge 2.17.3

Choose a tag to compare

@MrTactical MrTactical released this 26 Jul 02:45

Most of this release came from decompiling the ChilloutVR client and checking what AvatarBridge
believed against what the game actually does. Several long-standing bugs turned up that way,
including one that has been there since the first release.

Everyone should update. The muscle-curve fix alone affects any avatar whose animations touch
the humanoid rig.

Fixed — these affected every avatar

  • Animation clips lost every humanoid muscle curve. The parameter rename pass rewrote any
    binding of type Animator with an empty path, assuming that shape meant "animated animator
    parameter". Muscle and root curves have exactly that shape, so Chest Front-Back became
    #Chest Front-Back and bound to nothing. Present since the initial release; it also erased its
    own evidence, because the check meant to catch it scans after the rename. The stray _cvr
    clip suffix was a symptom of the same thing.
  • Conversions flooded the editor log. The whole pipeline ran inside OnGUI, which corrupts
    Unity's IMGUI state — one conversion produced a 38 MB log, 217,045 lines of it a single repeated
    error. Conversion is now deferred, and only errors and warnings reach the console. Everything
    still goes to the report.
  • Stream-fed parameters never reached other players. MuteSelf, VRMode, the gesture weights
    and Upright were marked local, but the component feeding them exists only on the wearer's copy
    — so for everyone else they sat frozen at their defaults forever. A mute indicator only its own
    wearer could see.
  • DynamicBone gravity broke on scaled avatars. ChilloutVR multiplies gravity by avatar scale
    but divides its rest-pose cancellation by it; below scale 1 the two invert and bones get pushed
    upward. Gravity now goes through m_Force, which sits outside that maths.
  • Core parameter declarations disagreed with the CCK's ownGrounded declared Float instead
    of Bool, Emote and Toggle Int instead of Float, and the five locomotion Bools missing
    entirely. ChilloutVR dispatches writes on the declared type, so these were not cosmetic.
  • The override controller wasn't in either slot it belongs in, including the CCK's own
    Override Controller field, which its Advanced Settings editor reads when regenerating.

New

  • VRChat tracking control now converts. VRCAnimatorTrackingControl and
    VRCAnimatorLocomotionControl become ChilloutVR's BodyControl — the thing that hands a limb
    from IK over to animation. Previously destroyed and reported as having no equivalent.
  • Jaw-flap lip sync converts, both the bone and single-blendshape flavours. Also previously
    reported as unsupported.
  • The report now names components ChilloutVR will delete on load. The client filters every
    component on an avatar against a fixed list and destroys the rest silently, with nothing looking
    wrong in the editor. FinalIK is the usual casualty.
  • Sync budget tracking — ChilloutVR's limit is 3200 bits, floats and ints 32 each, bools 1.
    Parameters past it stop replicating with no warning in game.
  • Upright and TrackingType are driven live from real game state rather than frozen.

Experimental, off by default

  • Use ChilloutVR's native contacts — a genuine one-to-one conversion instead of the
    pointer/trigger approximation: real proximity, collision tags kept as-is, localOnly finally
    honoured, and no sync cost. Untested in game.
  • Mask merged layers off the humanoid rig — guards against a Write-Defaults state re-asserting
    the rest pose over ChilloutVR's locomotion.

Known limitation: quadruped / FinalIK avatars

Don't expect a working quad from this release. The conversion completes and the report comes
back clean, but the avatar holds its rest pose in game. Several real bugs were found chasing this
and none were the cause, so it is parked. The README section records everything established about
it — which FinalIK components ChilloutVR permits on an avatar, why GrounderIK cannot stand in
for GrounderVRIK, and that ChilloutVR always installs its own VRIK. Bipeds are unaffected.