Hand ActorComponent¶
Introduction¶
VIVE Wave™ plugin provides an UActorComponents of Hand Tracking for the position and rotation of hand joints.
By adding the the component to your Blueprints, you can easily retrieve the data related to Hand Tracking.
Hand Tracking¶
VIVE Wave™ plugin defines hand joints as follows.
By adding the WaveVRHandJointComponent, you can retrieve the joint tracking information of a specified combination of Tracker
, Hand
and Joint
.
The WaveVRHandJointComponent provides below APIs:
IsValidPose
: Checks if the pose is valid.GetLocation
: Retrieves the joint location values asFVector
.GetRotation
: Retrieves the joint rotation values asFRotator
.
Hand Gesture¶
With the WaveVRHandGesture component, you can receive the gesture by listening to the gesture blueprint event.
The Static Gesture are default gesture types included in EWaveVRGestureType.
The Custom Gesture should be defined manually.
VIVE Wave™ plugin provides the WaveVRCustomGesture class at WaveVR C++ Classes > WaveVR > Public > Hand > CustomGesture.
Right-click on the WaveVRCustomGesture to create a blueprint class.
In the blueprint class, you have to give each gesture a name and then define left/right/dual hand gesture(s) by customizing the finger state and joint (node) distance.
Thumb state
: Close or/and Open.Index/Middle/Ring/Pinky state
: Close, Relax or/and Open.
If you select all states of a finger, all states of this finger will be used in calculating a custom gesture.
Note
You have to select at least a state of each finger.
Also, you can set the distance between two joints (nodes) to Near
or Far
.
For example, the Thumb Tip and Index Tip should be Near
in the OK gesture.
Here is a sample for the Rock gesture of left hand.
After configuring the blueprint class and putting the blueprint in your level, you can retrieve the custom gesture event like below photo.