Skip to main content

SkeletonModifier3D

Inherits: Node3D < Node < Object

Inherited By: BoneConstraint3D, LookAtModifier3D, ModifierBoneTarget3D, PhysicalBoneSimulator3D, RetargetModifier3D, SkeletonIK3D, SpringBoneSimulator3D, XRBodyModifier3D, XRHandModifier3D

A node that may modify a Skeleton3D's bones.

Description

SkeletonModifier3D retrieves a target Skeleton3D by having a Skeleton3D parent.

If there is an AnimationMixer, a modification always performs after playback process of the AnimationMixer.

This node should be used to implement custom IK solvers, constraints, or skeleton physics.

Tutorials

Properties

boolactivetrue
floatinfluence1.0

Methods

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
Skeleton3Dget_skeleton\ (\ ) const

Signals

modification_processed\ (\ ) 🔗

Notifies when the modification have been finished.

\ Note: If you want to get the modified bone pose by the modifier, you must use Skeleton3D.get_bone_pose() or Skeleton3D.get_bone_global_pose() at the moment this signal is fired.


Enumerations

enum BoneAxis: 🔗

BoneAxis BONE_AXIS_PLUS_X = 0

Enumerated value for the +X axis.

BoneAxis BONE_AXIS_MINUS_X = 1

Enumerated value for the -X axis.

BoneAxis BONE_AXIS_PLUS_Y = 2

Enumerated value for the +Y axis.

BoneAxis BONE_AXIS_MINUS_Y = 3

Enumerated value for the -Y axis.

BoneAxis BONE_AXIS_PLUS_Z = 4

Enumerated value for the +Z axis.

BoneAxis BONE_AXIS_MINUS_Z = 5

Enumerated value for the -Z axis.


Property Descriptions

bool active = true 🔗

  • void set_active\ (\ value: bool\ )
  • bool is_active\ (\ )

If true, the SkeletonModifier3D will be processing.


float influence = 1.0 🔗

  • void set_influence\ (\ value: float\ )
  • float get_influence\ (\ )

Sets the influence of the modification.

\ Note: This value is used by Skeleton3D to blend, so the SkeletonModifier3D should always apply only 100% of the result without interpolation.


Method Descriptions

void _process_modification\ (\ ) virtual 🔗

Deprecated: Use _process_modification_with_delta() instead.

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() must not apply influence to bone poses because the Skeleton3D automatically applies influence to all bone poses set by the modifier.


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


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

Called when the skeleton is changed.


void _validate_bone_names\ (\ ) virtual 🔗

Called when bone name and index need to be validated such as the timing of the entering tree or changing skeleton.


Skeleton3D get_skeleton\ (\ ) const 🔗

Get parent Skeleton3D node if found.