Animation — Aspose.3D FOSS for Python API Reference

Example

Aspose.3D animasyon sistemi, zaman örnekli verileri sahne özelliklerine bağlayan nesneler hiyerarşisi etrafında düzenlenmiştir.

  • Example AnimationClip adlandırılmış bir oynatma aralığıdır (ör. “Walk”, “Run”) bir Scene.
  • Example AnimationNode bir klip içinde bulunur ve animasyon verilerini sahne nesnelerindeki belirli özelliklere bağlar.
  • Bir BindPoint bağlar bir AnimationNode adlandırılmış bir Property üzerinde bir A3DObject.
  • Example AnimationChannel tek bir skaler tutar KeyframeSequence bir bağlama noktasının içinde.
  • Bir KeyframeSequence sıralı bir … listesidir KeyFrame zaman‑değer örnekleri.

Tüm animasyon sınıfları şuradadır aspose.threed.animation alt paketinde, ancak doğrudan şuradan da erişilebilir aspose.threed.

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

AnimationClip

Bir oynatma aralığı için adlandırılmış bir kapsayıcı. Bir Scene birden fazla klip tutabilir. Şuradan miras alır SceneObject.

Example

ExampleExample
AnimationClip(name=None)İsteğe bağlı bir adla bir klip oluşturur

Example

ExampleExampleExample
namestrKlip adı (ör. "Walk")
descriptionstrİsteğe bağlı açıklama
startfloatSaniye cinsinden başlangıç zamanı
stopfloatSaniye cinsinden bitiş zamanı
animationslist[AnimationNode]Bu klipteki animasyon düğümlerinin yalnızca okunabilir listesi
propertiesPropertyCollectionÖzel özellikler

Example

ExampleDönüş TipiExample
create_animation_node(node_name)AnimationNodeYeni birini oluşturur ve kaydeder AnimationNode bu klipte

AnimationNode

Birini bağlar AnimationClip bir veya daha fazla BindPoint sahne-nesne özelliklerini hedefleyen nesneler. Şu sınıftan miras alır A3DObject.

Example

ExampleExample
AnimationNode(name=None)İsteğe bağlı adla bir animasyon düğümü oluşturur

Example

ExampleExampleExample
namestrDüğüm adı
bind_pointslist[BindPoint]Bağlama noktalarının yalnızca okunabilir listesi
sub_animationslist[AnimationNode]Alt animasyon düğümlerinin yalnızca okunabilir listesi
propertiesPropertyCollectionÖzel özellikler

Example

ExampleDönüş TipiExample
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

Bağlar bir AnimationNode tek bir Property üzerinde bir A3DObject. Her BindPoint birden fazla tutabilir AnimationChannel nesneler (her skaler bileşen başına bir). Şu sınıftan miras alır A3DObject.

Example

ExampleExampleExample
propertyPropertyBu bağlama noktasının hedeflediği sahne-nesne özelliği
channels_countintBu bağlama noktasındaki animasyon kanallarının sayısı

Example

ExampleDönüş TipiExample
add_channel(name, value, type=None)boolVarsayılan bir değerle adlandırılmış bir kanal ekler
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceYeni bir şey oluşturur KeyframeSequence bu bağlama noktası için
bind_keyframe_sequence(channel_name, sequence)NoneMevcut birini ilişkilendirir KeyframeSequence bir kanal ile
reset_channels()NoneTüm kanalları kaldırır

AnimationChannel

Tek bir skaler tutar KeyframeSequence bir animasyonlu bileşen için.

Example

ExampleExampleExample
namestrKanal adı (ör. "X", "Y", "Z")
default_valueAnyKeyframe verisi bulunmadığında kullanılan değer
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Sıralı bir liste KeyFrame Tek bir skaler kanal için örnekler. Şuradan miras alır A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)Boş bir keyframe dizisi oluşturur

Example

ExampleExampleExample
namestrDizi adı
key_frameslist[KeyFrame]Kronolojik sırada yalnızca okunabilir keyframe listesi
pre_behaviorExtrapolationİlk keyframe’den önceki davranış
post_behaviorExtrapolationSon keyframe’den sonraki davranış
bind_point`BindPointNone`

Example

ExampleDönüş TipiExample
add(time, value, interpolation=Interpolation.LINEAR)NoneŞu konuma bir keyframe ekler time (saniye) verilen value ve interpolation mod
reset()NoneTüm keyframe’leri temizler ve pre/post davranışı sıfırlar

KeyFrame

Tek bir zaman‑değeri örneği içinde bir KeyframeSequence.

Example

KeyFrame nesneler dahili olarak … tarafından oluşturulur KeyframeSequence.add(); doğrudan oluşturmayın.

Example

ExampleExampleExample
timefloatSaniye cinsinden zaman konumu
valuefloatBu zamandaki animasyonlu değer
interpolationInterpolationBu anahtar kare ile bir sonraki arasına uygulanan interpolasyon modu
tangent_weight_modeWeightedModeTeğet ağırlık modu (Bezier eğrileri)
step_modeStepModeAdım davranışı (PREVIOUS_VALUE veya NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatÇıkış teğet ağırlığı
next_in_weightfloatGelen teğet ağırlığı
tensionfloatGerginlik parametresi (TCB spline)
continuityfloatSüreklilik parametresi (TCB spline)
biasfloatBias parametresi (TCB spline)
independent_tangentboolExample True, giriş ve çıkış teğetleri bağımsızdır
flatboolExample True, teğetler sabit düz
time_independent_tangentboolExample True, teğet yönü zaman ölçeklemesinden bağımsızdır

Example

Değerlerin ardışık anahtar kareler arasında nasıl ara değer alındığını kontrol eder.

ExampleExample
CONSTANTExample
LINEARDeğerler arasında doğrusal interpolasyon
BEZIERGiriş/çıkış teğetleri kullanılan kübik Bezier
B_SPLINETekdüzen B-spline
CARDINAL_SPLINEKardinal spline
TCB_SPLINEGerilim–Süreklilik–Bias spline

Example

İlk ve son anahtar karelerin ötesindeki animasyon davranışını kontrol eder.

ExampleExample
CONSTANTSınır değerini tut
GRADIENTSınır anahtar karesinin teğet eğiminde ekstrapole et
CYCLEAnahtar kare aralığını tekrarla (döngüler)
CYCLE_RELATIVEKümülatif ofset ile tekrarla (bitiş değerine göre)
OSCILLATEPing-pong (ileri ve geri dönüşümlü tekrar)

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

Ayrıca Bakınız

 Türkçe