OpenXRHand

Obsoleto: Use XRHandModifier3D instead.

Hereda: Node3D < Node < Object

Nodo que soporta el seguimiento de manos y dedos en OpenXR.

Descripción

Este nodo habilita la funcionalidad de seguimiento de manos de OpenXR. El nodo debe ser un nodo hijo de un nodo XROrigin3D, el seguimiento actualizará su posición a la ubicación de la articulación de la palma de la mano rastreada del jugador (el centro del hueso metacarpiano del dedo medio). Este nodo también actualiza el esqueleto de un modelo de mano o avatar correctamente skinneado.

Si el esqueleto es una mano (uno de los huesos de la mano es el nodo raíz del esqueleto), entonces el esqueleto se colocará en relación con la ubicación de la palma de la mano y la malla de la mano y el esqueleto deben ser hijos del nodo OpenXRHand.

Si los huesos de la mano son parte de un esqueleto completo, entonces la raíz de la mano mantendrá su ubicación con la suposición de que se usa IK para posicionar la mano y el brazo.

Por defecto, los huesos de la mano del esqueleto se reposicionan para que coincidan con el tamaño de la mano rastreada. Para preservar los tamaños de los huesos modelados, cambia bone_update para aplicar solo la rotación.

Propiedades

BoneUpdate

bone_update

0

Hands

hand

0

NodePath

hand_skeleton

NodePath("")

MotionRange

motion_range

0

SkeletonRig

skeleton_rig

0


Enumeraciones

enum Hands: 🔗

Hands HAND_LEFT = 0

Rastrea la mano izquierda del jugador.

Hands HAND_RIGHT = 1

Rastrea la mano derecha del jugador.

Hands HAND_MAX = 2

Máximo de manos admitidas.


enum MotionRange: 🔗

MotionRange MOTION_RANGE_UNOBSTRUCTED = 0

Cuando el jugador agarra, el esqueleto de la mano formará un puño completo.

MotionRange MOTION_RANGE_CONFORM_TO_CONTROLLER = 1

Cuando el jugador agarra, el esqueleto de la mano se adapta al controlador que está sujetando el jugador.

MotionRange MOTION_RANGE_MAX = 2

Rangos de movimiento máximos admitidos.


enum SkeletonRig: 🔗

SkeletonRig SKELETON_RIG_OPENXR = 0

Un esqueleto compatible con OpenXR.

SkeletonRig SKELETON_RIG_HUMANOID = 1

Un esqueleto compatible con SkeletonProfileHumanoid.

SkeletonRig SKELETON_RIG_MAX = 2

Máximo de manos admitidas.


enum BoneUpdate: 🔗

BoneUpdate BONE_UPDATE_FULL = 0

Los huesos del esqueleto se actualizan por completo (tanto la posición como la rotación) para que coincidan con los huesos rastreados.

BoneUpdate BONE_UPDATE_ROTATION_ONLY = 1

Los huesos del esqueleto solo se rotan para alinearse con los huesos rastreados, preservando la longitud de los huesos.

BoneUpdate BONE_UPDATE_MAX = 2

Modo de actualización de hueso máximo admitido.


Descripciones de Propiedades

BoneUpdate bone_update = 0 🔗

Especifica el tipo de actualizaciones que se realizarán en el hueso.


Hands hand = 0 🔗

Especifica si este nodo rastrea la mano izquierda o derecha del jugador.


NodePath hand_skeleton = NodePath("") 🔗

Establece un nodo Skeleton3D para el cual se actualizarán las posiciones de la pose.


MotionRange motion_range = 0 🔗

Establece el rango de movimiento (si es compatible) limitando el movimiento de la mano.


SkeletonRig skeleton_rig = 0 🔗

Establece el tipo de rig de esqueleto con el que hand_skeleton es compatible.