Animation — Aspose.3D FOSS for Python API Reference

Methods

Aspose.3D animācijas sistēma ir organizēta ap objektu hierarhiju, kas saista laika paraugu datus ar ainas īpašībām.

  • Methods AnimationClip ir nosaukts atskaņošanas diapazons (piem., “Walk”, “Run”) turēts Scene.
  • Methods AnimationNode atrodas klipa iekšienē un sasaista animētos datus ar konkrētām īpašībām ainas objektiem.
  • A BindPoint savieno ar AnimationNode uz nosauktu Property uz A3DObject.
  • Methods AnimationChannel satur vienu skalāru KeyframeSequence saistīšanas punktā.
  • A KeyframeSequence ir sakārtots saraksts ar KeyFrame laika‑vērtības paraugi.

Visas animācijas klases atrodas aspose.threed.animation apakšpaketē, lai gan tās ir pieejamas arī tieši no aspose.threed.

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

AnimationClip

Nosaukts konteineram vienam atskaņošanas diapazonam. A Scene var saturēt vairākus klipus. Manto no SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Izveido klipu ar izvēles nosaukumu

Methods

MethodsMethodsMethods
namestrKlipa nosaukums (piemēram. "Walk")
descriptionstrPēc izvēles apraksts
startfloatSākuma laiks sekundēs
stopfloatBeigu laiks sekundēs
animationslist[AnimationNode]Tikai lasāms saraksts ar animācijas mezgliem šajā klipā
propertiesPropertyCollectionPielāgotas īpašības

Methods

MethodsAtgriešanas tipsMethods
create_animation_node(node_name)AnimationNodeIzveido un reģistrē jaunu AnimationNode šajā klipā

AnimationNode

Saista AnimationClip ar vienu vai vairākām BindPoint objektus, kas mērķē uz ainas objekta īpašībām. Manto no A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Izveido animācijas mezglu ar izvēles nosaukumu

Methods

MethodsMethodsMethods
namestrMezgla nosaukums
bind_pointslist[BindPoint]Tikai lasāms saraksts ar saistīšanas punktiem
sub_animationslist[AnimationNode]Tikai lasāms saraksts ar bērnu animācijas mezgliem
propertiesPropertyCollectionPielāgotas īpašības

Methods

MethodsAtgriešanas tipsMethods
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

Savieno ar AnimationNode uz vienu Property uz A3DObject. Katrs BindPoint var saturēt vairākus AnimationChannel objektus (viens uz katru skalāro komponenti). A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyManto no
channels_countintAinas objekta īpašība, uz ko šis saistīšanas punkts mērķē

Methods

MethodsAnimācijas kanālu skaits šajā saistīšanas punktāMethods
add_channel(name, value, type=None)boolAtgriešanas tips
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceAtgriež atslēgkadra secību nosauktajam kanālam KeyframeSequence Izveido jaunu
bind_keyframe_sequence(channel_name, sequence)NoneSaista esošu KeyframeSequence ar kanālu
reset_channels()NoneNoņem visus kanālus

AnimationChannel

Satur vienu skalāru KeyframeSequence vienam animētam komponentam.

Methods

MethodsMethodsMethods
namestrKanāla nosaukums (piemēram. "X", "Y", "Z")
default_valueAnyVērtība, kas tiek izmantota, ja nav atslēgkadru datu
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Kārtots saraksts ar KeyFrame paraugi vienam skalāram kanālam. Manto no A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Izveido tukšu atslēgkadru secību

Methods

MethodsMethodsMethods
namestrSecības nosaukums
key_frameslist[KeyFrame]Tikai lasāms saraksts ar atslēgkadriem hronoloģiskā secībā
pre_behaviorExtrapolationUzvedība pirms pirmā atslēgkadra
post_behaviorExtrapolationUzvedība pēc pēdējā atslēgkadra
bind_point`BindPointNone`

Methods

MethodsAtgriešanas tipsMethods
add(time, value, interpolation=Interpolation.LINEAR)NonePievieno atslēgkadru pie time (sekundēs) ar doto value un interpolation režīms
reset()NoneNotīra visus atslēgkadrus un atiestata pre/post uzvedību

KeyFrame

Viena laika–vērtības paraugs iekš KeyframeSequence.

Methods

KeyFrame objekti tiek izveidoti iekšēji ar KeyframeSequence.add(); neizveidojiet tos tieši.

Methods

MethodsMethodsMethods
timefloatLaika pozīcija sekundēs
valuefloatAnimēta vērtība šajā brīdī
interpolationInterpolationInterpolācijas režīms, kas piemērots starp šo atslēgkadru un nākamo
tangent_weight_modeWeightedModeTangenta svara režīms (Bezier līknes)
step_modeStepModeSolis uzvedība (PREVIOUS_VALUE vai NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatIzejošā tangenta svars
next_in_weightfloatIenākošā tangenta svars
tensionfloatStīpuma parametrs (TCB spline)
continuityfloatTurpinājuma parametrs (TCB spline)
biasfloatNovirzes parametrs (TCB spline)
independent_tangentboolMethods True, iekšu un izejas tangenti ir neatkarīgi
flatboolMethods True, tangenti ir fiksēti plakani
time_independent_tangentboolMethods True, tangenta virziens ir neatkarīgs no laika skalas

Methods

Nosaka, kā vērtības tiek interpolētas starp secīgiem atslēgkadriem.

MethodsMethods
CONSTANTMethods
LINEARLineāra interpolācija starp vērtībām
BEZIERKubiskais Bezier, izmantojot iekšu/izejas tangentes
B_SPLINEVienmērīgs B-spline
CARDINAL_SPLINEKardinala spline
TCB_SPLINESpraugas–turpinājuma–novirzes spline

Methods

Nosaka animācijas uzvedību ārpus pirmā un pēdējā atslēgkadra.

MethodsMethods
CONSTANTSaglabāt robežvērtību
GRADIENTEkstrapolēt pie robežatslēgkadra tangenta gradienta
CYCLEAtkārtot atslēgkadra diapazonu (cikli)
CYCLE_RELATIVEAtkārtot ar kumulatīvu nobīdi (attiecīgi pret beigu vērtību)
OSCILLATEPing-pong (maiņstrādes atkārtojums uz priekšu un atpakaļ)

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

Skatīt arī

 Latviešu