Wave Tracker Blueprints¶
Blueprint Types¶
The Tracker interface uses blueprint types as below.
EWaveVRTrackerId¶
UENUM(BlueprintType, Category = "WaveVR|Tracker")
enum class EWaveVRTrackerId : uint8
{
Tracker0 = 0, //WVR_TrackerId.WVR_TrackerId_0
Tracker1 = 1, //WVR_TrackerId.WVR_TrackerId_1
Tracker2 = 2, //WVR_TrackerId.WVR_TrackerId_2,
Tracker3 = 3, //WVR_TrackerId.WVR_TrackerId_3,
Tracker4 = 4, //WVR_TrackerId.WVR_TrackerId_4,
Tracker5 = 5, //WVR_TrackerId.WVR_TrackerId_5,
Tracker6 = 6, //WVR_TrackerId.WVR_TrackerId_6,
Tracker7 = 7, //WVR_TrackerId.WVR_TrackerId_7,
Tracker8 = 8, //WVR_TrackerId.WVR_TrackerId_8,
Tracker9 = 9, //WVR_TrackerId.WVR_TrackerId_9,
Tracker10 = 10, //WVR_TrackerId.WVR_TrackerId_10,
Tracker11 = 11, //WVR_TrackerId.WVR_TrackerId_11,
Tracker12 = 12, //WVR_TrackerId.WVR_TrackerId_12,
Tracker13 = 13, //WVR_TrackerId.WVR_TrackerId_13,
Tracker14 = 14, //WVR_TrackerId.WVR_TrackerId_14,
Tracker15 = 15, //WVR_TrackerId.WVR_TrackerId_15,
};
EWaveVRTrackerRole¶
UENUM(BlueprintType, Category = "WaveVR|Tracker")
enum class EWaveVRTrackerRole : uint8
{
Undefined = 0, // WVR_TrackerRole.WVR_TrackerRole_Undefined,
Standalone = 1, // WVR_TrackerRole.WVR_TrackerRole_Standalone,
Pair1_Right = 2, // WVR_TrackerRole.WVR_TrackerRole_Pair1_Right,
Pair1_Left = 3, // WVR_TrackerRole.WVR_TrackerRole_Pair1_Left,
Shoulder_Right = 32, // WVR_TrackerRole_Shoulder_Right
Upper_Arm_Right = 33, // WVR_TrackerRole_Upper_Arm_Right
Elbow_Right = 34, // WVR_TrackerRole_Elbow_Right
Forearm_Right = 35, // WVR_TrackerRole_Forearm_Right
Wrist_Right = 36, // WVR_TrackerRole_Wrist_Right
Hand_Right = 37, // WVR_TrackerRole_Hand_Right
Thigh_Right = 38, // WVR_TrackerRole_Thigh_Right
Knee_Right = 39, // WVR_TrackerRole_Knee_Right
Calf_Right = 40, // WVR_TrackerRole_Calf_Right
Ankle_Right = 41, // WVR_TrackerRole_Ankle_Right
Foot_Right = 42, // WVR_TrackerRole_Foot_Right
Shoulder_Left = 47, // WVR_TrackerRole_Shoulder_Left
Upper_Arm_Left = 48, // WVR_TrackerRole_Upper_Arm_Left
Elbow_Left = 49, // WVR_TrackerRole_Elbow_Left
Forearm_Left = 50, // WVR_TrackerRole_Forearm_Left
Wrist_Left = 51, // WVR_TrackerRole_Wrist_Left
Hand_Left = 52, // WVR_TrackerRole_Hand_Left
Thigh_Left = 53, // WVR_TrackerRole_Thigh_Left
Knee_Left = 54, // WVR_TrackerRole_Knee_Left
Calf_Left = 55, // WVR_TrackerRole_Calf_Left
Ankle_Left = 56, // WVR_TrackerRole_Ankle_Left
Foot_Left = 57, // WVR_TrackerRole_Foot_Left
Chest = 62, // WVR_TrackerRole_Chest
Waist = 63, // WVR_TrackerRole_Waist
Camera = 71, // WVR_TrackerRole_Camera
Keyboard = 72, // WVR_TrackerRole_Keyboard
};
EWaveVRTrackerButton¶
UENUM(BlueprintType, Category = "WaveVR|Tracker")
enum class EWaveVRTrackerButton : uint8
{
System = 0,
Menu = 1,
A = 10,
B = 11,
X = 12,
Y = 13,
Trigger = 17,
};
EWaveVRTrackerStatus¶
UENUM(BlueprintType, Category = "WaveVR|Tracker")
enum class EWaveVRTrackerStatus : uint8
{
// Initial, can call Start API in this state.
NOT_START,
START_FAILURE,
// Processing, should NOT call API in this state.
STARTING,
STOPING,
// Running, can call Stop API in this state.
AVAILABLE,
// Do nothing.
UNSUPPORT
};
EWVR_AnalogType¶
UENUM(BlueprintType, Category = "WaveVR")
enum class EWVR_AnalogType : uint8
{
None = 0,
XY = 1,
XOnly = 2,
};
Blueprint Function Library¶
You can see the Tracker functions by typing “Wave Tracker” in the blueprint.

GetTrackerRole¶
Retrieves a Tracker’s role. Refers to EWaveVRTrackerRole.
EWaveVRTrackerRole GetTrackerRole(EWaveVRTrackerId trackerId)
IsTrackerPoseValid¶
Checks if the tracker’s pose is valid.
bool IsTrackerPoseValid(EWaveVRTrackerId trackerId)
GetTrackerPosition¶
Retrieves a Tracker’s position.
bool GetTrackerPosition(EWaveVRTrackerId trackerId, FVector& outPosition) // returns true for valid position.
GetTrackerRotation¶
Retrieves a Tracker’s orientation.
bool GetTrackerRotation(EWaveVRTrackerId trackerId, FQuat& outOrientation) // returns true for valid rotation.
GetTrackerAnalogType¶
Retrieves a Tracker button’s analog type.
EWVR_AnalogType GetTrackerAnalogType(EWaveVRTrackerId trackerId, EWaveVRTrackerButton buttonId)
IsTrackerButtonPressed¶
Checks if a Tracker button is pressed.
bool IsTrackerButtonPressed(EWaveVRTrackerId trackerId, EWaveVRTrackerButton buttonId)
IsTrackerButtonTouched¶
Checks if a Tracker button is touched.
bool IsTrackerButtonTouched(EWaveVRTrackerId trackerId, EWaveVRTrackerButton buttonId)
GetTrackerButtonAxis¶
Retrieves a Tracker button’s axis.
FVector2D GetTrackerButtonAxis(EWaveVRTrackerId trackerId, EWaveVRTrackerButton buttonId)
GetTrackerBatteryLife¶
Retrieves a Tracker’s battery life in float (0~1) that 0 for 0% and 1 for 100%.
float GetTrackerBatteryLife(EWaveVRTrackerId trackerId)
TriggerTrackerVibration¶
Triggers a Tracker’s haptic pulse. Default duration is 0.5s. Set frequency to 0 to use system default value. Default amplitude (0~1) is 0.5f.
bool TriggerTrackerVibration(EWaveVRTrackerId trackerId, int durationMicroSec = 500000, int frequency = 0, float amplitude = 0.5f)
GetTrackerExtendedData¶
Retrieves a Tracker’s extended data.
TArray<int> GetTrackerExtendedData(EWaveVRTrackerId trackerId, int &validSize)
GetTrackerExtendedDataTimestamp¶
Retrieves a Tracker’s extended data with a timestamp.
TArray<int> GetTrackerExtendedDataTimestamp(EWaveVRTrackerId trackerId, int& validSize, int& timestamp)
GetTrackerDeviceName¶
Retrieves a Tracker’s device name.
bool GetTrackerDeviceName(EWaveVRTrackerId trackerId, FString& deviceName)