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
|
||
|
||
|
||
|
||
|
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 🔗
void set_bone_update(value: BoneUpdate)
BoneUpdate get_bone_update()
Especifica el tipo de actualizaciones que se realizarán en el hueso.
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 🔗
void set_motion_range(value: MotionRange)
MotionRange get_motion_range()
Establece el rango de movimiento (si es compatible) limitando el movimiento de la mano.
SkeletonRig skeleton_rig = 0 🔗
void set_skeleton_rig(value: SkeletonRig)
SkeletonRig get_skeleton_rig()
Establece el tipo de rig de esqueleto con el que hand_skeleton es compatible.