Animation — Aspose.3D FOSS for Python API Reference

Methods

Le système d’animation Aspose.3D est organisé autour d’une hiérarchie d’objets qui lient des données échantillonnées dans le temps aux propriétés de la scène.

  • Methods AnimationClip est une plage de lecture nommée (e.g. “Walk”, “Run”) détenue par un Scene.
  • Methods AnimationNode vit à l’intérieur d’un clip et lie les données animées à des propriétés spécifiques des objets de la scène.
  • Un BindPoint connecte un AnimationNode à un nommé Property sur un A3DObject.
  • Methods AnimationChannel contient un scalaire unique KeyframeSequence dans un point de liaison.
  • Un KeyframeSequence est une liste ordonnée de KeyFrame échantillons temps–valeur.

Toutes les classes d’animation se trouvent dans le aspose.threed.animation sous‑package, bien qu’elles soient également accessibles directement depuis aspose.threed.

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

AnimationClip

Un conteneur nommé pour une plage de lecture. Un Scene peut contenir plusieurs clips. Hérite de SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Crée un clip avec un nom optionnel

Methods

MethodsMethodsMethods
namestrNom du clip (p. ex. "Walk")
descriptionstrDescription facultative
startfloatTemps de début en secondes
stopfloatTemps de fin en secondes
animationslist[AnimationNode]Liste en lecture seule des nœuds d’animation dans ce clip
propertiesPropertyCollectionPropriétés personnalisées

Methods

MethodsType de retourMethods
create_animation_node(node_name)AnimationNodeCrée et enregistre un nouveau AnimationNode dans ce clip

AnimationNode

Lie un AnimationClip à un ou plusieurs BindPoint objets ciblant les propriétés des objets de scène. Hérite de A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Crée un nœud d’animation avec un nom optionnel

Methods

MethodsMethodsMethods
namestrNom du nœud
bind_pointslist[BindPoint]Liste en lecture seule des points de liaison
sub_animationslist[AnimationNode]Liste en lecture seule des nœuds d’animation enfants
propertiesPropertyCollectionPropriétés personnalisées

Methods

MethodsType de retourMethods
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

Connecte un AnimationNode à un seul Property sur un A3DObject. Chaque BindPoint peut contenir plusieurs AnimationChannel objets (un par composant scalaire). Hérite de A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyLa propriété d’objet de scène ciblée par ce point de liaison
channels_countintNombre de canaux d’animation dans ce point de liaison

Methods

MethodsType de retourMethods
add_channel(name, value, type=None)boolAjoute un canal nommé avec une valeur par défaut
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceCrée un nouveau KeyframeSequence pour ce point de liaison
bind_keyframe_sequence(channel_name, sequence)NoneAssocie un existant KeyframeSequence avec un canal
reset_channels()NoneSupprime tous les canaux

AnimationChannel

Contient un scalaire unique KeyframeSequence pour un composant animé.

Methods

MethodsMethodsMethods
namestrNom du canal (p. ex. "X", "Y", "Z")
default_valueAnyValeur utilisée lorsqu’aucune donnée d’image clé n’est présente
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Une liste ordonnée de KeyFrame échantillons pour un canal scalaire unique. Hérite de A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Crée une séquence d’images clés vide

Methods

MethodsMethodsMethods
namestrNom de la séquence
key_frameslist[KeyFrame]Liste en lecture seule des images clés par ordre chronologique
pre_behaviorExtrapolationComportement avant la première image clé
post_behaviorExtrapolationComportement après la dernière image clé
bind_point`BindPointNone`

Methods

MethodsType de retourMethods
add(time, value, interpolation=Interpolation.LINEAR)NoneAjoute une image clé à time (secondes) avec le(s) donné(s) value et interpolation mode
reset()NoneEfface toutes les images clés et réinitialise le comportement pré/post

KeyFrame

Un seul échantillon temps–valeur dans un KeyframeSequence.

Methods

KeyFrame les objets sont créés en interne par KeyframeSequence.add(); ne les construisez pas directement.

Methods

MethodsMethodsMethods
timefloatPosition temporelle en secondes
valuefloatValeur animée à ce moment
interpolationInterpolationMode d’interpolation appliqué entre cette image clé et la suivante
tangent_weight_modeWeightedModeMode de poids de tangente (courbes de Bézier)
step_modeStepModeComportement d’étape (PREVIOUS_VALUE ou NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatPoids de tangente de sortie
next_in_weightfloatPoids de la tangente entrante
tensionfloatParamètre de tension (spline TCB)
continuityfloatParamètre de continuité (spline TCB)
biasfloatParamètre de biais (spline TCB)
independent_tangentboolMethods True, les tangentes d’entrée et de sortie sont indépendantes
flatboolMethods True, les tangentes sont limitées à plat
time_independent_tangentboolMethods True, la direction de la tangente est indépendante du redimensionnement du temps

Methods

Contrôle la façon dont les valeurs sont interpolées entre des images clés consécutives.

MethodsMethods
CONSTANTMethods
LINEARInterpolation linéaire entre les valeurs
BEZIERBezier cubique utilisant les tangentes d’entrée/sortie
B_SPLINEB-spline uniforme
CARDINAL_SPLINESpline cardinal
TCB_SPLINESpline Tension–Continuity–Bias

Methods

Contrôle le comportement de l’animation au‑delà de la première et de la dernière image clé.

MethodsMethods
CONSTANTConserver la valeur de la bordure
GRADIENTExtrapoler au gradient tangent de l’image clé de bordure
CYCLERépéter la plage d’images clés (boucles)
CYCLE_RELATIVERépéter avec un décalage cumulatif (relatif à la valeur finale)
OSCILLATEPing-pong (répétition alternée avant et arrière)

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

Voir aussi

 Français