Forum Discussion
BTR_Josh
5 months agoExplorer
How To Use FIsdkDigitRangeParams
Good Afternoon,
Unreal Engine Version: 5.5.4
Meta Interaction SDK Version: v77.0.0
We're currently trying to create a system to recognise hand poses using the UIsdkHandDigitRecognizer class. We're trying to find documentation about how to use the FIsdkDigitRangeParams struct and what ranges these values work in.
We're assuming that it uses a normalized range (e.g. for CalcType::Curl, 0 is a straight finger and 1 is completely curled), but would like some clarification as to how these values are intended to be used.
If there are any samples that show an example of the UIsdkHandDigitRecognizerbeing used with the FIsdkDigitRangeParams struct, that would be best.
Cheers.
Josh,
Sure, I just did a few tests and here are some rough min/maxes for each Calculation Type, I'll also give a brief description as to what they're representing. I'll also be adding this into our documentation in the very near future so other devs can benefit, as well as updating our in-editor tooling with some more debugging features for these calculation axes.
(These are all for fingers, we only track Curl and Flexion for thumbs)
Abduction [3.3 - 78.1] Lateral movement of the finger away from it's resting position (think finger "spread")
Curl [-10.0 - 180] How "curled" that finger is, a negative value typically represents the finger being pulled up
Flexion [-27.0 - 93.1] The bend of the finger toward the palm (not curled)
Opposition [0.4 - 21.2] Representation of the distance of finger to the thumb
The update with the pose recognition tools should be coming out (hopefully) incredibly soon, can't be more specific because things can always change at the last minute, but stay tuned!
Cheers,
John
4 Replies
Replies have been turned off for this discussion
- j_g_sampsonMeta Employee
Hey BTR_Josh!
Thanks for trying out the Unreal Interaction SDK. We don't currently have any samples that demonstrate the use of the FIsdkDigitRangeParams. However, in the next update we do actually have a new asset-driven pose recognition layer that we've added that should make this a lot easier for you to utilize. We do recognize the UIsdkHandDigitRecognizer can be a bit awkward to work with so we're hoping this new system will help ease the user experience there.
In the interim, I would say take a look at the UIsdkHandFingerRecognizer class, which allows you to establish the FingerType and, more relevant to what you're asking about, the CalcType (EIsdkDetection_FingerCalcType) which will establish which kind of calculation that recognizer should report on ( Curl, Flexion, Abduction, etc). The FIsdkDigitRangeParams struct describes for the upper and lower bounds and tolerances that are allowed for that digit's specific calculation type to register (or not).
So for example, you could create a UIsdkHandFingerRecognizer, set a hand mesh, assign FingerType to Index, assign CalcType to Curl, and set the FIsdkDigitRangeParams struct (from the base UIsdkHandDigitRecognizer class) with the values for your desired range, and that Recognizer should fire whenever the value for the index finger curling is within the defined parameters. With a series of UIsdkHandFingerRecognizers setup this way and configured how you want, you can achieve an overall hand pose recognition.
Hopefully that help to clarify, feel free to let me know if you could use more information. I'll post here once the update goes live (hopefully soon) with the new pose recognition system as well, as it sounds like that will be very much up your alley.
Cheers!
John
- BTR_JoshExplorer
Thanks for the reply John,
Do you have some example values for the upper and lower bounds? The problem we're running into is that we don't know the range that these values work in. Is it a normalized range (0-1), or even an 8 bit range (0-255), or something else?
Also, is there an rough estimate on when this update will come out (e.g. this financial quarter), or is it more of a case of "it'll come out when it's ready"? The work regarding this isn't urgent so we'll simply wait for the update if it isn't far off.
Cheers,
Josh
- j_g_sampsonMeta Employee
Josh,
Sure, I just did a few tests and here are some rough min/maxes for each Calculation Type, I'll also give a brief description as to what they're representing. I'll also be adding this into our documentation in the very near future so other devs can benefit, as well as updating our in-editor tooling with some more debugging features for these calculation axes.
(These are all for fingers, we only track Curl and Flexion for thumbs)
Abduction [3.3 - 78.1] Lateral movement of the finger away from it's resting position (think finger "spread")
Curl [-10.0 - 180] How "curled" that finger is, a negative value typically represents the finger being pulled up
Flexion [-27.0 - 93.1] The bend of the finger toward the palm (not curled)
Opposition [0.4 - 21.2] Representation of the distance of finger to the thumb
The update with the pose recognition tools should be coming out (hopefully) incredibly soon, can't be more specific because things can always change at the last minute, but stay tuned!
Cheers,
John
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device