Animation — Aspose.3D FOSS for Python API Reference

Enumerations

System animacji Aspose.3D jest zorganizowany wokół hierarchii obiektów, które wiążą dane próbkowane w czasie z właściwościami sceny.

  • Enumerations AnimationClip jest nazwanym zakresem odtwarzania (np. “Walk”, “Run”) przechowywanym w a Scene.
  • Enumerations AnimationNode żyje wewnątrz klipu i wiąże animowane dane z określonymi właściwościami obiektów sceny.
  • A BindPoint łączy z AnimationNode do nazwanej Property na A3DObject.
  • Enumerations AnimationChannel przechowuje pojedynczy skalar KeyframeSequence wewnątrz punktu wiązania.
  • A KeyframeSequence jest uporządkowaną listą KeyFrame próbek czas–wartość.

Wszystkie klasy animacji znajdują się w aspose.threed.animation podpakiecie, choć są również dostępne bezpośrednio z aspose.threed.

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

AnimationClip

Nazwany kontener dla jednego zakresu odtwarzania. A Scene może zawierać wiele klipów. Dziedziczy po SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Tworzy klip z opcjonalną nazwą

Enumerations

EnumerationsEnumerationsEnumerations
namestrNazwa klipu (np. "Walk")
descriptionstrOpcjonalny opis
startfloatCzas rozpoczęcia w sekundach
stopfloatCzas zakończenia w sekundach
animationslist[AnimationNode]Lista węzłów animacji w tym klipie dostępna tylko do odczytu
propertiesPropertyCollectionWłasne właściwości

Enumerations

EnumerationsTyp zwracanyEnumerations
create_animation_node(node_name)AnimationNodeTworzy i rejestruje nowy AnimationNode w tym klipie

AnimationNode

Powiązuje AnimationClip do jednego lub wielu BindPoint obiektów celujących w właściwości obiektów sceny. Dziedziczy po A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Tworzy węzeł animacji z opcjonalną nazwą

Enumerations

EnumerationsEnumerationsEnumerations
namestrNazwa węzła
bind_pointslist[BindPoint]Lista punktów wiązania tylko do odczytu
sub_animationslist[AnimationNode]Lista podrzędnych węzłów animacji tylko do odczytu
propertiesPropertyCollectionWłaściwości niestandardowe

Enumerations

EnumerationsTyp zwracanyEnumerations
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

Łączy AnimationNode do pojedynczego Property na A3DObject. Każdy BindPoint może zawierać wiele AnimationChannel obiekty (po jednym na skalarowy komponent). Dziedziczy po A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertyWłaściwość obiektu sceny, do której skierowany jest ten punkt wiązania
channels_countintLiczba kanałów animacji w tym punkcie wiązania

Enumerations

EnumerationsTyp zwracanyEnumerations
add_channel(name, value, type=None)boolDodaje nazwany kanał z wartością domyślną
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceTworzy nowy KeyframeSequence dla tego punktu wiązania
bind_keyframe_sequence(channel_name, sequence)NonePowiązuje istniejący KeyframeSequence z kanałem
reset_channels()NoneUsuwa wszystkie kanały

AnimationChannel

Przechowuje pojedynczy skalar KeyframeSequence dla jednego animowanego komponentu.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNazwa kanału (np. "X", "Y", "Z")
default_valueAnyWartość używana, gdy nie ma danych klatek kluczowych
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Uporządkowana lista KeyFrame próbek dla pojedynczego kanału skalarnego. Dziedziczy po A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Tworzy pustą sekwencję klatek kluczowych

Enumerations

EnumerationsEnumerationsEnumerations
namestrNazwa sekwencji
key_frameslist[KeyFrame]Lista klatek kluczowych tylko do odczytu w kolejności chronologicznej
pre_behaviorExtrapolationZachowanie przed pierwszą klatką kluczową
post_behaviorExtrapolationZachowanie po ostatniej klatce kluczowej
bind_point`BindPointNone`

Enumerations

EnumerationsTyp zwracanyEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneDodaje klatkę kluczową w time (sekundy) z podanym value i interpolation tryb
reset()NoneCzyści wszystkie klatki kluczowe i resetuje zachowanie przed/po

KeyFrame

Pojedyncza próbka czasu‑wartości w KeyframeSequence.

Enumerations

KeyFrame obiekty są tworzone wewnętrznie przez KeyframeSequence.add(); nie twórz ich bezpośrednio.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatPozycja czasu w sekundach
valuefloatAnimowana wartość w tym czasie
interpolationInterpolationTryb interpolacji zastosowany pomiędzy tą klatką kluczową a następną
tangent_weight_modeWeightedModeTryb wagi stycznej (krzywe Béziera)
step_modeStepModeZachowanie kroku (PREVIOUS_VALUE lub NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatWaga wychodzącej stycznej
next_in_weightfloatWaga przychodzącej stycznej
tensionfloatParametr napięcia (splajn TCB)
continuityfloatParametr ciągłości (splajn TCB)
biasfloatParametr bias (splajn TCB)
independent_tangentboolEnumerations True, styczne wejściowe i wyjściowe są niezależne
flatboolEnumerations True, tangenty są przycięte płasko
time_independent_tangentboolEnumerations True, kierunek tangenta jest niezależny od skalowania czasu

Enumerations

Kontroluje, jak wartości są interpolowane pomiędzy kolejnymi klatkami kluczowymi.

EnumerationsEnumerations
CONSTANTEnumerations
LINEARLiniowa interpolacja pomiędzy wartościami
BEZIERCubic Bezier używający tangenty wejścia/wyjścia
B_SPLINEJednolita B-spline
CARDINAL_SPLINECardinal spline
TCB_SPLINEspline napięcia‑ciągłości‑przesunięcia

Enumerations

Kontroluje zachowanie animacji poza pierwszą i ostatnią klatką kluczową.

EnumerationsEnumerations
CONSTANTUtrzymaj wartość graniczną
GRADIENTEkstrapoluj przy gradientzie stycznej klatki kluczowej granicy
CYCLEPowtórz zakres klatek kluczowych (pętle)
CYCLE_RELATIVEPowtórz z kumulatywnym offsetem (względem wartości końcowej)
OSCILLATEPing-pong (naprzemienne powtarzanie w przód i w tył)

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

Zobacz także

 Polski