Animation — Aspose.3D FOSS for Python API Reference

Enumerations

Sistem animasi Aspose.3D disusun mengikut hierarki objek yang mengikat data berjangka masa kepada sifat-sifat adegan.

  • Enumerations AnimationClip adalah julat main balik bernama (e.g. “Walk”, “Run”) yang dipegang oleh sebuah Scene.
  • Enumerations AnimationNode terletak di dalam klip dan mengikat data beranimasi kepada sifat khusus pada objek adegan.
  • Sebuah BindPoint menyambungkan satu AnimationNode kepada satu yang dinamakan Property pada satu A3DObject.
  • Enumerations AnimationChannel menyimpan satu skalar tunggal KeyframeSequence di dalam titik ikatan.
  • Sebuah KeyframeSequence adalah senarai teratur bagi KeyFrame sampel masa–nilai.

Semua kelas animasi berada dalam aspose.threed.animation sub-pakej, walaupun ia juga boleh diakses secara langsung dari aspose.threed.

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

AnimationClip

Bekas bernama untuk satu julat main balik. Sebuah Scene boleh memegang berbilang klip. Mewarisi dari SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Mencipta satu klip dengan nama pilihan

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama klip (cth. "Walk")
descriptionstrDeskripsi pilihan
startfloatMasa mula dalam saat
stopfloatMasa tamat dalam saat
animationslist[AnimationNode]Senarai hanya-baca nod animasi dalam klip ini
propertiesPropertyCollectionSifat tersuai

Enumerations

EnumerationsJenis PulanganEnumerations
create_animation_node(node_name)AnimationNodeMencipta dan mendaftar yang baru AnimationNode dalam klip ini

AnimationNode

Mengikat satu AnimationClip kepada satu atau lebih BindPoint objek yang menyasarkan sifat objek adegan. Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Mencipta nod animasi dengan nama pilihan

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama nod
bind_pointslist[BindPoint]Senarai hanya-baca titik ikatan
sub_animationslist[AnimationNode]Senarai hanya-baca nod animasi anak
propertiesPropertyCollectionSifat tersuai

Enumerations

EnumerationsJenis PulanganEnumerations
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

Menyambungkan satu AnimationNode kepada satu Property pada satu A3DObject. Setiap BindPoint boleh memegang berbilang AnimationChannel objek (satu per komponen skalar). Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertySifat objek-seni yang menjadi sasaran titik ikatan ini
channels_countintBilangan saluran animasi dalam titik ikatan ini

Enumerations

EnumerationsJenis PulanganEnumerations
add_channel(name, value, type=None)boolMenambah saluran bernama dengan nilai lalai
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceMencipta yang baru KeyframeSequence untuk titik ikatan ini
bind_keyframe_sequence(channel_name, sequence)NoneMengaitkan yang sedia ada KeyframeSequence dengan saluran
reset_channels()NoneMembuang semua saluran

AnimationChannel

Menyimpan satu skalar KeyframeSequence untuk satu komponen beranimasi.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama saluran (contoh. "X", "Y", "Z")
default_valueAnyNilai yang digunakan apabila tiada data keyframe wujud
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Senarai teratur bagi KeyFrame sampel untuk satu saluran skalar. Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Mencipta urutan keyframe kosong

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama urutan
key_frameslist[KeyFrame]Senarai baca-sahaja keyframe dalam susunan kronologi
pre_behaviorExtrapolationKelakuan sebelum keyframe pertama
post_behaviorExtrapolationKelakuan selepas keyframe terakhir
bind_point`BindPointNone`

Enumerations

EnumerationsJenis PulanganEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneMenambah keyframe pada time (saat) dengan value dan interpolation mode
reset()NoneMembersihkan semua keyframe dan menetapkan semula kelakuan pra/post

KeyFrame

Satu sampel nilai masa dalam satu KeyframeSequence.

Enumerations

KeyFrame objek dicipta secara dalaman oleh KeyframeSequence.add(); jangan bina secara langsung.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatKedudukan masa dalam saat
valuefloatNilai animasi pada masa ini
interpolationInterpolationMod interpolasi yang digunakan antara bingkai kunci ini dan yang seterusnya
tangent_weight_modeWeightedModeMod berat tangen (lengkung Bezier)
step_modeStepModeKelakuan langkah (PREVIOUS_VALUE atau NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatBerat tangen keluar
next_in_weightfloatBerat tangen masuk
tensionfloatParameter ketegangan (spline TCB)
continuityfloatParameter kesinambungan (TCB spline)
biasfloatParameter bias (TCB spline)
independent_tangentboolEnumerations True, tangen masuk dan keluar adalah bebas
flatboolEnumerations True, tangen dikekang rata
time_independent_tangentboolEnumerations True, arah tangen adalah bebas daripada skala masa

Enumerations

Mengawal bagaimana nilai diinterpolasi antara bingkai kunci berturutan.

EnumerationsEnumerations
CONSTANTEnumerations
LINEARInterpolasi linear antara nilai
BEZIERBezier kubik menggunakan tangen masuk/keluar
B_SPLINEB-spline seragam
CARDINAL_SPLINESpline kardinal
TCB_SPLINESpline Tegangan–Kesinambungan–Bias

Enumerations

Mengawal kelakuan animasi di luar bingkai kunci pertama dan terakhir.

EnumerationsEnumerations
CONSTANTPegang nilai sempadan
GRADIENTEkstrapolasi pada kecerunan tangen keyframe sempadan
CYCLEUlang julat bingkai kunci (gelung)
CYCLE_RELATIVEUlang dengan offset kumulatif (relatif kepada nilai akhir)
OSCILLATEPing-pong (ulangan maju dan mundur secara bergantian)

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

Lihat Juga

 Bahasa Melayu