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 ¶
- type Advanced
- type Any
- type BoneAxis
- type Extension
- type ID
- type Implementation
- type Instance
- func (self Instance) Active() bool
- func (self Instance) AsNode() Node.Instance
- func (self Instance) AsNode3D() Node3D.Instance
- func (self Instance) AsObject() [1]gd.Object
- func (self Instance) AsSkeletonModifier3D() Instance
- func (self Instance) GetSkeleton() Skeleton3D.Instance
- func (self Instance) ID() ID
- func (self Instance) Influence() Float.X
- func (self Instance) OnModificationProcessed(cb func(), flags ...Signal.Flags)
- func (self Instance) SetActive(value bool)
- func (self Instance) SetInfluence(value Float.X)
- func (self *Instance) SetObject(obj [1]gd.Object) bool
- func (self Instance) Virtual(name string) reflect.Value
- type Interface
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 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 ¶
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]) AsSkeletonModifier3D ¶
type 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.
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 (Instance) Active ¶
If true, the SkeletonModifier3D will be processing.
func (Instance) AsSkeletonModifier3D ¶
func (Instance) GetSkeleton ¶
func (self Instance) GetSkeleton() Skeleton3D.Instance
Get parent Skeleton3D node if found.
func (Instance) 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.
func (Instance) OnModificationProcessed ¶
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) SetInfluence ¶
SetInfluence sets the property returned by [GetInfluence].
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() }