Animation — Aspose.3D FOSS for Python API Reference

Example

Το σύστημα animation Aspose.3D οργανώνεται γύρω από μια ιεραρχία αντικειμένων που συνδέουν δεδομένα δειγματοληπτημένα στο χρόνο με τις ιδιότητες της σκηνής.

  • Example AnimationClip είναι ένα ονομαστικό εύρος αναπαραγωγής (π.χ. “Walk”, “Run”) που κρατιέται από ένα Scene.
  • Example AnimationNode ζει μέσα σε ένα κλιπ και συνδέει τα κινούμενα δεδομένα με συγκεκριμένες ιδιότητες στα αντικείμενα της σκηνής.
  • Ένα BindPoint συνδέει ένα AnimationNode σε ένα ονομασμένο Property σε ένα A3DObject.
  • Example AnimationChannel κρατά ένα μοναδικό scalar KeyframeSequence μέσα σε ένα σημείο σύνδεσης.
  • Ένα KeyframeSequence είναι μια ταξινομημένη λίστα από KeyFrame δείγματα χρόνου‑τιμής.

Όλες οι κλάσεις animation βρίσκονται στο aspose.threed.animation υπο-πακέτο, αν και είναι επίσης προσβάσιμες απευθείας από aspose.threed.

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

AnimationClip

Ένα ονομαστικό κοντέινερ για ένα εύρος αναπαραγωγής. Ένα Scene μπορεί να περιέχει πολλαπλά κλιπ. Κληρονομεί από SceneObject.

Example

ExampleExample
AnimationClip(name=None)Δημιουργεί ένα κλιπ με προαιρετικό όνομα

Example

ExampleExampleExample
namestrΌνομα αποσπάσματος (π.χ. "Walk")
descriptionstrΠροαιρετική περιγραφή
startfloatΧρόνος έναρξης σε δευτερόλεπτα
stopfloatΧρόνος λήξης σε δευτερόλεπτα
animationslist[AnimationNode]Λίστα μόνο για ανάγνωση των κόμβων animation σε αυτό το κλιπ
propertiesPropertyCollectionΠροσαρμοσμένες ιδιότητες

Example

ExampleΤύπος ΕπιστροφήςExample
create_animation_node(node_name)AnimationNodeΔημιουργεί και καταχωρεί ένα νέο AnimationNode σε αυτό το κλιπ

AnimationNode

Δέσμευει ένα AnimationClip σε ένα ή περισσότερα BindPoint αντικείμενα που στοχεύουν σε ιδιότητες αντικειμένου σκηνής. Κληρονομεί από A3DObject.

Example

ExampleExample
AnimationNode(name=None)Δημιουργεί έναν κόμβο animation με προαιρετικό όνομα

Example

ExampleExampleExample
namestrΌνομα κόμβου
bind_pointslist[BindPoint]Λίστα μόνο για ανάγνωση των σημείων δέσμευσης
sub_animationslist[AnimationNode]Λίστα μόνο για ανάγνωση των παιδικών κόμβων animation
propertiesPropertyCollectionΠροσαρμοσμένες ιδιότητες

Example

ExampleΤύπος ΕπιστροφήςExample
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

Συνδέει ένα AnimationNode σε ένα μόνο Property σε ένα A3DObject. Κάθε BindPoint μπορεί να περιέχει πολλαπλά AnimationChannel αντικείμενα (ένα ανά στοιχειώδη συνιστώσα). Κληρονομεί από A3DObject.

Example

ExampleExampleExample
propertyPropertyΗ ιδιότητα scene-object που στοχεύει αυτό το bind point
channels_countintΑριθμός καναλιών animation σε αυτό το bind point

Example

ExampleΤύπος ΕπιστροφήςExample
add_channel(name, value, type=None)boolΠροσθέτει ένα ονομαστικό κανάλι με προεπιλεγμένη τιμή
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceΔημιουργεί ένα νέο KeyframeSequence για αυτό το bind point
bind_keyframe_sequence(channel_name, sequence)NoneΣυσχετίζει ένα υπάρχον KeyframeSequence με ένα κανάλι
reset_channels()NoneΑφαιρεί όλα τα κανάλια

AnimationChannel

Διατηρεί ένα μοναδικό scalar KeyframeSequence για ένα κινούμενο στοιχείο.

Example

ExampleExampleExample
namestrΌνομα καναλιού (π.χ. "X", "Y", "Z")
default_valueAnyΤιμή που χρησιμοποιείται όταν δεν υπάρχουν δεδομένα keyframe
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Μια διατεταγμένη λίστα των KeyFrame δείγματα για ένα μοναδικό scalar κανάλι. Κληρονομεί από A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)Δημιουργεί μια κενή ακολουθία keyframe

Example

ExampleExampleExample
namestrΌνομα ακολουθίας
key_frameslist[KeyFrame]Λίστα μόνο για ανάγνωση των keyframes με χρονολογική σειρά
pre_behaviorExtrapolationΣυμπεριφορά πριν το πρώτο keyframe
post_behaviorExtrapolationΣυμπεριφορά μετά το τελευταίο keyframe
bind_point`BindPointNone`

Example

ExampleΤύπος επιστροφήςExample
add(time, value, interpolation=Interpolation.LINEAR)NoneΠροσθέτει ένα keyframe στο time (δευτερόλεπτα) με το δεδομένο value και interpolation λειτουργία
reset()NoneΚαθαρίζει όλα τα keyframes και επαναφέρει τη συμπεριφορά προ/μετά

KeyFrame

Ένα μοναδικό δείγμα τιμής χρόνου σε ένα KeyframeSequence.

Example

KeyFrame τα αντικείμενα δημιουργούνται εσωτερικά από KeyframeSequence.add(); μην τα κατασκευάζετε απευθείας.

Example

ExampleExampleExample
timefloatΘέση χρόνου σε δευτερόλεπτα
valuefloatΚινούμενη τιμή σε αυτή τη στιγμή
interpolationInterpolationΛειτουργία παρεμβολής που εφαρμόζεται μεταξύ αυτού του keyframe και του επόμενου
tangent_weight_modeWeightedModeΛειτουργία βάρους εφαπτομένης (Καμπύλες Bezier)
step_modeStepModeΣυμπεριφορά βήματος (PREVIOUS_VALUE ή NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatΒάρος εξερχόμενης εφαπτομένης
next_in_weightfloatΒάρος εισερχόμενης εφαπτομένης
tensionfloatΠαράμετρος τάσης (TCB spline)
continuityfloatΠαράμετρος συνέχειας (TCB spline)
biasfloatΠαράμετρος προκατάληψης (TCB spline)
independent_tangentboolExample True, οι εσωτερικές και εξωτερικές εφαπτόμενες είναι ανεξάρτητες
flatboolExample True, οι εφαπτόμενες είναι επίπεδες και περιορισμένες
time_independent_tangentboolExample True, η κατεύθυνση της εφαπτομένης είναι ανεξάρτητη από την κλιμάκωση του χρόνου

Example

Ελέγχει πώς οι τιμές παρεμβάλλονται μεταξύ διαδοχικών keyframes.

ExampleExample
CONSTANTExample
LINEARΓραμμική παρεμβολή μεταξύ τιμών
BEZIERΚυβική Bezier με εσωτερικές/εξωτερικές εφαπτόμενες
B_SPLINEΟμοιόμορφη B-spline
CARDINAL_SPLINEΚαρδινάλ spline
TCB_SPLINETension–Continuity–Bias spline

Example

Ελέγχει τη συμπεριφορά του animation πέρα από το πρώτο και το τελευταίο keyframe.

ExampleExample
CONSTANTΚρατήστε την τιμή του ορίου
GRADIENTΕξαπλώστε στην κλίση εφαπτομένης του οριακού keyframe
CYCLEΕπαναλάβετε το εύρος του keyframe (βρόχοι)
CYCLE_RELATIVEΕπανάληψη με συσσωρευμένο offset (σχετικά με την τελική τιμή)
OSCILLATEPing-pong (εναλλασσόμενη επανάληψη εμπρός-πίσω)

Example

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

Δείτε επίσης

 Ελληνικά