Animation — Aspose.3D FOSS for Python API Reference

Methods

El sistema d’animació Aspose.3D està organitzat al voltant d’una jerarquia d’objectes que enllacen dades mostrejades en el temps amb les propietats de l’escena.

  • Methods AnimationClip és un interval de reproducció amb nom (p. ex. “Walk”, “Run”) mantingut per un Scene.
  • Methods AnimationNode viu dins d’un clip i vincula dades animades a propietats específiques dels objectes de l’escena.
  • A BindPoint connecta un AnimationNode a un anomenat Property sobre un A3DObject.
  • Methods AnimationChannel conté un únic escalar KeyframeSequence dins d’un punt de vinculació.
  • A KeyframeSequence és una llista ordenada de KeyFrame mostres de temps–valor.

Totes les classes d’animació es troben al aspose.threed.animation subpaquet, tot i que també són accessibles directament des de aspose.threed.

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

AnimationClip

Un contenidor amb nom per a un interval de reproducció. Un Scene pot contenir diversos clips. Hereta de SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Crea un clip amb un nom opcional

Methods

MethodsMethodsMethods
namestrNom del clip (p. ex. "Walk")
descriptionstrDescripció opcional
startfloatTemps d’inici en segons
stopfloatTemps de finalització en segons
animationslist[AnimationNode]Llista només de lectura de nodes d’animació en aquest clip
propertiesPropertyCollectionPropietats personalitzades

Methods

MethodsTipus de retornMethods
create_animation_node(node_name)AnimationNodeCrea i registra un nou AnimationNode en aquest clip

AnimationNode

Vincula un AnimationClip a un o més BindPoint objectes que apunten a les propietats de scene-object. Hereta de A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Crea un node d’animació amb un nom opcional

Methods

MethodsMethodsMethods
namestrNom del node
bind_pointslist[BindPoint]Llista de només lectura dels punts d’enllaç
sub_animationslist[AnimationNode]Llista de només lectura dels nodes d’animació fills
propertiesPropertyCollectionPropietats personalitzades

Methods

MethodsTipus de retornMethods
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

Connecta un AnimationNode a un únic Property a un A3DObject. Cada BindPoint pot contenir diversos AnimationChannel objectes (un per component escalar). Hereta de A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyLa propietat d’objecte d’escena a la qual apunta aquest punt d’enllaç
channels_countintNombre de canals d’animació en aquest punt d’enllaç

Methods

MethodsTipus de retornMethods
add_channel(name, value, type=None)boolAfegeix un canal anomenat amb un valor per defecte
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceCrea un nou KeyframeSequence per a aquest punt d’enllaç
bind_keyframe_sequence(channel_name, sequence)NoneAssocia un existent KeyframeSequence amb un canal
reset_channels()NoneElimina tots els canals

AnimationChannel

Conté un únic escalar KeyframeSequence per a un component animat.

Methods

MethodsMethodsMethods
namestrNom del canal (p. ex. "X", "Y", "Z")
default_valueAnyValor utilitzat quan no hi ha dades de fotogrames clau
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Una llista ordenada de KeyFrame mostres per a un canal escalar únic. Hereta de A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Crea una seqüència de fotogrames clau buida

Methods

MethodsMethodsMethods
namestrNom de la seqüència
key_frameslist[KeyFrame]Llista només de lectura de keyframes en ordre cronològic
pre_behaviorExtrapolationComportament abans del primer keyframe
post_behaviorExtrapolationComportament després de l’últim keyframe
bind_point`BindPointNone`

Methods

MethodsTipus de retornMethods
add(time, value, interpolation=Interpolation.LINEAR)NoneAfegeix un keyframe a time (segons) amb el(s) indicat(s) value i interpolation mode
reset()NoneEsborra tots els keyframes i restableix el comportament pre/post

KeyFrame

Una única mostra de temps–valor en un KeyframeSequence.

Methods

KeyFrame els objectes es creen internament per KeyframeSequence.add(); no els construïu directament.

Methods

MethodsMethodsMethods
timefloatPosició de temps en segons
valuefloatValor animat en aquest moment
interpolationInterpolationMode d’interpolació aplicat entre aquest fotograma clau i el següent
tangent_weight_modeWeightedModeMode de pes de la tangent (curves Bézier)
step_modeStepModeComportament d’esglaó (PREVIOUS_VALUE o NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatPes de la tangent de sortida
next_in_weightfloatPes de la tangent d’entrada
tensionfloatParàmetre de tensió (spline TCB)
continuityfloatParàmetre de continuïtat (spline TCB)
biasfloatParàmetre de biaix (spline TCB)
independent_tangentboolMethods True, les tangents d’entrada i sortida són independents
flatboolMethods True, les tangents estan fixades a pla
time_independent_tangentboolMethods True, la direcció de la tangent és independent de l’escalat del temps

Methods

Controla com s’interpolen els valors entre fotogrames consecutius.

MethodsMethods
CONSTANTMethods
LINEARInterpolació lineal entre valors
BEZIERBezier cúbic utilitzant tangents d’entrada/sortida
B_SPLINEB-spline uniforme
CARDINAL_SPLINESpline cardinal
TCB_SPLINESpline de Tensió–Continuïtat–Biaix

Methods

Controla el comportament de l’animació més enllà del primer i de l’últim fotograma.

MethodsMethods
CONSTANTMantén el valor del límit
GRADIENTExtrapola al gradient tangent del fotograma clau del límit
CYCLERepeteix l’interval del fotograma clau (bucles)
CYCLE_RELATIVERepeteix amb desplaçament acumulatiu (relatiu al valor final)
OSCILLATEPing-pong (repetició alternant cap endavant i cap enrere)

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")

Vegeu també

 Català