I saw some reports by other creators that their animation paths relating to VRC Constraints were becoming broken and screenshots showed paths like
managedReferences[5546551713573896202].Weight
which immediately made me go to investigate. For comparison, the built-in constraints system store references like
m_Sources.Array.data[0].weight
(clearly by index).
So here was my test:
  1. Initial conditions: Existing VRC Parent Constraint with two or more sources, as part of a prefab, one or more animations that animate the weight of those sources. This must be a child of a valid Avatar Descriptor, and the animation(s) must be in an Animation Controller that is set as a playable layer in said descriptor.
  2. Delete both sources from the parent constraint.
  3. Observe that the animation channels are deleted from the animation files(s) by the VRCSDK in real time!!
  4. Revert the changes we made to the component (or add back the sources manually if not a prefab).
  5. Observe that previously existing animation channels do not return!! They are lost forever, and all related anim files are left in a permanently broken state!
    (In some cases the first source continues to animate properly at this point, hence the example needing more than one)
Now from here lets assume you had git or some other version control already set up:
  1. You see the anim files are now broken, you go to revert the changes to the anim files in git.
  2. Observe that the paths are now broken (yellow). The IDs of the constraint sources no longer match up. They were automatically re-generated in the component, and do not count as a prefab override so were not and cannot be reverted)
  3. The anim files are now in a different but still permanently broken state. The only way to resolve this is to find-and replace the IDs in the prefab/scene files with the original IDs from the anim files.
To me, all of this seems like a massively over-engineered and extremely delicate solution to a problem that didn't even exist.
All this just so you can drag to reorder the sources in the list?
Also it seems extremely likely that this real-time scanning-and-editing of animation files is whats been causing the widely-reported slowdowns with this latest SDK,
(and why said slowdowns disappear when the avatar descriptor is removed)
.
Also personal note: I am very against the idea that my files are being silently edited in real time by the SDK, this should never be the case, and certainly not in such an unstable state.