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

Eredita: Node3D < Node < Object

Ereditato da: BoneConstraint3D, BoneTwistDisperser3D, IKModifier3D, LimitAngularVelocityModifier3D, LookAtModifier3D, ModifierBoneTarget3D, PhysicalBoneSimulator3D, RetargetModifier3D, SkeletonIK3D, SpringBoneSimulator3D, XRBodyModifier3D, XRHandModifier3D

Un nodo che potrebbe modificare le ossa di uno Skeleton3D.

Descrizione

SkeletonModifier3D recupera uno Skeleton3D di destinazione avendo un Skeleton3D genitore.

Se un AnimationMixer è presente, la modificazione è sempre eseguita dopo il processo di riproduzione dell'AnimationMixer.

Questo nodo si dovrebbe utilizzare per implementare risolutori IK personalizzati, vincoli o fisica per lo scheletro.

Tutorial

Proprietà

bool

active

true

float

influence

1.0

Metodi

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


Segnali

modification_processed() 🔗

Notifica quando la modificazione è stata completata.

Nota: Se vuoi ottenere la posa dell'osso modificata dal modificatore, devi usare Skeleton3D.get_bone_pose() o Skeleton3D.get_bone_global_pose() nel momento in cui viene attivato questo segnale.


Enumerazioni

enum BoneAxis: 🔗

BoneAxis BONE_AXIS_PLUS_X = 0

Valore enumerato per l'asse +X.

BoneAxis BONE_AXIS_MINUS_X = 1

Valore enumerato per l'asse -X.

BoneAxis BONE_AXIS_PLUS_Y = 2

Valore enumerato per l'asse +Y.

BoneAxis BONE_AXIS_MINUS_Y = 3

Valore enumerato per l'asse -Y.

BoneAxis BONE_AXIS_PLUS_Z = 4

Valore enumerato per l'asse +Z.

BoneAxis BONE_AXIS_MINUS_Z = 5

Valore enumerato per l'asse -X.


enum BoneDirection: 🔗

BoneDirection BONE_DIRECTION_PLUS_X = 0

Valore enumerato per l'asse +X.

BoneDirection BONE_DIRECTION_MINUS_X = 1

Valore enumerato per l'asse -X.

BoneDirection BONE_DIRECTION_PLUS_Y = 2

Valore enumerato per l'asse +Y.

BoneDirection BONE_DIRECTION_MINUS_Y = 3

Valore enumerato per l'asse -Y.

BoneDirection BONE_DIRECTION_PLUS_Z = 4

Valore enumerato per l'asse +Z.

BoneDirection BONE_DIRECTION_MINUS_Z = 5

Valore enumerato per l'asse -X.

BoneDirection BONE_DIRECTION_FROM_PARENT = 6

Valore enumerato per l'asse da un osso padre all'osso figlio.


enum SecondaryDirection: 🔗

SecondaryDirection SECONDARY_DIRECTION_NONE = 0

Enumerated value for the case when the axis is undefined.

SecondaryDirection SECONDARY_DIRECTION_PLUS_X = 1

Valore enumerato per l'asse +X.

SecondaryDirection SECONDARY_DIRECTION_MINUS_X = 2

Valore enumerato per l'asse -X.

SecondaryDirection SECONDARY_DIRECTION_PLUS_Y = 3

Valore enumerato per l'asse +Y.

SecondaryDirection SECONDARY_DIRECTION_MINUS_Y = 4

Valore enumerato per l'asse -Y.

SecondaryDirection SECONDARY_DIRECTION_PLUS_Z = 5

Valore enumerato per l'asse +Z.

SecondaryDirection SECONDARY_DIRECTION_MINUS_Z = 6

Valore enumerato per l'asse -X.

SecondaryDirection SECONDARY_DIRECTION_CUSTOM = 7

Enumerated value for an optional axis.


enum RotationAxis: 🔗

RotationAxis ROTATION_AXIS_X = 0

Valore enumerato per la rotazione dell'asse X.

RotationAxis ROTATION_AXIS_Y = 1

Valore enumerato per la rotazione dell'asse Y.

RotationAxis ROTATION_AXIS_Z = 2

Valore enumerato per la rotazione dell'asse Z.

RotationAxis ROTATION_AXIS_ALL = 3

Valore enumerato per la rotazione senza vincoli.

RotationAxis ROTATION_AXIS_CUSTOM = 4

Enumerated value for an optional rotation axis.


Descrizioni delle proprietà

bool active = true 🔗

  • void set_active(value: bool)

  • bool is_active()

Se true, il SkeletonModifier3D sarà elaborato.


float influence = 1.0 🔗

  • void set_influence(value: float)

  • float get_influence()

Imposta l'influenza della modificazione.

Nota: Questo valore viene utilizzato da Skeleton3D per la fusione, quindi uno SkeletonModifier3D dovrebbe sempre applicare solo il 100% del risultato senza interpolazione.


Descrizioni dei metodi

void _process_modification() virtual 🔗

Deprecato: Use _process_modification_with_delta() instead.

Sostituisci questo metodo virtuale per implementare un modificatore scheletro personalizzato. Dovresti fare cose come ottenere la posa attuale di Skeleton3D e applicare la posa qui.

_process_modification() non deve applicare influence alle pose delle ossa perché Skeleton3D applica automaticamente l'influenza a tutte le pose delle ossa impostate dal modificatore.


void _process_modification_with_delta(delta: float) virtual 🔗

Sostituisci questo metodo virtuale per implementare un modificatore personalizzato di scheletro. Dovresti fare cose come ottenere la posa attuale dello Skeleton3D e applicare la posa qui.

_process_modification_with_delta() non deve applicare influence alle pose delle ossa perché lo Skeleton3D applica automaticamente l'influenza a tutte le pose delle ossa impostate dal modificatore.

delta viene passato dallo Skeleton3D genitore. Vedi anche Skeleton3D.advance().

Nota: È possibile chiamare questo metodo fuori da Node._process() e Node._physics_process() con delta pari a 0.0, poiché la modificazione si dovrebbe elaborare subito dopo l'inizializzazione dello Skeleton3D.


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

Emesso quando lo scheletro è cambiato.


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.