How To Use

Setting Up

Drag and drop HandLeft and HandRight in the scene.

Reference XRRig to InputRoot of MultiSourceInputDataProvider for each hand.

Create an empty game object and name it "Left Hand Poses". Add HandPoseHandRef component and reference left hand skeleton. Leave hand poses array empty for now.

Creaty an empty game object as a child of "Left Hand Poses" and name it "Thumbs Up".

Add HandPose component to the object.

Each hand pose can be defined by multiple IHandPoseComponent components. Currently there are two concrete components implemented: HandPoseShape and HandPoseOrientation

Add HandPoseShape to the components array of HandPose. Define your shape by dragging HandShape scriptable objects in Shapes array. HandShape scriptable objects are at Assets/OctoXR/Core/ScriptableObjects/HandPoseDetection. Thumbs Up hand shape is defined by thumb in extension and all other fingers in flexion.

Add HandPoseOrientation to the components array of HandPose. Set orientation mode to: Palm Back, Palm Right, Fingers Forward and Fingers Right.

Go back to HandPoseHandRef component that is attached to "Left Hand Poses" game object and reference "Thumbs Up" game object to Hand poses array.

Your Thumbs Up pose should look somewhat like this:

Creating Hand Shapes

Create an empty game object and name it "Shape Creator". Attach HandShapeCreator component.

Reference a hand skeleton component (it's irrelevant if it's right hand or left hand skeleton because hand shapes are interchangeable for both hands). Right click somewhere in the assets folder and create a HandShape (Create/OctoXR/HandShape). Reference that hand shape in the the target pose property of shape creator. In the Hand Bones dropdown select which bones would you like to create your shape for.

Enter play mode, show your shape with the hand (same hand you referenced your hand skeleton) and click Create Shape button.

Last updated