OSC Eye Tracking Smoothing
needs more information
Namekotuki
Eye tracking in OSC is an interesting way to control the avatar's line of sight, but it feels unnatural due to the fine vibrations in the gaze even when gazing at the same spot.
It would be easier to use if a setting could be added to reduce blurring by, for example, averaging multiple frames, since it is acceptable to generate some lag in eye tracking. It would also be useful if these settings could be controlled from the settings window within VRChat.
Log In
Phasedragon
needs more information
There are a couple different ways to use eye tracking in VRChat. It is important to mention which one you're talking about in a canny about OSC eye tracking. However in this case, it doesn't really matter because both have smoothing in one form or another already.
If you use the official, built-in version which works on any avatar (documented here https://docs.vrchat.com/docs/osc-eye-tracking) then it will already have smoothing automatically.
If you use avatar parameters and animations to build your own eye tracking, then by default it will not be smoothed. However there are methods to apply smoothing to parameters, documented here https://hai-vr.notion.site/Avatars-3-0-Animated-Animator-Parameters-and-Smoothing-f128c71dd3184c2bb61a4cff8296ada5 and implemented here https://github.com/regzo2/OSCmooth
If these do not answer your request, please provide more details.
Namekotuki
Phasedragon: What I am talking about in this thread is the eye tracking built into VRChat, which sends OSC via VRCFaceTracking.
VRChat's built-in eye tracking says that smoothing is automatic, but I honestly don't see the effect of it; the blue sphere shown in Debug is vibrating fine, and the eyeballs are vibrating in time with it.
It would be useful to be able to freely adjust the intensity and on/off of the smoothing.
Phasedragon
Namekotuki: Ah, what you're talking about is the local view. You're correct, that doesn't have smoothing. The smoothing is part of the networking to other players. The purpose of this smoothing is to handle the low update rate of networking. It's not really appropriate to apply smoothing to the high refresh rate of the data coming in, because that data should be the exact representation of where your eyes are, not an interpolation. If the external data says it's at xyz, vrchat will show it at xyz.
If this data is messy and jittery, it's the responsibility of the headset firmware or intermediate osc program to apply smoothing, because those programs know more about the specific behavior of the hardware itself, and may apply different smoothing algorithms depending on the behavior of the source data.
Namekotuki
Phasedragon:Understood. Thank you for your answer.