Animation — Aspose.3D FOSS for Python API Reference

Enumerations

O sistema de animação Aspose.3D está organizado em torno de uma hierarquia de objetos que vinculam dados amostrados no tempo às propriedades da cena.

  • Enumerations AnimationClip é um intervalo de reprodução nomeado (por exemplo, “Walk”, “Run”) mantido por um Scene.
  • Enumerations AnimationNode vive dentro de um clip e vincula dados animados a propriedades específicas em objetos da cena.
  • Um BindPoint conecta um AnimationNode para um nomeado Property em um A3DObject.
  • Enumerations AnimationChannel contém um único escalar KeyframeSequence dentro de um ponto de ligação.
  • A KeyframeSequence é uma lista ordenada de KeyFrame amostras de tempo–valor.

Todas as classes de animação estão no aspose.threed.animation sub‑pacote, embora também estejam acessíveis diretamente de aspose.threed.

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

AnimationClip

Um contêiner nomeado para um intervalo de reprodução. A Scene pode conter vários clipes. Herda de SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Cria um clipe com um nome opcional

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome do clipe (ex. "Walk")
descriptionstrDescrição opcional
startfloatTempo de início em segundos
stopfloatTempo de término em segundos
animationslist[AnimationNode]Lista somente leitura de nós de animação neste clipe
propertiesPropertyCollectionPropriedades personalizadas

Enumerations

EnumerationsTipo de retornoEnumerations
create_animation_node(node_name)AnimationNodeCria e registra um novo AnimationNode neste clipe

AnimationNode

Vincula um AnimationClip a um ou mais BindPoint objetos que visam propriedades de objeto de cena. Herda de A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Cria um nó de animação com nome opcional

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome do nó
bind_pointslist[BindPoint]Lista somente leitura de pontos de ligação
sub_animationslist[AnimationNode]Lista somente leitura de nós de animação filhos
propertiesPropertyCollectionPropriedades personalizadas

Enumerations

EnumerationsTipo de retornoEnumerations
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 um AnimationNode para um único Property em um A3DObject. Cada BindPoint pode conter múltiplos AnimationChannel objetos (um por componente escalar). Herda de A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertyA propriedade scene-object que este ponto de ligação tem como alvo
channels_countintNúmero de canais de animação neste ponto de ligação

Enumerations

EnumerationsTipo de RetornoEnumerations
add_channel(name, value, type=None)boolAdiciona um canal nomeado com um valor padrão
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceCria um novo KeyframeSequence para este ponto de ligação
bind_keyframe_sequence(channel_name, sequence)NoneAssocia um existente KeyframeSequence com um canal
reset_channels()NoneRemove todos os canais

AnimationChannel

Mantém um único escalar KeyframeSequence para um componente animado.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome do canal (ex. "X", "Y", "Z")
default_valueAnyValor usado quando não há dados de quadro‑chave
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Uma lista ordenada de KeyFrame amostras para um único canal escalar. Herda de A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Cria uma sequência de quadros‑chave vazia

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome da sequência
key_frameslist[KeyFrame]Lista somente leitura de quadros‑chave em ordem cronológica
pre_behaviorExtrapolationComportamento antes do primeiro quadro‑chave
post_behaviorExtrapolationComportamento após o último quadro‑chave
bind_point`BindPointNone`

Enumerations

EnumerationsTipo de RetornoEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneAnexa um quadro‑chave em time (segundos) com o(s) fornecido(s) value e interpolation modo
reset()NoneLimpa todos os quadros‑chave e redefine o comportamento pré/pós

KeyFrame

Uma única amostra de tempo–valor em um KeyframeSequence.

Enumerations

KeyFrame objetos são criados internamente por KeyframeSequence.add(); não os construa diretamente.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatPosição de tempo em segundos
valuefloatValor animado neste momento
interpolationInterpolationModo de interpolação aplicado entre este quadro-chave e o próximo
tangent_weight_modeWeightedModeModo de peso da tangente (Bezier curves)
step_modeStepModeComportamento de passo (PREVIOUS_VALUE ou NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatPeso da tangente de saída
next_in_weightfloatPeso da tangente de entrada
tensionfloatParâmetro de tensão (TCB spline)
continuityfloatParâmetro de continuidade (TCB spline)
biasfloatParâmetro de viés (TCB spline)
independent_tangentboolEnumerations True, as tangentes de entrada e saída são independentes
flatboolEnumerations True, as tangentes são fixas e planas
time_independent_tangentboolEnumerations True, a direção da tangente é independente da escala de tempo

Enumerations

Controla como os valores são interpolados entre quadros‑chave consecutivos.

EnumerationsEnumerations
CONSTANTEnumerations
LINEARInterpolação linear entre valores
BEZIERBezier cúbico usando tangentes de entrada/saída
B_SPLINEB-spline uniforme
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Enumerations

Controla o comportamento da animação além do primeiro e do último quadro‑chave.

EnumerationsEnumerations
CONSTANTManter o valor da borda
GRADIENTExtrapolar no gradiente tangente do keyframe de borda
CYCLERepetir o intervalo de keyframes (loops)
CYCLE_RELATIVERepetir com offset cumulativo (relativo ao valor final)
OSCILLATEPing-pong (repetição alternada para frente e para trás)

Enumerations

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

Veja também

 Português