Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

SkeletonModifier3D

Hereda: Node3D < Node < Object

Heredado por: BoneConstraint3D, BoneTwistDisperser3D, IKModifier3D, LimitAngularVelocityModifier3D, 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.


enum BoneDirection: 🔗

BoneDirection BONE_DIRECTION_PLUS_X = 0

Valor enumerado para el eje +X.

BoneDirection BONE_DIRECTION_MINUS_X = 1

Valor enumerado para el eje -X.

BoneDirection BONE_DIRECTION_PLUS_Y = 2

Valor enumerado para el eje +Y.

BoneDirection BONE_DIRECTION_MINUS_Y = 3

Valor enumerado para el eje -Y.

BoneDirection BONE_DIRECTION_PLUS_Z = 4

Valor enumerado para el eje +Z.

BoneDirection BONE_DIRECTION_MINUS_Z = 5

Valor enumerado para el eje -Z.

BoneDirection BONE_DIRECTION_FROM_PARENT = 6

Valor enumerado para el eje desde un hueso padre hasta el hueso hijo.


enum SecondaryDirection: 🔗

SecondaryDirection SECONDARY_DIRECTION_NONE = 0

Enumerated value for the case when the axis is undefined.

SecondaryDirection SECONDARY_DIRECTION_PLUS_X = 1

Valor enumerado para el eje +X.

SecondaryDirection SECONDARY_DIRECTION_MINUS_X = 2

Valor enumerado para el eje -X.

SecondaryDirection SECONDARY_DIRECTION_PLUS_Y = 3

Valor enumerado para el eje +Y.

SecondaryDirection SECONDARY_DIRECTION_MINUS_Y = 4

Valor enumerado para el eje -Y.

SecondaryDirection SECONDARY_DIRECTION_PLUS_Z = 5

Valor enumerado para el eje +Z.

SecondaryDirection SECONDARY_DIRECTION_MINUS_Z = 6

Valor enumerado para el eje -Z.

SecondaryDirection SECONDARY_DIRECTION_CUSTOM = 7

Enumerated value for an optional axis.


enum RotationAxis: 🔗

RotationAxis ROTATION_AXIS_X = 0

Valor enumerado para la rotación del eje X.

RotationAxis ROTATION_AXIS_Y = 1

Valor enumerado para la rotación del eje Y.

RotationAxis ROTATION_AXIS_Z = 2

Valor enumerado para la rotación del eje Z.

RotationAxis ROTATION_AXIS_ALL = 3

Valor enumerado para la rotación sin restricciones.

RotationAxis ROTATION_AXIS_CUSTOM = 4

Enumerated value for an optional rotation axis.


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 🔗

Override this virtual method to implement a custom skeleton modifier. You should do things like get the Skeleton3D's current pose and apply the pose here.

_process_modification_with_delta() must not apply influence to bone poses because the Skeleton3D automatically applies influence to all bone poses set by the modifier.

delta is passed from parent Skeleton3D. See also Skeleton3D.advance().

Note: This method may be called outside Node._process() and Node._physics_process() with delta is 0.0, since the modification should be processed immediately after initialization of the Skeleton3D.


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 🔗

Called when bone names and indices need to be validated, such as when entering the scene tree or changing skeleton.


Skeleton3D get_skeleton() const 🔗

Returns the parent Skeleton3D node if it exists. Otherwise, returns null.