Animation — Aspose.3D FOSS for Python API Reference

Enumerations

Sistem animasi Aspose.3D diatur di sekitar hierarki objek yang mengikat data ber‑sampel waktu ke properti scene.

  • Enumerations AnimationClip adalah rentang pemutaran bernama (misalnya “Walk”, “Run”) yang disimpan oleh a Scene.
  • Enumerations AnimationNode berada di dalam sebuah klip dan mengikat data animasi ke properti spesifik pada objek-objek dalam adegan.
  • Sebuah BindPoint menghubungkan sebuah AnimationNode ke sebuah bernama Property pada sebuah A3DObject.
  • Enumerations AnimationChannel menyimpan satu skalar KeyframeSequence di dalam titik ikatan.
  • Sebuah KeyframeSequence adalah daftar terurut dari KeyFrame sampel waktu–nilai.

Semua kelas animasi berada di aspose.threed.animation sub-paket, meskipun mereka juga dapat diakses langsung dari aspose.threed.

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

AnimationClip

Kontainer bernama untuk satu rentang pemutaran. Sebuah Scene dapat menyimpan beberapa klip. Mewarisi dari SceneObject.

Enumerations

EnumerationsEnumerations
AnimationClip(name=None)Membuat klip dengan nama opsional

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama klip (misalnya. "Walk")
descriptionstrDeskripsi opsional
startfloatWaktu mulai dalam detik
stopfloatWaktu akhir dalam detik
animationslist[AnimationNode]Daftar read-only node animasi dalam klip ini
propertiesPropertyCollectionProperti khusus

Enumerations

EnumerationsTipe PengembalianEnumerations
create_animation_node(node_name)AnimationNodeMembuat dan mendaftarkan yang baru AnimationNode dalam klip ini

AnimationNode

Mengikat sebuah AnimationClip ke satu atau lebih BindPoint objek yang menargetkan properti scene-object. Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerations
AnimationNode(name=None)Membuat node animasi dengan nama opsional

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama node
bind_pointslist[BindPoint]Daftar read-only titik bind
sub_animationslist[AnimationNode]Daftar read-only node animasi anak
propertiesPropertyCollectionProperti khusus

Enumerations

EnumerationsTipe PengembalianEnumerations
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

Menghubungkan sebuah AnimationNode ke satu Property pada sebuah A3DObject. Setiap BindPoint dapat menampung banyak AnimationChannel objek (satu per komponen skalar). Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerationsEnumerations
propertyPropertyProperti scene-object yang menjadi target titik bind ini
channels_countintJumlah saluran animasi pada titik bind ini

Enumerations

EnumerationsTipe PengembalianEnumerations
add_channel(name, value, type=None)boolMenambahkan saluran bernama dengan nilai default
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceMembuat baru KeyframeSequence untuk titik bind ini
bind_keyframe_sequence(channel_name, sequence)NoneMengaitkan yang ada KeyframeSequence dengan sebuah saluran
reset_channels()NoneMenghapus semua saluran

AnimationChannel

Menyimpan satu skalar KeyframeSequence untuk satu komponen animasi.

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama saluran (misalnya. "X", "Y", "Z")
default_valueAnyNilai yang digunakan ketika tidak ada data keyframe
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Daftar terurut dari KeyFrame sampel untuk satu saluran skalar. Mewarisi dari A3DObject.

Enumerations

EnumerationsEnumerations
KeyframeSequence(name=None)Membuat urutan keyframe kosong

Enumerations

EnumerationsEnumerationsEnumerations
namestrNama urutan
key_frameslist[KeyFrame]Daftar keyframe hanya-baca dalam urutan kronologis
pre_behaviorExtrapolationPerilaku sebelum keyframe pertama
post_behaviorExtrapolationPerilaku setelah keyframe terakhir
bind_point`BindPointNone`

Enumerations

EnumerationsTipe PengembalianEnumerations
add(time, value, interpolation=Interpolation.LINEAR)NoneMenambahkan keyframe pada time (detik) dengan value dan interpolation mode
reset()NoneMenghapus semua keyframe dan mengatur ulang perilaku pra/pasca

KeyFrame

Satu contoh nilai-waktu dalam sebuah KeyframeSequence.

Enumerations

KeyFrame objek dibuat secara internal oleh KeyframeSequence.add(); jangan buat mereka secara langsung.

Enumerations

EnumerationsEnumerationsEnumerations
timefloatPosisi waktu dalam detik
valuefloatNilai teranimasi pada waktu ini
interpolationInterpolationMode interpolasi yang diterapkan antara keyframe ini dan yang berikutnya
tangent_weight_modeWeightedModeMode bobot tangen (kurva Bezier)
step_modeStepModePerilaku langkah (PREVIOUS_VALUE atau NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatBobot tangen keluar
next_in_weightfloatBobot tangen masuk
tensionfloatParameter ketegangan (spline TCB)
continuityfloatParameter kontinuitas (TCB spline)
biasfloatParameter bias (TCB spline)
independent_tangentboolEnumerations True, tangens masuk dan keluar bersifat independen
flatboolEnumerations True, tangens dikunci datar
time_independent_tangentboolEnumerations True, arah tangens bersifat independen dari skala waktu

Enumerations

Mengontrol bagaimana nilai diinterpolasi antara keyframe berurutan.

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

Enumerations

Mengontrol perilaku animasi di luar keyframe pertama dan terakhir.

EnumerationsEnumerations
CONSTANTTahan nilai batas
GRADIENTEkstrapolasi pada gradien tangen dari keyframe batas
CYCLEUlangi rentang keyframe (loop)
CYCLE_RELATIVEUlangi dengan offset kumulatif (relatif terhadap nilai akhir)
OSCILLATEPing-pong (pengulangan 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 Indonesia