Basic Usage

Please complete steps in the Setup section before running your application.

Note

Vive Hand Tracking SDK requires real camera devices to function, therefore does not support running in Unreal Editor for platforms other than Windows.

If you want to use plugin in your map, just drag HandTrackingProvider actor into the map editor.

The below sections introduces the basic funtions used in HandTrackingProvider actor. If you don’t need to customize the setup, you can try out the samples in Using Samples Levels section directly.

Select Engine

This should be called first to select the engine to use. Requires target as ViveHandTracking Component.

../_images/select_engine.png

You can set options in HandTrackingProvider - ViveHandTrackingComponent. You can set detection mode and max fps limit in the option.

../_images/option.png

Start/Stop detection

StartGestureDetection and StopGestureDetection are provided as blueprint function. Both requires target as ViveHandTracking Component.

In StartGestureDetection, you can choose the mode you prefer as input. The final mode used is modified in the option.

../_images/start.png ../_images/stop.png

Get Detection Result

When detection is running, detected left and right hand results are available from blueprint function GetLeftHand and GetRightHand.

Each hand contains following members, see sample level and FViveHandTrackingResult class for details:

  • points: position of the hand with different meanings for each mode selected.
  • gestureType: pre-defined gesture
  • bIsValid: if current hand is detected/visible
  • confidence: hand detection confidence
  • pinchLevel: pinch (thumb & index) level of the hand, within [0, 1]
  • bIsPinching: if currently pinching or not
  • pinchStart: start position of the pinch ray
  • pinchDirection: forward direction of the pinch ray
  • pinchRotation: rotation of the pinch ray
  • position: calculated position of hand with different meanings for each mode selected
  • rotation: calculated rotation of hand with different meanings for each mode selected
../_images/getresult.png

To query current detection mode and status, use blueprint function UViveHandTrackingComponent::GetMode() and UViveHandTrackingComponent::GetStatus().

Draw Detected Hands As Skeletons

Vive Hand Tracking plugin provides a sample blueprint to render hands as skeletons using joints and bones (or only a single joint in 2D/3D mode).

Add BasicHand into your map editor.

../_images/basichand.png

You can uncheck Show Left Hand or Show Right Hand if you only want to display one hand as skeleton.

Draw Detected Hands As 3D Model

Note

Display hand as 3D model is only supported in skeleton mode.

Vive Hand Tracking plugin provides sample blueprints to render hands as 3D models. Two models are provided in separate bludprints: cartoon model and robot model. These are only supported in skeleton mode.

Add CartoonHand or RiggedHand into your map editor.

../_images/cartoonhand.png ../_images/robothand.png

You can check Hidden in Game for LeftHand or RightHand if you don’t need both hands to display as 3d model.

Hint

Model blueprints don’t have colliders by default. If you need to add grab function, please refer to basichand blueprint to add collider and grab related blueprints.