Inheritance #

RefCounted

- AESContext
- AStar2D
- AStar3D
- AStarGrid2D
- AudioEffectInstance (1)
- AudioSample
- AudioSamplePlayback
- AudioStreamPlayback (5)
- CameraFeed
- CharFXTransform
- ConfigFile
- Crypto
- DTLSServer
- DirAccess
- ENetConnection
- EditorContextMenuPlugin
- EditorDebuggerPlugin
- EditorDebuggerSession
- EditorExportPlatform (6)
- EditorExportPlugin
- EditorExportPreset
- EditorFeatureProfile
- EditorFileSystemImportFormatSupportQuery
- EditorInspectorPlugin
- EditorResourceConversionPlugin
- EditorResourcePreviewGenerator
- EditorResourceTooltipPlugin
- EditorSceneFormatImporter (4)
- EditorScenePostImport
- EditorScenePostImportPlugin
- EditorScript
- EditorTranslationParserPlugin
- EncodedObjectAsID
- EngineProfiler
- Expression
- FileAccess
- GLTFObjectModelProperty
- HMACContext
- HTTPClient
- HashingContext
- ImageFormatLoader (1)
- JavaClass
- JavaObject
- JavaScriptObject
- KinematicCollision2D
- KinematicCollision3D
- Lightmapper (1)
- MeshConvexDecompositionSettings
- MeshDataTool
- MultiplayerAPI (2)
- Mutex
- NavigationPathQueryParameters2D
- NavigationPathQueryParameters3D
- NavigationPathQueryResult2D
- NavigationPathQueryResult3D
- Node3DGizmo (1)
- OggPacketSequencePlayback
- OpenXRAPIExtension
- PCKPacker
- PackedDataContainerRef
- PacketPeer (8)
- PhysicsPointQueryParameters2D
- PhysicsPointQueryParameters3D
- PhysicsRayQueryParameters2D
- PhysicsRayQueryParameters3D
- PhysicsShapeQueryParameters2D
- PhysicsShapeQueryParameters3D
- PhysicsTestMotionParameters2D
- PhysicsTestMotionParameters3D
- PhysicsTestMotionResult2D
- PhysicsTestMotionResult3D
- RDAttachmentFormat
- RDFramebufferPass
- RDPipelineColorBlendState
- RDPipelineColorBlendStateAttachment
- RDPipelineDepthStencilState
- RDPipelineMultisampleState
- RDPipelineRasterizationState
- RDPipelineSpecializationConstant
- RDSamplerState
- RDShaderSource
- RDTextureFormat
- RDTextureView
- RDUniform
- RDVertexAttribute
- RandomNumberGenerator
- RegEx
- RegExMatch
- RenderSceneBuffers (2)
- RenderSceneBuffersConfiguration
- Resource (103)
- ResourceFormatLoader
- ResourceFormatSaver
- ResourceImporter (16)
- SceneState
- SceneTreeTimer
- Semaphore
- SkinReference
- StreamPeer (5)
- SurfaceTool
- TCPServer
- TLSOptions
- TextLine
- TextParagraph
- TextServer (1)
- Thread
- TranslationDomain
- TriangleMesh
- Tween
- Tweener (5)
- UDPServer
- UPNP
- UPNPDevice
- WeakRef
- WebRTCPeerConnection (1)
- XMLParser
- XRInterface (4)
- XRPose
- XRTracker (2)
- ZIPPacker
- ZIPReader
XRHandTracker
Table of contents

XRHandTracker #

is_refcounted, is_instantiable, core, not_builtin_classes

A tracked hand in XR.

A hand tracking system will create an instance of this object and add it to the XRServer. This tracking system will then obtain skeleton data, convert it to the Godot Humanoid hand skeleton and store this data on the XRHandTracker object.

Use XRHandModifier3D to animate a hand mesh using hand tracking data.

Members #

var hand = TRACKER_HAND_LEFT#

var hand_tracking_source = HAND_TRACKING_SOURCE_UNKNOWN#

The source of the hand tracking data.

var has_tracking_data: bool = false#

If true, the hand tracking data is valid.

var type = TRACKER_HAND#

Methods #

const func get_hand_joint_angular_velocity(joint: int enumXRHandTracker.HandJoint) -> Vector3#

Returns the angular velocity for the given hand joint.

const func get_hand_joint_flags(joint: int enumXRHandTracker.HandJoint) -> intXRHandTracker.HandJointFlags#

Returns flags about the validity of the tracking data for the given hand joint (see XRHandTracker.HandJointFlags).

const func get_hand_joint_linear_velocity(joint: int enumXRHandTracker.HandJoint) -> Vector3#

Returns the linear velocity for the given hand joint.

const func get_hand_joint_radius(joint: int enumXRHandTracker.HandJoint) -> float#

Returns the radius of the given hand joint.

const func get_hand_joint_transform(joint: int enumXRHandTracker.HandJoint) -> Transform3D#

Returns the transform for the given hand joint.

func set_hand_joint_angular_velocity(angular_velocity: Vector3) -> void#

Sets the angular velocity for the given hand joint.

func set_hand_joint_flags(flags: int enumXRHandTracker.HandJointFlags) -> void#

Sets flags about the validity of the tracking data for the given hand joint.

func set_hand_joint_linear_velocity(linear_velocity: Vector3) -> void#

Sets the linear velocity for the given hand joint.

func set_hand_joint_radius(radius: float) -> void#

Sets the radius of the given hand joint.

func set_hand_joint_transform(transform: Transform3D) -> void#

Sets the transform for the given hand joint.

Annotations #

Constants #

const HAND_TRACKING_SOURCE_UNKNOWN = 0 enum HandTrackingSource#

The source of hand tracking data is unknown.

const HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1 enum HandTrackingSource#

The source of hand tracking data is unobstructed, meaning that an accurate method of hand tracking is used. These include optical hand tracking, data gloves, etc.

const HAND_TRACKING_SOURCE_CONTROLLER = 2 enum HandTrackingSource#

The source of hand tracking data is a controller, meaning that joint positions are inferred from controller inputs.

const HAND_TRACKING_SOURCE_NOT_TRACKED = 3 enum HandTrackingSource#

No hand tracking data is tracked, this either means the hand is obscured, the controller is turned off, or tracking is not supported for the current input type.

const HAND_TRACKING_SOURCE_MAX = 4 enum HandTrackingSource#

Represents the size of the HandTrackingSource enum.

const HAND_JOINT_PALM = 0 enum HandJoint#

Palm joint.

const HAND_JOINT_WRIST = 1 enum HandJoint#

Wrist joint.

const HAND_JOINT_THUMB_METACARPAL = 2 enum HandJoint#

Thumb metacarpal joint.

const HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3 enum HandJoint#

Thumb phalanx proximal joint.

const HAND_JOINT_THUMB_PHALANX_DISTAL = 4 enum HandJoint#

Thumb phalanx distal joint.

const HAND_JOINT_THUMB_TIP = 5 enum HandJoint#

Thumb tip joint.

const HAND_JOINT_INDEX_FINGER_METACARPAL = 6 enum HandJoint#

Index finger metacarpal joint.

const HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7 enum HandJoint#

Index finger phalanx proximal joint.

const HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8 enum HandJoint#

Index finger phalanx intermediate joint.

const HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9 enum HandJoint#

Index finger phalanx distal joint.

const HAND_JOINT_INDEX_FINGER_TIP = 10 enum HandJoint#

Index finger tip joint.

const HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11 enum HandJoint#

Middle finger metacarpal joint.

const HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12 enum HandJoint#

Middle finger phalanx proximal joint.

const HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13 enum HandJoint#

Middle finger phalanx intermediate joint.

const HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14 enum HandJoint#

Middle finger phalanx distal joint.

const HAND_JOINT_MIDDLE_FINGER_TIP = 15 enum HandJoint#

Middle finger tip joint.

const HAND_JOINT_RING_FINGER_METACARPAL = 16 enum HandJoint#

Ring finger metacarpal joint.

const HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17 enum HandJoint#

Ring finger phalanx proximal joint.

const HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18 enum HandJoint#

Ring finger phalanx intermediate joint.

const HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19 enum HandJoint#

Ring finger phalanx distal joint.

const HAND_JOINT_RING_FINGER_TIP = 20 enum HandJoint#

Ring finger tip joint.

const HAND_JOINT_PINKY_FINGER_METACARPAL = 21 enum HandJoint#

Pinky finger metacarpal joint.

const HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22 enum HandJoint#

Pinky finger phalanx proximal joint.

const HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23 enum HandJoint#

Pinky finger phalanx intermediate joint.

const HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24 enum HandJoint#

Pinky finger phalanx distal joint.

const HAND_JOINT_PINKY_FINGER_TIP = 25 enum HandJoint#

Pinky finger tip joint.

const HAND_JOINT_MAX = 26 enum HandJoint#

Represents the size of the HandJoint enum.

const HAND_JOINT_FLAG_ORIENTATION_VALID = 1 enum HandJointFlags
Bitfield
#

The hand joint's orientation data is valid.

const HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2 enum HandJointFlags
Bitfield
#

The hand joint's orientation is actively tracked. May not be set if tracking has been temporarily lost.

const HAND_JOINT_FLAG_POSITION_VALID = 4 enum HandJointFlags
Bitfield
#

The hand joint's position data is valid.

const HAND_JOINT_FLAG_POSITION_TRACKED = 8 enum HandJointFlags
Bitfield
#

The hand joint's position is actively tracked. May not be set if tracking has been temporarily lost.

const HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16 enum HandJointFlags
Bitfield
#

The hand joint's linear velocity data is valid.

const HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32 enum HandJointFlags
Bitfield
#

The hand joint's angular velocity data is valid.

Constructors #

Enums #

HandTrackingSource#

enum HandTrackingSource { HAND_TRACKING_SOURCE_UNKNOWN = 0, HAND_TRACKING_SOURCE_UNOBSTRUCTED = 1, HAND_TRACKING_SOURCE_CONTROLLER = 2, HAND_TRACKING_SOURCE_NOT_TRACKED = 3, HAND_TRACKING_SOURCE_MAX = 4, }

HandJoint#

enum HandJoint { HAND_JOINT_PALM = 0, HAND_JOINT_WRIST = 1, HAND_JOINT_THUMB_METACARPAL = 2, HAND_JOINT_THUMB_PHALANX_PROXIMAL = 3, HAND_JOINT_THUMB_PHALANX_DISTAL = 4, HAND_JOINT_THUMB_TIP = 5, HAND_JOINT_INDEX_FINGER_METACARPAL = 6, HAND_JOINT_INDEX_FINGER_PHALANX_PROXIMAL = 7, HAND_JOINT_INDEX_FINGER_PHALANX_INTERMEDIATE = 8, HAND_JOINT_INDEX_FINGER_PHALANX_DISTAL = 9, HAND_JOINT_INDEX_FINGER_TIP = 10, HAND_JOINT_MIDDLE_FINGER_METACARPAL = 11, HAND_JOINT_MIDDLE_FINGER_PHALANX_PROXIMAL = 12, HAND_JOINT_MIDDLE_FINGER_PHALANX_INTERMEDIATE = 13, HAND_JOINT_MIDDLE_FINGER_PHALANX_DISTAL = 14, HAND_JOINT_MIDDLE_FINGER_TIP = 15, HAND_JOINT_RING_FINGER_METACARPAL = 16, HAND_JOINT_RING_FINGER_PHALANX_PROXIMAL = 17, HAND_JOINT_RING_FINGER_PHALANX_INTERMEDIATE = 18, HAND_JOINT_RING_FINGER_PHALANX_DISTAL = 19, HAND_JOINT_RING_FINGER_TIP = 20, HAND_JOINT_PINKY_FINGER_METACARPAL = 21, HAND_JOINT_PINKY_FINGER_PHALANX_PROXIMAL = 22, HAND_JOINT_PINKY_FINGER_PHALANX_INTERMEDIATE = 23, HAND_JOINT_PINKY_FINGER_PHALANX_DISTAL = 24, HAND_JOINT_PINKY_FINGER_TIP = 25, HAND_JOINT_MAX = 26, }

HandJointFlags#

enum HandJointFlags { HAND_JOINT_FLAG_ORIENTATION_VALID = 1, HAND_JOINT_FLAG_ORIENTATION_TRACKED = 2, HAND_JOINT_FLAG_POSITION_VALID = 4, HAND_JOINT_FLAG_POSITION_TRACKED = 8, HAND_JOINT_FLAG_LINEAR_VELOCITY_VALID = 16, HAND_JOINT_FLAG_ANGULAR_VELOCITY_VALID = 32, }

Operators #

Signals #

Theme Items #

Tutorials #