Animation — Aspose.3D FOSS for Python API Reference

Enumerations

Sustav animacije Aspose.3D organiziran je oko hijerarhije objekata koji povezuju vremenski uzorkovane podatke s svojstvima scene.

  • Enumerations AnimationClip je imenovani raspon reprodukcije (e.g. “Walk”, “Run”) koji drži a Scene.
  • Enumerations AnimationNode živi unutar isječka i veže animirane podatke na određena svojstva objekata scene.
  • A BindPoint povezuje an AnimationNode na imenovani Property na an A3DObject.
  • Enumerations AnimationChannel sadrži jedan skalar KeyframeSequence unutar točke vezivanja.
  • A KeyframeSequence je uređeni popis od KeyFrame vremensko‑vrijednosnih uzoraka.

Sve klase animacije nalaze se u aspose.threed.animation podpaketu, iako su također izravno dostupne iz aspose.threed.

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

AnimationClip

Imenovani kontejner za jedan raspon reprodukcije. A Scene može sadržavati više isječaka. Nasljeđuje od SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Stvara isječak s opcionalnim imenom

Enumerations

EnumerationsEnumerationsEnumerations
namestrNaziv isječka (npr. "Walk")
descriptionstrOpcionalni opis
startfloatPočetno vrijeme u sekundama
stopfloatZavršno vrijeme u sekundama
animationslist[AnimationNode]Samo za čitanje popis čvorova animacije u ovom isječku
propertiesPropertyCollectionPrilagođena svojstva

Enumerations

EnumerationsTip povratne vrijednostiEnumerations
create_animation_node(node_name)AnimationNodeStvara i registrira novi AnimationNode u ovom isječku

AnimationNode

Povezuje AnimationClip na jedan ili više BindPoint objekata koji ciljaju svojstva scene-objekta. Nasljeđuje od A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Stvara čvor animacije s opcionalnim nazivom

Enumerations

EnumerationsEnumerationsEnumerations
namestrNaziv čvora
bind_pointslist[BindPoint]Samo za čitanje popis točaka povezivanja
sub_animationslist[AnimationNode]Samo za čitanje popis podređenih čvorova animacije
propertiesPropertyCollectionPrilagođena svojstva

Enumerations

EnumerationsTip povratne vrijednostiEnumerations
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

Povezuje AnimationNode na jedan Property na A3DObject. Svaki BindPoint može sadržavati više AnimationChannel objekte (po jedan po skalarnoj komponenti). Nasljeđuje od A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertySvojstvo scene-object na koje ovaj bind point cilja
channels_countintBroj kanala animacije u ovom bind pointu

Enumerations

EnumerationsTip povratne vrijednostiEnumerations
add_channel(name, value, type=None)boolDodaje imenovani kanal s zadanim vrijednošću
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceStvara novi KeyframeSequence za ovaj bind point
bind_keyframe_sequence(channel_name, sequence)NonePovezuje postojeći KeyframeSequence sa kanalom
reset_channels()NoneUklanja sve kanale

AnimationChannel

Sadrži jedan skalar KeyframeSequence za jednu animiranu komponentu.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNaziv kanala (npr. "X", "Y", "Z")
default_valueAnyVrijednost koja se koristi kada nema podataka o ključnim okvirima
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Uređeni popis KeyFrame uzoraka za jedan skalarnog kanala. Nasljeđuje od A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Stvara prazan niz ključnih okvira

Enumerations

EnumerationsEnumerationsEnumerations
namestrNaziv niza
key_frameslist[KeyFrame]Popis ključnih okvira samo za čitanje u kronološkom redoslijedu
pre_behaviorExtrapolationPonašanje prije prvog ključnog okvira
post_behaviorExtrapolationPonašanje nakon posljednjeg ključnog okvira
bind_point`BindPointNone`

Enumerations

EnumerationsTip povratkaEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneDodaje ključni okvir na time (sekunde) s danim value i interpolation način
reset()NoneBriše sve ključne okvire i resetira pre/post ponašanje

KeyFrame

Jedan uzorak vremenske vrijednosti u KeyframeSequence.

Enumerations

KeyFrame objekti se interno stvaraju od strane KeyframeSequence.add(); ne konstruirajte ih izravno.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatVremenska pozicija u sekundama
valuefloatAnimirana vrijednost u ovom trenutku
interpolationInterpolationNačin interpolacije primijenjen između ovog ključnog okvira i sljedećeg
tangent_weight_modeWeightedModeNačin težine tangente (Bezier krivulje)
step_modeStepModePonašanje koraka (PREVIOUS_VALUE ili NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatTežina izlazne tangente
next_in_weightfloatTežina dolazne tangente
tensionfloatParametar napetosti (TCB spline)
continuityfloatParametar kontinuiteta (TCB spline)
biasfloatParametar pristranosti (TCB spline)
independent_tangentboolEnumerations True, dolazne i izlazne tangente su neovisne
flatboolEnumerations True, tangente su fiksirane ravno
time_independent_tangentboolEnumerations True, smjer tangente je neovisan o skaliranju vremena

Enumerations

Upravlja kako se vrijednosti interpoliraju između uzastopnih ključnih okvira.

EnumerationsEnumerations
CONSTANTEnumerations
LINEARLinearna interpolacija između vrijednosti
BEZIERKubni Bezier s ulaznim/izlaznim tangensama
B_SPLINEUniformni B-spline
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Enumerations

Upravlja ponašanjem animacije izvan prvog i posljednjeg ključnog okvira.

EnumerationsEnumerations
CONSTANTZadrži graničnu vrijednost
GRADIENTEkstrapoliraj na tangencijalnom nagibu graničnog ključnog okvira
CYCLEPonovi raspon ključnih okvira (petlje)
CYCLE_RELATIVEPonovi s kumulativnim pomakom (relativno na krajnju vrijednost)
OSCILLATEPing-pong (izmjenično naprijed i nazad)

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

Vidi također

 Hrvatski