Animation — Aspose.3D FOSS for Python API Reference

Enumerations

Il sistema di animazione Aspose.3D è organizzato attorno a una gerarchia di oggetti che collegano dati campionati nel tempo alle proprietà della scena.

  • Enumerations AnimationClip è un intervallo di riproduzione denominato (ad es. “Walk”, “Run”) tenuto da un Scene.
  • Enumerations AnimationNode vive all’interno di una clip e associa dati animati a proprietà specifiche sugli oggetti della scena.
  • Un BindPoint collega un AnimationNode a un denominato Property su un A3DObject.
  • Enumerations AnimationChannel contiene un singolo scalare KeyframeSequence all’interno di un bind point.
  • Un KeyframeSequence è un elenco ordinato di KeyFrame campioni tempo–valore.

Tutte le classi di animazione si trovano nel aspose.threed.animation sotto-pacchetto, sebbene siano anche accessibili direttamente da aspose.threed.

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

AnimationClip

Un contenitore nominato per un intervallo di riproduzione. Un Scene può contenere più clip. Eredita da SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Crea una clip con un nome opzionale

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome della clip (ad es. "Walk")
descriptionstrDescrizione opzionale
startfloatTempo di inizio in secondi
stopfloatTempo di fine in secondi
animationslist[AnimationNode]Elenco in sola lettura dei nodi di animazione in questa clip
propertiesPropertyCollectionProprietà personalizzate

Enumerations

EnumerationsTipo di ritornoEnumerations
create_animation_node(node_name)AnimationNodeCrea e registra un nuovo AnimationNode in questa clip

AnimationNode

Associa un AnimationClip a uno o più BindPoint oggetti che mirano alle proprietà scene-object. Eredita da A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Crea un nodo di animazione con nome opzionale

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome del nodo
bind_pointslist[BindPoint]Elenco di sola lettura dei bind points
sub_animationslist[AnimationNode]Elenco di sola lettura dei child animation nodes
propertiesPropertyCollectionProprietà personalizzate

Enumerations

EnumerationsTipo di ritornoEnumerations
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

Collega un AnimationNode a un singolo Property su un A3DObject. Ogni BindPoint può contenere più AnimationChannel oggetti (uno per componente scalare). Eredita da A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertyLa proprietà scene-object a cui questo punto di binding è destinato
channels_countintNumero di canali di animazione in questo punto di binding

Enumerations

EnumerationsTipo di ritornoEnumerations
add_channel(name, value, type=None)boolAggiunge un canale nominato con un valore predefinito
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceCrea un nuovo KeyframeSequence per questo punto di binding
bind_keyframe_sequence(channel_name, sequence)NoneAssocia un elemento esistente KeyframeSequence con un canale
reset_channels()NoneRimuove tutti i canali

AnimationChannel

Contiene un singolo scalare KeyframeSequence per un componente animato.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome del canale (es. "X", "Y", "Z")
default_valueAnyValore usato quando non sono presenti dati di fotogramma chiave
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Un elenco ordinato di KeyFrame campioni per un singolo canale scalare. Eredita da A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Crea una sequenza di fotogrammi chiave vuota

Enumerations

EnumerationsEnumerationsEnumerations
namestrNome della sequenza
key_frameslist[KeyFrame]Elenco di sola lettura dei fotogrammi chiave in ordine cronologico
pre_behaviorExtrapolationComportamento prima del primo fotogramma chiave
post_behaviorExtrapolationComportamento dopo l’ultimo fotogramma chiave
bind_point`BindPointNone`

Enumerations

EnumerationsTipo di ritornoEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneAggiunge un fotogramma chiave a time (secondi) con il valore fornito value e interpolation modalità
reset()NoneCancella tutti i fotogrammi chiave e ripristina il comportamento pre/post

KeyFrame

Un singolo campione tempo–valore in un KeyframeSequence.

Enumerations

KeyFrame gli oggetti sono creati internamente da KeyframeSequence.add(); non crearli direttamente.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatPosizione temporale in secondi
valuefloatValore animato a questo tempo
interpolationInterpolationModalità di interpolazione applicata tra questo keyframe e il successivo
tangent_weight_modeWeightedModeModalità peso della tangente (curve Bezier)
step_modeStepModeComportamento a passo (PREVIOUS_VALUE oppure NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatPeso della tangente in uscita
next_in_weightfloatPeso della tangente in ingresso
tensionfloatParametro di tensione (spline TCB)
continuityfloatParametro di continuità (spline TCB)
biasfloatParametro di bias (spline TCB)
independent_tangentboolEnumerations True, le tangenti di ingresso e uscita sono indipendenti
flatboolEnumerations True, le tangenti sono bloccate piatte
time_independent_tangentboolEnumerations True, la direzione della tangente è indipendente dalla scala temporale

Enumerations

Controlla come i valori vengono interpolati tra i KeyFrame consecutivi.

EnumerationsEnumerations
CONSTANTEnumerations
LINEARInterpolazione lineare tra i valori
BEZIERBezier cubico usando le tangenti di ingresso/uscita
B_SPLINEB-spline uniforme
CARDINAL_SPLINESpline cardinal
TCB_SPLINESpline Tensione–Continuità–Bias

Enumerations

Controlla il comportamento dell’animazione al di fuori del primo e dell’ultimo KeyFrame.

EnumerationsEnumerations
CONSTANTMantieni il valore di confine
GRADIENTEstrapola al gradiente tangente del fotogramma chiave di confine
CYCLERipeti l’intervallo del fotogramma chiave (cicli)
CYCLE_RELATIVERipeti con offset cumulativo (relativo al valore finale)
OSCILLATEPing-pong (ripetizione alternata in avanti e indietro)

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

Vedi anche

 Italiano