Animation — Aspose.3D FOSS for Python API Reference

Example

Sistem animacije Aspose.3D organizovan je oko hijerarhije objekata koji povezuju vremenski uzorkovane podatke sa svojstvima scene.

  • Example AnimationClip je imenovani opseg reprodukcije (npr. „Walk“, „Run“) koji drži Scene.
  • Example AnimationNode živi unutar klipa i povezuje animirane podatke sa specifičnim svojstvima na objektima scene.
  • Jedan BindPoint povezuje AnimationNode na imenovani Property na A3DObject.
  • Example AnimationChannel drži jedan skalar KeyframeSequence unutar tačke vezivanja.
  • A KeyframeSequence je uređena lista KeyFrame vremensko‑vrednosni uzorci.

Sve klase animacije su u aspose.threed.animation podpaketu, iako su takođe dostupne direktno iz aspose.threed.

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

AnimationClip

Imenovani kontejner za jedan opseg reprodukcije. A Scene može da sadrži više klipova. Nasleđuje od SceneObject.

Example

ExampleExample
AnimationClip(name=None)Kreira klip sa opcionim imenom

Example

ExampleExampleExample
namestrNaziv klipa (npr. "Walk")
descriptionstrOpcioni opis
startfloatPočetno vreme u sekundama
stopfloatKrajnje vreme u sekundama
animationslist[AnimationNode]Lista animacionih čvorova u ovom klipu (samo za čitanje)
propertiesPropertyCollectionPrilagođena svojstva

Example

ExampleTip povratne vrednostiExample
create_animation_node(node_name)AnimationNodeKreira i registruje novi AnimationNode u ovom klipu

AnimationNode

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

Example

ExampleExample
AnimationNode(name=None)Kreira čvor animacije sa opcionalnim imenom

Example

ExampleExampleExample
namestrNaziv čvora
bind_pointslist[BindPoint]Lista tačaka vezivanja samo za čitanje
sub_animationslist[AnimationNode]Lista podređenih čvorova animacije samo za čitanje
propertiesPropertyCollectionPrilagođena svojstva

Example

ExampleTip povratne vrednostiExample
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 jedan AnimationNode na jedan Property na jednom A3DObject. Svaki BindPoint može da sadrži više AnimationChannel objekte (po jedan po skalarnoj komponenti). Nasleđuje od A3DObject.

Example

ExampleExampleExample
propertyPropertySvojstvo scene‑objekta koje ova tačka vezivanja cilja
channels_countintBroj kanala animacije u ovoj tački vezivanja

Example

ExampleTip povratne vrednostiExample
add_channel(name, value, type=None)boolDodaje imenovani kanal sa podrazumevanom vrednošću
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceKreira novi KeyframeSequence za ovu tačku vezivanja
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.

Example

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

KeyframeSequence

Uređeni spisak KeyFrame uzoraka za jedan skalarni kanal. Nasleđuje od A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)Kreira praznu sekvencu ključnih okvira

Example

ExampleExampleExample
namestrNaziv sekvence
key_frameslist[KeyFrame]Lista ključnih okvira samo za čitanje u hronološkom redosledu
pre_behaviorExtrapolationPonašanje pre prvog ključnog okvira
post_behaviorExtrapolationPonašanje posle poslednjeg ključnog okvira
bind_point`BindPointNone`

Example

ExampleTip povratne vrednostiExample
add(time, value, interpolation=Interpolation.LINEAR)NoneDodaje ključni okvir na time (sekundi) sa datim value i interpolation režim
reset()NoneBriše sve ključne okvire i resetuje pre/post ponašanje

KeyFrame

Jedan uzorak vremensko‑vrednosne vrednosti u KeyframeSequence.

Example

KeyFrame objekti se interno kreiraju od strane KeyframeSequence.add(); ne konstruirajte ih direktno.

Example

ExampleExampleExample
timefloatVremenski položaj u sekundama
valuefloatAnimirana vrednost u ovom trenutku
interpolationInterpolationRežim interpolacije primenjen između ovog ključnog okvira i sledećeg
tangent_weight_modeWeightedModeRežim težine tangente (Bezier krive)
step_modeStepModePonašanje koraka (PREVIOUS_VALUE ili NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatTežina odlazne tangente
next_in_weightfloatTežina ulazne tangente
tensionfloatParametar napetosti (TCB spline)
continuityfloatParametar kontinuiteta (TCB spline)
biasfloatParametar pristrasnosti (TCB spline)
independent_tangentboolExample True, ulazne i izlazne tangente su nezavisne
flatboolExample True, tangente su fiksirane ravno
time_independent_tangentboolExample True, smer tangente je nezavisan od skaliranja vremena

Example

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

ExampleExample
CONSTANTExample
LINEARLinearna interpolacija između vrednosti
BEZIERKubni Bezier koristeći ulazne/izlazne tangente
B_SPLINEUniformni B-spline
CARDINAL_SPLINEKardinalni spline
TCB_SPLINETension–Continuity–Bias spline

Example

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

ExampleExample
CONSTANTZadrži graničnu vrednost
GRADIENTEkstrapoliraj na osnovu gradijenta tangente graničnog ključnog okvira
CYCLEPonovi opseg ključnog okvira (petlje)
CYCLE_RELATIVEPonovi sa kumulativnim pomakom (u odnosu na krajnju vrednost)
OSCILLATEPing-pong (naizmenično ponavljanje napred i nazad)

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

Vidi takođe

 Српски