Animation — Aspose.3D FOSS for Python API Reference

Methods

Aspose.3D-animaatiojärjestelmä on järjestetty objektihierarkian ympärille, joka sitoo aikapisteytettyä dataa kohtauksen ominaisuuksiin.

  • Methods AnimationClip on nimetty toistoväli (esim. “Walk”, “Run”) jonka Scene.
  • Methods AnimationNode elää leikkeen sisällä ja sitoo animoitua dataa tiettyihin ominaisuuksiin kohtausobjekteissa.
  • Yksi BindPoint yhdistää AnimationNode nimettyyn Property jollakin A3DObject.
  • Methods AnimationChannel sisältää yhden skalaarin KeyframeSequence sidontapisteen sisällä.
  • Yksi KeyframeSequence on järjestetty luettelo of KeyFrame aika‑arvo näytteet.

Kaikki animaatioluokat ovat aspose.threed.animation alipaketissa, vaikka ne ovat myös suoraan käytettävissä aspose.threed.

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

AnimationClip

Nimetty säiliö yhdelle toistovälille. A Scene voi sisältää useita leikkejä. Perii luokasta SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Luo leike, jonka nimi on valinnainen

Methods

MethodsMethodsMethods
namestrLeikkeen nimi (esim. "Walk")
descriptionstrValinnainen kuvaus
startfloatAloitusaika sekunneissa
stopfloatLopetusaika sekunneissa
animationslist[AnimationNode]Vain luku -lista animaatiosolmuista tässä leikkeessä
propertiesPropertyCollectionMukautetut ominaisuudet

Methods

MethodsPaluu­tyyppiMethods
create_animation_node(node_name)AnimationNodeLuo ja rekisteröi uuden AnimationNode tässä leikkeessä

AnimationNode

Sidoo yhden AnimationClip yhdelle tai useammalle BindPoint objekteja, jotka kohdistuvat kohtausobjektin ominaisuuksiin. Perii luokasta A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Luo animaatiosolmu valinnaisella nimellä

Methods

MethodsMethodsMethods
namestrSolmun nimi
bind_pointslist[BindPoint]Vain luku -lista sidontapisteistä
sub_animationslist[AnimationNode]Vain luku -lista animaatiosolmuiden alisolmuista
propertiesPropertyCollectionMukautetut ominaisuudet

Methods

MethodsPaluu­tyyppiMethods
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

Yhdistää AnimationNode yhdelle yksittäiselle Property on A3DObject. Jokainen BindPoint voi sisältää useita AnimationChannel objekteja (yksi per skalaarinen komponentti). Perii A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyKohtauksen objektin ominaisuus, johon tämä sidontapiste kohdistaa
channels_countintAnimaatiokanavien määrä tässä sidontapisteessä

Methods

MethodsPaluuarvon tyyppiMethods
add_channel(name, value, type=None)boolLisää nimetty kanava oletusarvolla
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceLuo uuden KeyframeSequence tälle sidontapisteelle
bind_keyframe_sequence(channel_name, sequence)NoneLiittää olemassa olevan KeyframeSequence kanavan kanssa
reset_channels()NonePoistaa kaikki kanavat

AnimationChannel

Sisältää yhden skalaarin KeyframeSequence yhdelle animoidulle komponentille.

Methods

MethodsMethodsMethods
namestrKanavan nimi (esim. "X", "Y", "Z")
default_valueAnyArvo, jota käytetään, kun avainruututietoja ei ole
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Järjestetty luettelo KeyFrame näytteet yhdelle skalaarikanavalle. Perii A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Luo tyhjän avainruutusekvenssin

Methods

MethodsMethodsMethods
namestrSekvenssin nimi
key_frameslist[KeyFrame]Vain luku -luettelo avainruuduista kronologisessa järjestyksessä
pre_behaviorExtrapolationKäyttäytyminen ennen ensimmäistä avainruutua
post_behaviorExtrapolationKäyttäytyminen viimeisen avainruudun jälkeen
bind_point`BindPointNone`

Methods

MethodsPaluutyypiMethods
add(time, value, interpolation=Interpolation.LINEAR)NoneLisää avainruudun kohtaan time (sekuntia) annetulla value ja interpolation tila
reset()NoneTyhjentää kaikki avainruudut ja nollaa ennen‑ ja jälkeisen käyttäytymisen

KeyFrame

Yksi aikaarvo‑näyte KeyframeSequence.

Methods

KeyFrame objektit luodaan sisäisesti KeyframeSequence.add(); älä rakenna niitä suoraan.

Methods

MethodsMethodsMethods
timefloatAikapiste sekunneissa
valuefloatAnimoitu arvo tällä hetkellä
interpolationInterpolationInterpolointitila, joka on käytössä tämän avainkehyksen ja seuraavan välillä
tangent_weight_modeWeightedModeTangentin painotustila (Bezier-käyrät)
step_modeStepModeAskelkäyttäytyminen (PREVIOUS_VALUE tai NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatLähtevä tangenttipaino
next_in_weightfloatSaapuva tangenttipaino
tensionfloatJännitysparametri (TCB-splini)
continuityfloatJatkuvuusparametri (TCB-splini)
biasfloatVinousparametri (TCB-splini)
independent_tangentboolMethods True, sisään- ja ulostulotangentit ovat riippumattomia
flatboolMethods True, tangentit on litistetty tasaisiksi
time_independent_tangentboolMethods True, tangenttisuunta on riippumaton aikaskaalauksesta

Methods

Määrittää, miten arvot interpoloidaan peräkkäisten avainruutujen välillä.

MethodsMethods
CONSTANTMethods
LINEARLineaarinen interpolointi arvojen välillä
BEZIERCubic Bezier käyttäen sisään/ulos-tangentteja
B_SPLINEUniform B-spline
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Methods

Määrittää animaation käyttäytymisen ensimmäisen ja viimeisen avainruudun ulkopuolella.

MethodsMethods
CONSTANTPidä raja-arvo
GRADIENTEkstrapoloi raja‑avainkehyksen tangenttisen gradientin kohdalla
CYCLEToista avainkehyksen alue (silmukat)
CYCLE_RELATIVEToista kumulatiivisella siirtymällä (suhteessa loppuarvoon)
OSCILLATEPing-pong (vuorottelevat eteen- ja taaksepäin toistot)

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

Katso myös

 Suomi