SkeletonModifier3D

Eredita: Node3D < Node < Object

Ereditato da: BoneConstraint3D, 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.


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().


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

Emesso quando lo scheletro è cambiato.


void _validate_bone_names() virtual 🔗

Chiamato quando è necessario convalidare il nome e l'indice dell'osso, ad esempio nel momento in cui si entra nell'albero o lo scheletro cambia.


Skeleton3D get_skeleton() const 🔗

Ottiene il nodo Skeleton3D genitore se trovato.