Gesture (ActorComponent)

Introduction

VIVE Wave™ SDK provides two UActorComponents for Hand Gesture and Hand Tracking.

Hand Gesture: A collection of predefined gesture. For example, Like (Thumb Up), OK and Five.

Hand Tracking: The position and rotation (wrist only) of every hand skeleton joint.

By adding these components to your Blueprints, you can easily use Hand Gesture and Hand Tracking features.

Hand Gesture

../_images/UnrealGestureActorComponent01.png

By adding the WaveVRStaticGesture component, you can get static gesture events as defined by the code:

UENUM(BlueprintType, Category = Category = "WaveVR|Gesture")
enum class EWaveVRStaticGesture : uint8
{
        TYPE_INVALID    = 0,    /**< The gesture is invalid. */
        TYPE_UNKNOWN    = 1,    /**< Unknow gesture type. */
        TYPE_FIST       = 2,    /**< Represent fist gesture. */
        TYPE_FIVE       = 3,    /**< Represent five gesture. */
        TYPE_OK         = 4,    /**< Represent ok gesture. */
        TYPE_LIKE       = 5,    /**< Represent thumb up gesture. */
        TYPE_POINT      = 6,    /**< Represent index up gesture. */
        TYPE_PINCH      = 7,    /**< Represent pinch gesture. */
};

This photo demonstrates how to get the static gesture events of the right hand:

../_images/UnrealGestureActorComponent02.png

Hand Tracking

VIVE Wave™ SDK hand bones are defined as:

../_images/UnrealGestureActorComponent05.png

Note

  • Only the Wrist has both position and rotation. The other bones only have the position.
../_images/UnrealGestureActorComponent03.png ../_images/UnrealGestureActorComponent04.png

By adding the WaveVRSkeletonBone component and selecting the Bone Id, you can use the APIs below:

  • IsValidPose: For checking if the pose is valid.
  • GetLocation: For getting the bone location in FVector
  • GetRotation: For getting the bone rotation in FRotator

Note

  • Only the Wrist has rotation. Do not use GetRotation on other bones.