Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SkeletonModification2D

Inherits: Resource < RefCounted < Object

Inherited By: SkeletonModification2DCCDIK, SkeletonModification2DFABRIK, SkeletonModification2DJiggle, SkeletonModification2DLookAt, SkeletonModification2DPhysicalBones, SkeletonModification2DStackHolder, SkeletonModification2DTwoBoneIK

Base class for resources that operate on Bone2Ds in a Skeleton2D.

Description

This resource provides an interface that can be expanded so code that operates on Bone2D nodes in a Skeleton2D can be mixed and matched together to create complex interactions.

This is used to provide Godot with a flexible and powerful Inverse Kinematics solution that can be adapted for many different uses.

Properties

bool

enabled

true

int

execution_mode

0

Methods

void

_draw_editor_gizmo ( ) virtual

void

_execute ( float delta ) virtual

void

_setup_modification ( SkeletonModificationStack2D modification_stack ) virtual

float

clamp_angle ( float angle, float min, float max, bool invert )

bool

get_editor_draw_gizmo ( ) const

bool

get_is_setup ( ) const

SkeletonModificationStack2D

get_modification_stack ( )

void

set_editor_draw_gizmo ( bool draw_gizmo )

void

set_is_setup ( bool is_setup )


Property Descriptions

bool enabled = true

  • void set_enabled ( bool value )

  • bool get_enabled ( )

If true, the modification's _execute function will be called by the SkeletonModificationStack2D.


int execution_mode = 0

  • void set_execution_mode ( int value )

  • int get_execution_mode ( )

The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only available in certain execution modes.


Method Descriptions

void _draw_editor_gizmo ( ) virtual

Used for drawing editor-only modification gizmos. This function will only be called in the Godot editor and can be overridden to draw custom gizmos.

Note: You will need to use the Skeleton2D from SkeletonModificationStack2D.get_skeleton and it's draw functions, as the SkeletonModification2D resource cannot draw on its own.


void _execute ( float delta ) virtual

Executes the given modification. This is where the modification performs whatever function it is designed to do.


void _setup_modification ( SkeletonModificationStack2D modification_stack ) virtual

Called when the modification is setup. This is where the modification performs initialization.


float clamp_angle ( float angle, float min, float max, bool invert )

Takes an angle and clamps it so it is within the passed-in min and max range. invert will inversely clamp the angle, clamping it to the range outside of the given bounds.