Animation — Aspose.3D FOSS for Python API Reference

Methods

Das Aspose.3D-Animationssystem ist um eine Hierarchie von Objekten organisiert, die zeitlich abgetastete Daten an Szeneneigenschaften binden.

  • Methods AnimationClip ist ein benannter Wiedergabebereich (z. B. “Walk”, “Run”) gehalten von einem Scene.
  • Methods AnimationNode befindet sich innerhalb eines Clips und bindet animierte Daten an bestimmte Eigenschaften von Szenenobjekten.
  • Ein BindPoint verbindet ein AnimationNode zu einem benannten Property auf einem A3DObject.
  • Methods AnimationChannel enthält einen einzelnen Skalar KeyframeSequence innerhalb eines Bindungspunkts.
  • A KeyframeSequence ist eine geordnete Liste von KeyFrame Zeit‑Wert‑Proben.

Alle Animationsklassen befinden sich im aspose.threed.animation Unterpaket, obwohl sie auch direkt von aspose.threed.

from aspose.threed.animation import (
    AnimationClip,
    AnimationNode,
    AnimationChannel,
    BindPoint,
    KeyFrame,
    KeyframeSequence,
    Interpolation,
    ExtrapolationType,
)

AnimationClip

Ein benannter Container für einen Wiedergabebereich. Ein Scene kann mehrere Clips enthalten. Erbt von SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Erstellt einen Clip mit einem optionalen Namen

Methods

MethodsMethodsMethods
namestrClip-Name (z. B. "Walk")
descriptionstrOptionale Beschreibung
startfloatStartzeit in Sekunden
stopfloatEndzeit in Sekunden
animationslist[AnimationNode]Schreibgeschützte Liste von Animationsknoten in diesem Clip
propertiesPropertyCollectionBenutzerdefinierte Eigenschaften

Methods

MethodsRückgabetypMethods
create_animation_node(node_name)AnimationNodeErstellt und registriert ein neues AnimationNode in diesem Clip

AnimationNode

Bindet ein AnimationClip an ein oder mehrere BindPoint Objekte, die scene-object properties anvisieren. Erbt von A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Erstellt einen Animationsknoten mit optionalem Namen

Methods

MethodsMethodsMethods
namestrKnotenname
bind_pointslist[BindPoint]Schreibgeschützte Liste von Bindepunkten
sub_animationslist[AnimationNode]Schreibgeschützte Liste von untergeordneten Animationsknoten
propertiesPropertyCollectionBenutzerdefinierte Eigenschaften

Methods

MethodsRückgabetypMethods
find_bind_point(target, name)`BindPointNone`
get_bind_point(target, prop_name, create)`BindPointNone`
create_bind_point(obj, prop_name)`BindPointNone`
get_keyframe_sequence(target, prop_name, channel_name, create)`KeyframeSequenceNone`

BindPoint

Verbindet ein AnimationNode zu einem einzelnen Property auf einem A3DObject. Jeder BindPoint kann mehrere AnimationChannel Objekte (ein pro Skalar-Komponente). Erbt von A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyDie Szenenobjekt-Eigenschaft, die dieser Bindungspunkt anspricht
channels_countintAnzahl der Animationskanäle in diesem Bindungspunkt

Methods

MethodsRückgabetypMethods
add_channel(name, value, type=None)boolFügt einen benannten Kanal mit einem Standardwert hinzu
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceErstellt ein neues KeyframeSequence für diesen Bindepunkt
bind_keyframe_sequence(channel_name, sequence)NoneVerknüpft ein vorhandenes KeyframeSequence mit einem Kanal
reset_channels()NoneEntfernt alle Kanäle

AnimationChannel

Enthält einen einzelnen Skalar KeyframeSequence für eine animierte Komponente.

Methods

MethodsMethodsMethods
namestrKanalname (z. B. "X", "Y", "Z")
default_valueAnyWert, der verwendet wird, wenn keine Keyframe-Daten vorhanden sind
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Eine geordnete Liste von KeyFrame Samples für einen einzelnen Skalar-Kanal. Erbt von A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Erstellt eine leere Keyframe‑Sequenz

Methods

MethodsMethodsMethods
namestrSequenzname
key_frameslist[KeyFrame]Schreibgeschützte Liste von Keyframes in chronologischer Reihenfolge
pre_behaviorExtrapolationVerhalten vor dem ersten Keyframe
post_behaviorExtrapolationVerhalten nach dem letzten Keyframe
bind_point`BindPointNone`

Methods

MethodsRückgabetypMethods
add(time, value, interpolation=Interpolation.LINEAR)NoneFügt einen Keyframe an time (Sekunden) mit dem angegebenen value und interpolation Modus
reset()NoneLöscht alle Keyframes und setzt das Vor-/Nachverhalten zurück

KeyFrame

Ein einzelner Zeit‑Wert‑Sample in einem KeyframeSequence.

Methods

KeyFrame Objekte werden intern von KeyframeSequence.add(); nicht direkt konstruieren.

Methods

MethodsMethodsMethods
timefloatZeitposition in Sekunden
valuefloatAnimierter Wert zu diesem Zeitpunkt
interpolationInterpolationInterpolationsmodus, der zwischen diesem Keyframe und dem nächsten angewendet wird
tangent_weight_modeWeightedModeTangenten‑Gewichtmodus (Bezier‑Kurven)
step_modeStepModeSchrittverhalten (PREVIOUS_VALUE oder NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatAusgehendes Tangentengewicht
next_in_weightfloatEingehendes Tangenten-Gewicht
tensionfloatSpannungsparameter (TCB-Spline)
continuityfloatKontinuitätsparameter (TCB-Spline)
biasfloatBias-Parameter (TCB-Spline)
independent_tangentboolMethods True, Ein- und Ausgangstangenten sind unabhängig
flatboolMethods True, Tangenten sind flach abgeklammert
time_independent_tangentboolMethods True, Tangentenrichtung ist unabhängig von der Zeitskalierung

Methods

Steuert, wie Werte zwischen aufeinanderfolgenden Schlüsselbildern interpoliert werden.

MethodsMethods
CONSTANTMethods
LINEARLineare Interpolation zwischen Werten
BEZIERKubischer Bezier mit Ein-/Aus‑Tangenten
B_SPLINEUniforme B‑Spline
CARDINAL_SPLINECardinal‑Spline
TCB_SPLINETension–Continuity–Bias‑Spline

Methods

Steuert das Animationsverhalten jenseits des ersten und letzten Schlüsselbildes.

MethodsMethods
CONSTANTDen Randwert halten
GRADIENTExtrapolieren am Tangentengradienten des Rand‑Keyframes
CYCLEDen Keyframe‑Bereich wiederholen (Schleifen)
CYCLE_RELATIVEWiederholen mit kumulativem Versatz (relativ zum Endwert)
OSCILLATEPing-Pong (alternierendes Vorwärts‑ und Rückwärts‑Wiederholen)

Methods

from aspose.threed import Scene
from aspose.threed.animation import AnimationClip, Interpolation
from aspose.threed.utilities import Vector3

scene = Scene()
node = scene.root_node.create_child_node("animated_box")
node.transform.translation = Vector3(0.0, 0.0, 0.0)

# Create an animation clip
clip = AnimationClip("Move")
clip.start = 0.0
clip.stop  = 2.0

# Create an animation node inside the clip
anim_node = clip.create_animation_node("box_anim")

# Get keyframe sequences for the X and Y translation channels
seq_x = anim_node.get_keyframe_sequence(node.transform, "Translation", "X", True)
seq_y = anim_node.get_keyframe_sequence(node.transform, "Translation", "Y", True)

if seq_x:
    seq_x.add(0.0,  0.0,  Interpolation.LINEAR)
    seq_x.add(1.0, 10.0,  Interpolation.LINEAR)
    seq_x.add(2.0,  0.0,  Interpolation.LINEAR)

if seq_y:
    seq_y.add(0.0,  0.0, Interpolation.BEZIER)
    seq_y.add(1.0,  5.0, Interpolation.BEZIER)
    seq_y.add(2.0,  0.0, Interpolation.BEZIER)

# Export to FBX to preserve animation data
scene.save("animated.fbx")

Siehe auch

 Deutsch