AvatarBridge 2.17.3
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 typeAnimatorwith an empty path, assuming that shape meant "animated animator
parameter". Muscle and root curves have exactly that shape, soChest Front-Backbecame
#Chest Front-Backand 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
andUprightwere 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 throughm_Force, which sits outside that maths. - Core parameter declarations disagreed with the CCK's own —
Groundeddeclared Float instead
of Bool,EmoteandToggleInt 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.
VRCAnimatorTrackingControland
VRCAnimatorLocomotionControlbecome ChilloutVR'sBodyControl— 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. UprightandTrackingTypeare 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,localOnlyfinally
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.