Develop

Get Bone Rotation

Updated: Apr 15, 2026
Returns the rotation quaternion for a hand tracking bone specified by an EOculusXRBone value. This function is defined in UOculusXRInputFunctionLibrary (module: OculusXRInput) and is exposed as a BlueprintPure node (no execution pin required) under the OculusLibrary > HandTracking category.

Blueprint

Get Bone Rotation Blueprint

Arguments

  • Device Hand: One of the EOculusXRHandType enum values:
    • None
    • Hand Left
    • Hand Right
  • Bone Id: Indicates the bone ID, based on the EOculusXRBone enum values. See Bone ID values for the full list of accepted values grouped by anatomical region.
  • Controller Index: Optional integer indicating the controller index. Defaults to 0.

Bone ID values

Wrist and forearm

Display NameEnum ValueDescription
Wrist Root
Wrist_Root
Wrist root frame
Hand Start
Hand_Start
Alias for Wrist_Root. Marks the beginning of the bone range.
Forearm Stub
Forearm_Stub
Forearm frame
The thumb and pinky start at index _0 (trapezium and metacarpal, respectively), while the index, middle, and ring fingers begin at the proximal phalange (index _1).

Thumb

Display NameEnum ValueDescription
Thumb0
Thumb_0
Trapezium
Thumb1
Thumb_1
Metacarpal
Thumb2
Thumb_2
Proximal phalange
Thumb3
Thumb_3
Distal phalange

Index finger

Display NameEnum ValueDescription
Index1
Index_1
Proximal phalange
Index2
Index_2
Intermediate phalange
Index3
Index_3
Distal phalange

Middle finger

Display NameEnum ValueDescription
Middle1
Middle_1
Proximal phalange
Middle2
Middle_2
Intermediate phalange
Middle3
Middle_3
Distal phalange

Ring finger

Display NameEnum ValueDescription
Ring1
Ring_1
Proximal phalange
Ring2
Ring_2
Intermediate phalange
Ring3
Ring_3
Distal phalange

Pinky finger

Display NameEnum ValueDescription
Pinky0
Pinky_0
Metacarpal
Pinky1
Pinky_1
Proximal phalange
Pinky2
Pinky_2
Intermediate phalange
Pinky3
Pinky_3
Distal phalange

Fingertips

Display NameEnum ValueDescription
Thumb Tip
Thumb_Tip
Thumb tip (position-only, not used for mesh skinning)
Max Skinnable
Max_Skinnable
Alias for Thumb_Tip. Marks the boundary of the skinnable range. Bones 0–18 are skinnable and deform the hand mesh. Bones 19–23 (the tip markers) are position-only.
Index Tip
Index_Tip
Index tip (position-only)
Middle Tip
Middle_Tip
Middle tip (position-only)
Ring Tip
Ring_Tip
Ring tip (position-only)
Pinky Tip
Pinky_Tip
Pinky tip (position-only)

Sentinels

These values are range boundaries and do not represent physical bones.
Display NameEnum ValueDescription
Hand End
Hand_End
Sentinel marking the end of the valid bone range
Hand Max
Bone_Max
Alias for Hand_End. Boundary for valid bone range.
Invalid
Invalid
Sentinel for error or unset state

Output

  • Return Value: An FQuat structure that indicates the bone rotation. Rotations are in parent-relative (hierarchical) bone space, converted to Unreal’s coordinate system. The Wrist Root bone rotation is relative to tracking space (effectively world-relative). All other bone rotations are relative to the parent bone in the skeleton hierarchy.
    The function returns FQuat::Identity (0, 0, 0, 1) in these cases:
    • BoneId is Invalid
    • DeviceHand is None
    • Hand tracking is unavailable
    • The hand is not currently tracked