Animation — Aspose.3D FOSS for Python API Reference

Methods

El sistema de animación Aspose.3D está organizado en torno a una jerarquía de objetos que enlazan datos muestreados en el tiempo con las propiedades de la escena.

  • Methods AnimationClip es un rango de reproducción con nombre (p. ej., “Walk”, “Run”) mantenido por un Scene.
  • Methods AnimationNode vive dentro de un clip y enlaza datos animados a propiedades específicas en los objetos de la escena.
  • Un BindPoint conecta un AnimationNode a un nombrado Property en un A3DObject.
  • Methods AnimationChannel contiene un único escalar KeyframeSequence dentro de un punto de enlace.
  • A KeyframeSequence es una lista ordenada de KeyFrame muestras de tiempo–valor.

Todas las clases de animación están en el aspose.threed.animation sub‑paquete, aunque también son accesibles directamente desde aspose.threed.

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

AnimationClip

Un contenedor con nombre para un rango de reproducción. A Scene puede contener varios clips. Hereda de SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Crea un clip con un nombre opcional

Methods

MethodsMethodsMethods
namestrNombre del clip (p. ej. "Walk")
descriptionstrDescripción opcional
startfloatTiempo de inicio en segundos
stopfloatTiempo de finalización en segundos
animationslist[AnimationNode]Lista de solo lectura de nodos de animación en este clip
propertiesPropertyCollectionPropiedades personalizadas

Methods

MethodsTipo de retornoMethods
create_animation_node(node_name)AnimationNodeCrea y registra un nuevo AnimationNode en este clip

AnimationNode

Vincula un AnimationClip a uno o más BindPoint objetos que apuntan a propiedades de objetos de escena. Hereda de A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Crea un nodo de animación con nombre opcional

Methods

MethodsMethodsMethods
namestrNombre del nodo
bind_pointslist[BindPoint]Lista de solo lectura de puntos de enlace
sub_animationslist[AnimationNode]Lista de solo lectura de nodos de animación hijos
propertiesPropertyCollectionPropiedades personalizadas

Methods

MethodsTipo de retornoMethods
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

Conecta un AnimationNode a un único Property en un A3DObject. Cada BindPoint puede contener varios AnimationChannel objetos (uno por componente escalar). Hereda de A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyLa propiedad de escena-objeto a la que apunta este punto de enlace
channels_countintNúmero de canales de animación en este punto de enlace

Methods

MethodsTipo de retornoMethods
add_channel(name, value, type=None)boolAgrega un canal con nombre y un valor predeterminado
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceCrea un nuevo KeyframeSequence para este punto de enlace
bind_keyframe_sequence(channel_name, sequence)NoneAsocia un existente KeyframeSequence con un canal
reset_channels()NoneElimina todos los canales

AnimationChannel

Contiene un solo escalar KeyframeSequence para un componente animado.

Methods

MethodsMethodsMethods
namestrNombre del canal (p.ej. "X", "Y", "Z")
default_valueAnyValor usado cuando no hay datos de fotogramas clave
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Una lista ordenada de KeyFrame muestras para un solo canal escalar. Hereda de A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Crea una secuencia de keyframe vacía

Methods

MethodsMethodsMethods
namestrNombre de la secuencia
key_frameslist[KeyFrame]Lista de solo lectura de keyframes en orden cronológico
pre_behaviorExtrapolationComportamiento antes del primer keyframe
post_behaviorExtrapolationComportamiento después del último keyframe
bind_point`BindPointNone`

Methods

MethodsTipo de retornoMethods
add(time, value, interpolation=Interpolation.LINEAR)NoneAñade un keyframe en time (segundos) con el proporcionado value y interpolation modo
reset()NoneBorra todos los keyframes y restablece el comportamiento pre/post

KeyFrame

Una única muestra de tiempo–valor en un KeyframeSequence.

Methods

KeyFrame los objetos se crean internamente por KeyframeSequence.add(); no los construyas directamente.

Methods

MethodsMethodsMethods
timefloatPosición de tiempo en segundos
valuefloatValor animado en este momento
interpolationInterpolationModo de interpolación aplicado entre este fotograma clave y el siguiente
tangent_weight_modeWeightedModeModo de peso de la tangente (curvas Bézier)
step_modeStepModeComportamiento de paso (PREVIOUS_VALUE o NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatPeso del tangente de salida
next_in_weightfloatPeso del tangente de entrada
tensionfloatParámetro de tensión (TCB spline)
continuityfloatParámetro de continuidad (TCB spline)
biasfloatParámetro de sesgo (TCB spline)
independent_tangentboolMethods True, las tangentes de entrada y salida son independientes
flatboolMethods True, las tangentes están fijadas planas
time_independent_tangentboolMethods True, la dirección de la tangente es independiente del escalado del tiempo

Methods

Controla cómo se interpolan los valores entre keyframes consecutivos.

MethodsMethods
CONSTANTMethods
LINEARInterpolación lineal entre valores
BEZIERBezier cúbico usando tangentes de entrada/salida
B_SPLINEB-spline uniforme
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Methods

Controla el comportamiento de la animación más allá del primer y último keyframe.

MethodsMethods
CONSTANTMantener el valor del límite
GRADIENTExtrapolar en el gradiente tangente del fotograma clave de límite
CYCLERepetir el rango de fotogramas clave (bucles)
CYCLE_RELATIVERepetir con desplazamiento acumulativo (relativo al valor final)
OSCILLATEPing-pong (repetición alternada hacia adelante y hacia atrás)

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

Ver también

 Español