How To Use

Short video tutorial explaining how to implement gesture recognition using OctoXR

Setting Up

Drag and drop OctoHand_Left and OctoHand_Right prefabs as a child of TrackingSpace.
Reference (for Oculus) OVRCameraRig to InputRoot of MultiSourceInputDataProvider for each hand.

Creating Gestures

Gestures can be created with or without the use of GestureHolder scriptable object.

With GestureHolder

Right click somewhere in the project's assets folder and click on Create/Octo XR/Gesture Recognition/Gesture Holder
Attach the GestureCreator component to BasicHandSkeleton and drag and drop previously made GestureHolder.
Start the play mode and click the "Create Gesture" button while doing the gesture with hand. Save the gesture in desired folder. All of gestures are saved both in the assets folder and in the GestureHolder scriptable Object.

Without GestureHolder

You can choose not to use GestureHolder scriptable object. If you do not provide GestureCreator with the GestureHolder, your gestures will be saved and stored in the projects assets folder but not in the GestureHolder.

Setting Up GestureManager

Create empty game object and attach the GestureManager component.
If you drag and drop previously created GestureHolder and click the "Load All Gestures" button, your lists will be filled with gestures.
If you did not create GestureHolder, you can load your gestures by clicking "Load Gesture" button and browsing for gesture in the project's assets folder.

Gesture Detection

Remove GestureCreator component from BasicHandSkeleton and add the GestureDetector. Drag and drop previously made GestureManager. You can read more about Detection Modes in next section.

Gesture Recognized Events

Every gesture has three events you can connect your functionalities to. More about them and what is Rotation Threshold in the next section.