SkeletonModifier3D

package
v0.0.0-...-357ca8a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2025 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

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.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Advanced

type Advanced = class

Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.

type Any

type Any interface {
	gd.IsClass
	AsSkeletonModifier3D() Instance
}

type BoneAxis

type BoneAxis int //gd:SkeletonModifier3D.BoneAxis
const (
	// Enumerated value for the +X axis.
	BoneAxisPlusX BoneAxis = 0
	// Enumerated value for the -X axis.
	BoneAxisMinusX BoneAxis = 1
	// Enumerated value for the +Y axis.
	BoneAxisPlusY BoneAxis = 2
	// Enumerated value for the -Y axis.
	BoneAxisMinusY BoneAxis = 3
	// Enumerated value for the +Z axis.
	BoneAxisPlusZ BoneAxis = 4
	// Enumerated value for the -Z axis.
	BoneAxisMinusZ BoneAxis = 5
)

type Extension

type Extension[T gdclass.Interface] struct{ gdclass.Extension[T, Instance] }

Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this [Extension]See Interface for methods that can be overridden by T.

func (*Extension[T]) AsNode

func (self *Extension[T]) AsNode() Node.Instance

func (*Extension[T]) AsNode3D

func (self *Extension[T]) AsNode3D() Node3D.Instance

func (*Extension[T]) AsObject

func (self *Extension[T]) AsObject() [1]gd.Object

func (*Extension[T]) AsSkeletonModifier3D

func (self *Extension[T]) AsSkeletonModifier3D() Instance

type ID

type ID Object.ID

ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.

func (ID) Instance

func (id ID) Instance() (Instance, bool)

type Implementation

type Implementation = implementation

Implementation implements Interface with empty methods.

type Instance

type Instance [1]gdclass.SkeletonModifier3D

Instance of the class with convieniently typed arguments and results.

var Nil Instance

Nil is a nil/null instance of the class. Equivalent to the zero value.

func New

func New() Instance

func (Instance) Active

func (self Instance) Active() bool

If true, the SkeletonModifier3D will be processing.

func (Instance) AsNode

func (self Instance) AsNode() Node.Instance

func (Instance) AsNode3D

func (self Instance) AsNode3D() Node3D.Instance

func (Instance) AsObject

func (self Instance) AsObject() [1]gd.Object

func (Instance) AsSkeletonModifier3D

func (self Instance) AsSkeletonModifier3D() Instance

func (Instance) GetSkeleton

func (self Instance) GetSkeleton() Skeleton3D.Instance

Get parent Skeleton3D node if found.

func (Instance) ID

func (self Instance) ID() ID

func (Instance) Influence

func (self Instance) Influence() Float.X

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.

func (Instance) OnModificationProcessed

func (self Instance) OnModificationProcessed(cb func(), flags ...Signal.Flags)

Notifies when the modification have been finished.

Note: If you want to get the modified bone pose by the modifier, you must use Skeleton3D.GetBonePose or Skeleton3D.GetBoneGlobalPose at the moment this signal is fired.

func (Instance) SetActive

func (self Instance) SetActive(value bool)

SetActive sets the property returned by [IsActive].

func (Instance) SetInfluence

func (self Instance) SetInfluence(value Float.X)

SetInfluence sets the property returned by [GetInfluence].

func (*Instance) SetObject

func (self *Instance) SetObject(obj [1]gd.Object) bool

func (Instance) Virtual

func (self Instance) Virtual(name string) reflect.Value

type Interface

type Interface interface {
	// 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.
	//
	// [ProcessModificationWithDelta] 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].
	//
	// [Influence]: https://pkg.go.dev/graphics.gd/classdb/SkeletonModifier3D#Instance.Influence
	// [ProcessModificationWithDelta]: https://pkg.go.dev/graphics.gd/classdb/SkeletonModifier3D#Interface
	// [Skeleton3D]: https://pkg.go.dev/graphics.gd/classdb/Skeleton3D
	// [Skeleton3D.Advance]: https://pkg.go.dev/graphics.gd/classdb/Skeleton3D#Instance.Advance
	ProcessModificationWithDelta(delta Float.X)
	// 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.
	//
	// [ProcessModification] must not apply [Influence] to bone poses because the [Skeleton3D] automatically applies influence to all bone poses set by the modifier.
	//
	// [Influence]: https://pkg.go.dev/graphics.gd/classdb/SkeletonModifier3D#Instance.Influence
	// [ProcessModification]: https://pkg.go.dev/graphics.gd/classdb/SkeletonModifier3D#Interface
	// [Skeleton3D]: https://pkg.go.dev/graphics.gd/classdb/Skeleton3D
	ProcessModification()
	// Called when the skeleton is changed.
	SkeletonChanged(old_skeleton Skeleton3D.Instance, new_skeleton Skeleton3D.Instance)
	// Called when bone name and index need to be validated such as the timing of the entering tree or changing skeleton.
	ValidateBoneNames()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL