What I am reporting today is that I noticed that the VRC Animator Tracking control runs late. SDK face tracking was released and I put it on my avatar. I am running several animations that are controlled by the Animator Tracking control. Those animations now seems to run late. Timing is essential to not get a "double transform" artifact, basically two blendshapes controlling the same area of the mesh or the same blendshape being overdriven past 100. Driving the behavior twice.
The behavior expected: An animation with a "VRC Animator Tracking Control" component attached to it should not run at the same time as the selected item on its list. Such as blinking or eyelook of the eye tracking simulated or tracked by camera.
I discovered it was running late because I use a simple system of a VRC Contact Receiver set to Constant to make an animation close my eye when a hand or finger gets near it. This makes my avatar's eye close quickly. It fully depends on the VRC Animator Tracking Control to take over during the animation, and it has been running well until now.
I don't prefer that the Animator Tracking Control also turns off the eye look, but I can tolerate it because it simply feels worse to have the face overdriven to "double" the closed eye. And certainly worse to have someone's (or my own finger) accidentally poking in my avatar's open eye. lol.
What I see: When my eyes are open with the SDK face tracking it all appears normal and the contact receiver can be touched and the animation plays. When I mostly close my eyes or squint and the contact receiver is touched, for a frame or two (noticeably) the eye closed animation plays before the VRC Animator Tracking Control takes over and the face tracked blink plays over the left or right EyeClosedLeft or EyeClosedRight animation, causing a double transform in the same area of the face before the Animator tracking control finally takes over.
If you want to see this for yourself my animation layer is setup as follows:
[entry] -> [waiting for input] - true bool for the contact parameter -> [EyeClosedRight or EyeClosedLeft animation with VRC Animator Tracking control for Eyes & Eyelids enabled for animation] - false bool for the contact parameter -> [restore tracking with VRC Animator Tracking Control] -> exit time 0.001 -> [exit]
I use write defaults on, and I use a "none" animation with the waiting and restore tracking steps. The durations to the animation are 0. The contact receiver is on the same eye bone as the eye set to constant.
To attempt to overcome this late behavior I tried many things:
  • to update my animation to also include "off" frames for the Unified Expressions that might interfere with it. EyeClosedRight EyeSquintRight (etc).
  • I also tried to reprogram my FX layer in a way to further ensure no conflicts with the VRC Animator Layer control.
  • trying an FX with base layer plus ONLY layers with the contact + animation programming (see sample avatar). And removing all default expression options from the layers.
  • I also instead of using my blendshape for the eye being poked I tried to use the Unified Expression EyeClosedRight and EyeClosedLeft and learned it overdrives that blendshape even though (from my understanding) it is clamped and should not be able to go over 100.
  • I also tried removing every addon (vrcfury, gogoloco).
  • Uploading a version with the most barebones of features (the sample avatar).
After exhausting all of these options it feels like time to make a feedback post about it since it may just be a bug out of my control.
Sample:
Here is an avatar for devs to see this on. To repeat what I am seeing, close or squint your own eyes with a facetracked headset and just poke the character's eye with a finger or hand. Do it rapidly and you can see the eyelid dragging further down, overdriving the "EyeClosedLeft" or "EyeClosedRight" unified expression blendshape possibly past 100 and certainly not respecting the animator tracking control for those frames you can see it being double transformed. Demonstrating the tracking control running late.
Also for the sake of being through it does have Unified Expressions present, Use All Tracking keys checked, and "autofill" used for the rest. Eye gaze mode is set to Both. Eyelid type is set to Blendshapes. with "Blink._Both" as the source. In my animation Blink.Both is also deliberately set to 0 in the VRC Animator Tracking controlled animation too. Uploaded with Avatar and Base sdk 3.10.6 viewed on beta build 1948 AND main build 1938.