[SDK 3.10.6-beta.1] Please include support for blended shapes and simplifed parameters in the new native FT
lackofbindings
Most avatars and prefabs that currently have VRCFT support were made with one of the popular driver prefabs in mind, (eg. Jerry's, Pawlygon, etc.). It will require an extreme amount of manual work to convert existing avatars to the new native FT system as it is. Many existing avatars rely on the Blended Shapes that are part of the Unified Expressions Standard (https://docs.vrcft.io/docs/tutorial-avatars/tutorial-avatars-extras/unified-blendshapes#ue-blended-shapes), instead of having every upper/lower/left/right etc. shape. Also many prefabs, such as those that animate ears/tail/etc. to the FT data rely on Simplified Tracking Parameters (https://docs.vrcft.io/docs/tutorial-avatars/tutorial-avatars-extras/parameters#more-simplified-tracking-parameters) such as the incredibly common SmileFrownLeft/Right and EyeLidLeft/Right.
As it is currently, configuring the native FT system to support these existing avatars and prefabs requires cloning the VRCFT software and searching through the source code to find and assemble the relevant formulas to enter into the custom expression field, many of which you would have to enter twice if you also want it forwarded to an animator parameter at the same time.
Please include support for the Blended Shapes and Simplified Parameters that are part of the Unified Expression standard, and save creators hundreds of hours of work, was well as the repetitive task of copying and maintaining the resulting complex configs across avatars.
Photo Viewer
View photos in a modal
Log In
Purpzie
Oh, ok. :( Thanks for the reply and explanation.
It would help if we could save an expression to a variable for other param behaviors instead of having to duplicate it across everything that needs it, tbh. That would definitely help with the instruction count.
lackofbindings
Purpzie Oh hey I've already got a canny for that, upvote here! https://feedback.vrchat.com/open-beta/p/sdk-3106-beta1-allow-using-already-evaluated-parameter-behaviors-in-other-parame
Kung
Hi, thanks for the feature request!
Regarding the title:
"Please include support for blended shapes and simplifed parameters in the new native FT"
Support is included (and surpassed) by the Parameter Behaviors and custom expressions feature. What this feature request appears to be is a request for presets for the custom expressions.
This was actually considered early on and is currently not planned.
A goal of the new FT system is to provide flexibility to achieve what was previously achieved regarding blendshapes in the animator, outside of the animator, allowing perf optimization.
Though we know doing stuff in the animator is sometimes unavoidable, so "Forward to Animator" is an option available to people who need it, it's not encouraged.
Pre-native FT had to deal with very limited parameter space and so the paradigm around that extending in to the new system by adding presets for custom expressions would somewhat bake in an artifact of this transitionary period.
Overall, we don't want to necessarily encourage people from using animator-only prefabs as is, but also don't want to stop them either. (And of course, the old non-native stuff will still work too)
I would suggest using the "Copy All" and "Paste" features of the Parameter Expressions to speed up any migration work if that's your concern (I've already seen community examples shared of common conversions into custom expression). The "Paste" feature can single-click paste many Parameter Expressions at once, and the clipboard format is plain text, so copied setups can be shared around.
Separately, regarding the 512 instructions limit, that is a little conservative yeah, I'll look into increasing it.
lackofbindings
Kung It wasn't my intention for them to necessarily be just presets, though I wouldn't be opposed. I was hoping for a more seamless integration, the values are already provided by VRCFT after all. Also they're not necessarily all about parameter space, since which parameters you use and which shapes you use weren't linked. A lot of it is just about practicality, a lot of hardware doesn't even track the individual shapes that make up some of the blended shapes. And of course backwards-compatibility with existing avatars, the closer the new system is to being a drop-in the better, in my opinion. I feel like leaving them out is just encouraging people to rely on third-party scripts to auto-fill all the required Parameter Behaviors. There are worse fates I suppose, just lots more work for me lol. Anyway I will say the Parameter Behaviors / custom expressions system is a godsend, kudos to whoever's idea that was.
Purpzie
Apparently custom expressions are limited to 512 instructions TOTAL, for the whole avatar, and it's a hard limit. This makes it extremely difficult to emulate the missing shapes. Yikes.
Please add the missing names so we don't have to use up so much of that 512 limit just to bring them back ;_;
Surami
Would be nice to add on to this where it disables eye blink (if animation driven) when eye tracking is active, so be able to disable certain animation/parameters when either face tracking or eye tracking is active.
lackofbindings
Surami Agreed! VRCFT also already provides EyeTrackingActive and LipTrackingActive over OSC for /v2/, it would be nice if VRChat could add those too. Ideally the same parameters could also be activated by Selfie Expression.
M
Mike Da Bird
I shall add, currently converting my own avatar base to Native FT, it supports pupil dilation (when using something like a rooted Quest Pro, or Steam Frame in the near future) and works on Jerry's / Pawlygon's templates but not using Native FT. Reason is that Native FT, as mentioned here, does not send Simplified Parameters (pupil dilation on QPro uses the PupilDilation shape on both eyes, being unsupported here, and does not send either EyeDilation or EyeConstrict per eye shapes). I can confirm this through the debug menu. Adding support for the well established Simplified Shapes would save a LOT of effort for everyone instead of doing manual redundant math and praying your headset can send all the raw shape data through VRCFT.
lackofbindings
I should also add that the calculations for most of the blended shapes and simplified parameters are already calculated and provided by the VRCFT software over OSC: https://github.com/benaclejames/VRCFaceTracking/blob/master/VRCFaceTracking.Core/Params/Expressions/UnifiedExpressionsParameters.cs You'd just need to add functionality to the new FT system to receive and sync them.