SkeletonModifier3D

Hereda: Node3D < Node < Object

Heredado por: BoneConstraint3D, LookAtModifier3D, ModifierBoneTarget3D, PhysicalBoneSimulator3D, RetargetModifier3D, SkeletonIK3D, SpringBoneSimulator3D, XRBodyModifier3D, XRHandModifier3D

Un nodo que puede modificar los huesos de un Skeleton3D.

Descripción

SkeletonModifier3D recupera un Skeleton3D objetivo al tener un padre Skeleton3D.

Si hay un AnimationMixer, una modificación siempre se realiza después del proceso de reproducción del AnimationMixer.

Este nodo debe utilizarse para implementar solucionadores IK personalizados, restricciones o física de esqueletos.

Tutoriales

Propiedades

bool

active

true

float

influence

1.0

Métodos

void

_process_modification() virtual

void

_process_modification_with_delta(delta: float) virtual

void

_skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual

void

_validate_bone_names() virtual

Skeleton3D

get_skeleton() const


Señales

modification_processed() 🔗

Notifica cuando la modificación ha terminado.

Nota: Si quieres obtener la pose del hueso modificada por el modificador, debes usar Skeleton3D.get_bone_pose() o Skeleton3D.get_bone_global_pose() en el momento en que esta señal es emitida.


Enumeraciones

enum BoneAxis: 🔗

BoneAxis BONE_AXIS_PLUS_X = 0

Valor enumerado para el eje +X.

BoneAxis BONE_AXIS_MINUS_X = 1

Valor enumerado para el eje -X.

BoneAxis BONE_AXIS_PLUS_Y = 2

Valor enumerado para el eje +Y.

BoneAxis BONE_AXIS_MINUS_Y = 3

Valor enumerado para el eje -Y.

BoneAxis BONE_AXIS_PLUS_Z = 4

Valor enumerado para el eje +Z.

BoneAxis BONE_AXIS_MINUS_Z = 5

Valor enumerado para el eje -Z.


Descripciones de Propiedades

bool active = true 🔗

  • void set_active(value: bool)

  • bool is_active()

Si es true, el SkeletonModifier3D se procesará.


float influence = 1.0 🔗

  • void set_influence(value: float)

  • float get_influence()

Establece la influencia de la modificación.

Nota: Este valor es usado por Skeleton3D para mezclar, así que el SkeletonModifier3D siempre debería aplicar solo el 100% del resultado sin interpolación.


Descripciones de Métodos

void _process_modification() virtual 🔗

Obsoleto: Use _process_modification_with_delta() instead.

Sobrescribe este método virtual para implementar un modificador de esqueleto personalizado. Deberías hacer cosas como obtener la pose actual del Skeleton3D y aplicar la pose aquí.

_process_modification() no debe aplicar influence a las poses de los huesos porque el Skeleton3D aplica automáticamente la influencia a todas las poses de los huesos establecidas por el modificador.


void _process_modification_with_delta(delta: float) virtual 🔗

Sobrescribe este método virtual para implementar un modificador de esqueleto personalizado. Deberías hacer cosas como obtener la pose actual del Skeleton3D y aplicar la pose aquí.

_process_modification_with_delta() no debe aplicar influence a las poses de los huesos porque el Skeleton3D aplica automáticamente la influencia a todas las poses de los huesos establecidas por el modificador.

delta se pasa desde el Skeleton3D padre. Véase también Skeleton3D.advance().


void _skeleton_changed(old_skeleton: Skeleton3D, new_skeleton: Skeleton3D) virtual 🔗

Se llama a este método cuando el esqueleto cambia.


void _validate_bone_names() virtual 🔗

Se llama a este método cuando el nombre y el índice del hueso necesitan ser validados, como el momento de entrar en el árbol o cambiar el esqueleto.


Skeleton3D get_skeleton() const 🔗

Obtiene el nodo padre Skeleton3D si se encuentra.