I just finished migrating a portion of a project I’ve been working on to Roblox, which utilizes face-controls to animate a 2D character’s face. Once I finally had all my assets converted, imported, and positioned correctly, I started scripting and found out the hard way that “The current thread cannot read” from the FaceControls object because it’s locked to plugin security level. Serious bummer! I also tried directly reading the bone transforms (from the client) and somehow that didn’t work either.
After a quick search I found this thread that gave me some hope (Not much, it was from 2 years ago) and I was wondering if there’s been any progress on giving devs a way to read (or even write) these face controls:
In my opinion (and others’ if you read the release post), it seems like basic functionality to be able to read these values. That’s why I was happy when I read this from a Roblox staff member:
Once again, however, this was about two years ago and I haven’t been able to find any additional information about whatever API this might become. I was hoping to continue the conversation and hopefully get a vague timeframe of release, or if it is still even on the roadmap at all.
I just hope a feature like this isn’t so hard to develop, there are plenty of other people like me who are still interested in this!
I agree, the potential is quite high with the ability to read the FaceControl Data so that we can do cool stuff like detecting when the character is blinking for a weeping angel game-like inspiration.
i dont fully remember, i think i just got the average from the Left/RightEyeClosed (0-1, 1 means the respective eye is fully closed) and just set that as the frame’s transparency.
so i didnt do any lerping, or smoothing thats why it looks so choppy.
(it only works in command bar btw, not in scripts… YET)
It would be better to just make the blinking Boolean to a certain point than being relative to the value of the eyes.
Say if the value exceeds 0.8 or 0.9, we perform a full blink.
But we should also consider that because some players may have terrible webcam, the facial recognition code may extrapolate the eye movement too much and may lead to false blinking.
So unless we can adjust it via sensitivity (Which is a whole different can of worms to calculate), its better to just reduce our tolerance to like 0.7 or even 0.65.
yeah thats true, that was a just a very rough implementation i threw together in the command bar as a poc.
if we could access the data from scripts id experiment a LOT more.
I also wanna try making eye tracking with it if they ever remove the limitations.