Inheritance #
- AudioServer
- CameraServer
- ClassDB
- DisplayServer
- EditorFileSystemDirectory
- EditorInterface
- EditorPaths
- EditorSelection
- EditorUndoRedoManager
- EditorVCSInterface
- Engine
- EngineDebugger
- FramebufferCacheRD
- GDExtensionManager
- Geometry2D
- Geometry3D
- IP
- Input
- InputMap
- JNISingleton
- JSONRPC
- JavaClassWrapper
- JavaScriptBridge
- MainLoop (1)
- Marshalls
- MovieWriter
- NativeMenu
- NavigationMeshGenerator
- NavigationServer2D
- NavigationServer3D
- Node (21)
- OS
- OpenXRExtensionWrapperExtension
- OpenXRInteractionProfileMetadata
- Performance
- PhysicsDirectBodyState2D (1)
- PhysicsDirectBodyState3D (1)
- PhysicsDirectSpaceState2D (1)
- PhysicsDirectSpaceState3D (1)
- PhysicsServer2D (1)
- PhysicsServer2DManager
- PhysicsServer3D (1)
- PhysicsServer3DManager
- PhysicsServer3DRendering
ServerHandler
- ProjectSettings
- RefCounted (121)
- RenderData (2)
- RenderSceneData (2)
- RenderingDevice
- RenderingServer
- ResourceLoader
- ResourceSaver
- ResourceUID
- ScriptLanguage (1)
- ShaderIncludeDB
- TextServerManager
- ThemeDB
- TileData
- Time
- TranslationServer
- TreeItem
- UndoRedo
- UniformSetCacheRD
- WorkerThreadPool
- XRServer
- XRVRS
- AnimationMixer (2)
- AudioStreamPlayer
- CanvasItem (2)
- CanvasLayer (1)
- EditorFileSystem
- EditorPlugin (1)
- EditorResourcePreview
- HTTPRequest
- InstancePlaceholder
- MissingNode
- MultiplayerSpawner
- MultiplayerSynchronizer
- NavigationAgent2D
- NavigationAgent3D
- Node3D (31)
- ResourcePreloader
- ShaderGlobalsOverride
- StatusIndicator
- Timer
- Viewport (2)
- WorldEnvironment
- AudioListener3D
- AudioStreamPlayer3D
- BoneAttachment3D
- Camera3D (1)
- CollisionObject3D (2)
- CollisionPolygon3D
- CollisionShape3D
- GridMap
- ImporterMeshInstance3D
- Joint3D (5)
- LightmapProbe
- Marker3D
- NavigationLink3D
- NavigationObstacle3D
- NavigationRegion3D
- OpenXRCompositionLayer (3)
- OpenXRHand
- Path3D
- PathFollow3D
- RayCast3D
- RemoteTransform3D
- ShapeCast3D
- Skeleton3D
- SkeletonModifier3D (7)
- SpringArm3D
- SpringBoneCollision3D (3)
- VehicleWheel3D
- VisualInstance3D (13)
- XRFaceModifier3D
- XRNode3D (2)
- XROrigin3D
- LookAtModifier3D
- PhysicalBoneSimulator3D
- RetargetModifier3D
- SkeletonIK3D
- SpringBoneSimulator3D
- XRBodyModifier3D
- XRHandModifier3D
Table of contents
-
var active: bool = true -
var influence: float = 1.0 -
virtual func _process_modification() -> void -
const func get_skeleton() -> Skeleton3D -
const BONE_AXIS_PLUS_X = 0 enum BoneAxis -
const BONE_AXIS_MINUS_X = 1 enum BoneAxis -
const BONE_AXIS_PLUS_Y = 2 enum BoneAxis -
const BONE_AXIS_MINUS_Y = 3 enum BoneAxis -
const BONE_AXIS_PLUS_Z = 4 enum BoneAxis -
const BONE_AXIS_MINUS_Z = 5 enum BoneAxis -
enum BoneAxis -
signal modification_processed()
SkeletonModifier3D #
is_instantiable, Node3D, Node, core, not_builtin_classes
A node that may modify Skeleton3D's bone.
SkeletonModifier3D retrieves a target Skeleton3D by having a Skeleton3D parent.
If there is AnimationMixer, modification always performs after playback process of the AnimationMixer.
This node should be used to implement custom IK solvers, constraints, or skeleton physics.
Members #
var active: bool = true#
If true, the SkeletonModifier3D will be processing.
var influence: float = 1.0#
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.
Methods #
virtual func _process_modification() -> void#
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.
const func get_skeleton() -> Skeleton3D#
Get parent Skeleton3D node if found.
Annotations #
Constants #
const BONE_AXIS_PLUS_X = 0 enum BoneAxis#
Enumerated value for the +X axis.
const BONE_AXIS_MINUS_X = 1 enum BoneAxis#
Enumerated value for the -X axis.
const BONE_AXIS_PLUS_Y = 2 enum BoneAxis#
Enumerated value for the +Y axis.
const BONE_AXIS_MINUS_Y = 3 enum BoneAxis#
Enumerated value for the -Y axis.
const BONE_AXIS_PLUS_Z = 4 enum BoneAxis#
Enumerated value for the +Z axis.
const BONE_AXIS_MINUS_Z = 5 enum BoneAxis#
Enumerated value for the -Z axis.
Constructors #
Enums #
BoneAxis#
enum BoneAxis {
BONE_AXIS_PLUS_X = 0,
BONE_AXIS_MINUS_X = 1,
BONE_AXIS_PLUS_Y = 2,
BONE_AXIS_MINUS_Y = 3,
BONE_AXIS_PLUS_Z = 4,
BONE_AXIS_MINUS_Z = 5,
} Operators #
Signals #
signal 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.