Animation — Aspose.3D FOSS for Python API Reference

Example

سیستم انیمیشن Aspose.3D حول یک سلسله‌مراتب از اشیائی سازماندهی شده است که داده‌های نمونه‌برداری‌شده در زمان را به ویژگی‌های صحنه متصل می‌کنند.

  • Example AnimationClip یک بازه پخش نام‌گذاری‌شده (مثلاً “Walk”، “Run”) است که توسط یک Scene.
  • Example AnimationNode درون یک کلیپ زندگی می‌کند و داده‌های انیمیشنی را به ویژگی‌های خاصی از اشیای صحنه متصل می‌کند.
  • A BindPoint یک … را متصل می‌کند AnimationNode به یک نام‌گذاری‌شده Property روی یک A3DObject.
  • Example AnimationChannel یک مقدار اسکالر تک را نگه می‌دارد KeyframeSequence درون یک نقطه بایند.
  • A KeyframeSequence یک فهرست مرتب از KeyFrame نمونه‌های زمان‑مقدار.

تمام کلاس‌های انیمیشن در aspose.threed.animation زیرپکیج، اگرچه آن‌ها همچنین به‌صورت مستقیم از aspose.threed.

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

AnimationClip

یک محفظه نام‌دار برای یک بازه پخش. یک Scene ممکن است چندین کلیپ را در خود داشته باشد. ارث‌بری از SceneObject.

Example

ExampleExample
AnimationClip(name=None)یک کلیپ را با نام اختیاری ایجاد می‌کند

Example

ExampleExampleExample
namestrنام کلیپ (مثلاً. "Walk")
descriptionstrتوضیح اختیاری
startfloatزمان شروع بر حسب ثانیه
stopfloatزمان پایان بر حسب ثانیه
animationslist[AnimationNode]فهرست فقط‌خواندنی گره‌های انیمیشن در این کلیپ
propertiesPropertyCollectionویژگی‌های سفارشی

Example

Exampleنوع بازگشتExample
create_animation_node(node_name)AnimationNodeیک مورد جدید ایجاد و ثبت می‌کند AnimationNode در این کلیپ

AnimationNode

متصل می‌کند AnimationClip به یک یا چند BindPoint اشیائی که ویژگی‌های صحنه‑شی را هدف می‌گیرند. ارث می‌برد از A3DObject.

Example

ExampleExample
AnimationNode(name=None)یک گره انیمیشن با نام اختیاری ایجاد می‌کند

Example

ExampleExampleExample
namestrنام گره
bind_pointslist[BindPoint]فهرست فقط‌خواندنی نقاط اتصال
sub_animationslist[AnimationNode]فهرست فقط‌خواندنی گره‌های انیمیشن فرزند
propertiesPropertyCollectionویژگی‌های سفارشی

Example

Exampleنوع بازگشتExample
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

متصل می‌شود به یک AnimationNode به یک Property روی یک A3DObject. هر BindPoint ممکن است چندین AnimationChannel اشیاء (یک برای هر مؤلفه اسکالر). ارث‌بری از A3DObject.

Example

ExampleExampleExample
propertyPropertyویژگی صحنه‑شی که این نقطه بایند به آن هدف می‌گیرد
channels_countintتعداد کانال‌های انیمیشن در این نقطه بایند

Example

Exampleنوع بازگشتExample
add_channel(name, value, type=None)boolیک کانال نام‌گذاری‌شده با مقدار پیش‌فرض اضافه می‌کند
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceیک مورد جدید ایجاد می‌کند KeyframeSequence برای این نقطه اتصال
bind_keyframe_sequence(channel_name, sequence)Noneیک مورد موجود را مرتبط می‌کند KeyframeSequence با یک کانال
reset_channels()Noneتمام کانال‌ها را حذف می‌کند

AnimationChannel

یک مقدار اسکالر تک را نگه می‌دارد KeyframeSequence برای یک مؤلفهٔ انیمیشنی.

Example

ExampleExampleExample
namestrنام کانال (مثلاً. "X", "Y", "Z")
default_valueAnyمقداری که وقتی داده‌های فریم کلیدی وجود ندارد استفاده می‌شود
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

یک فهرست مرتب از KeyFrame نمونه‌ها برای یک کانال اسکالر تک. ارث‌بری از A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)یک دنباله فریم کلیدی خالی ایجاد می‌کند

Example

ExampleExampleExample
namestrنام دنباله
key_frameslist[KeyFrame]فهرست فقط‑خواندنی فریم‌های کلیدی به ترتیب زمانی
pre_behaviorExtrapolationرفتار قبل از اولین فریم کلیدی
post_behaviorExtrapolationرفتار پس از آخرین فریم کلیدی
bind_point`BindPointNone`

Example

Exampleنوع بازگشتExample
add(time, value, interpolation=Interpolation.LINEAR)Noneیک فریم کلیدی را در time (ثانیه) با مقدار داده شده value و interpolation حالت
reset()Noneتمام فریم‌های کلیدی را پاک می‌کند و رفتار پیش/پس را بازنشانی می‌نماید

KeyFrame

یک نمونه تک‌مقدار زمان در یک KeyframeSequence.

Example

KeyFrame اشیاء به‌صورت داخلی توسط KeyframeSequence.add(); آن‌ها را به‌صورت مستقیم ساخت نکنید.

Example

ExampleExampleExample
timefloatموقعیت زمان به ثانیه
valuefloatمقدار انیمیشن در این زمان
interpolationInterpolationحالت درون‌یابی اعمال‌شده بین این فریم کلیدی و فریم بعدی
tangent_weight_modeWeightedModeحالت وزن تانژانت (Bezier curves)
step_modeStepModeرفتار گام (PREVIOUS_VALUE یا NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatوزن تانژانت خروجی
next_in_weightfloatوزن تانژانت ورودی
tensionfloatپارامتر کشش (TCB spline)
continuityfloatپارامتر پیوستگی (اسپلین TCB)
biasfloatپارامتر بایاس (اسپلین TCB)
independent_tangentboolExample True, تانژانت‌های ورودی و خروجی مستقل هستند
flatboolExample True, تانژانت‌ها به‌صورت صاف قفل شده‌اند
time_independent_tangentboolExample True, جهت تانژانت مستقل از مقیاس زمان است

Example

کنترل می‌کند که مقادیر چگونه بین فریم‌های کلیدی متوالی درون‌یابی می‌شوند.

ExampleExample
CONSTANTExample
LINEARدرون‌یابی خطی بین مقادیر
BEZIERBezier مکعبی با استفاده از تانژانت‌های ورودی/خروجی
B_SPLINEاسپلین B یکنواخت
CARDINAL_SPLINEاسپلین کاردینال
TCB_SPLINEاسپلین کشش–پیوستگی–تمایل

Example

کنترل رفتار انیمیشن فراتر از اولین و آخرین فریم کلیدی.

ExampleExample
CONSTANTمقدار مرزی را نگه‌دار
GRADIENTدر گرادیان مماسی keyframe مرزی برون‌یابی کنید
CYCLEمحدوده keyframe را تکرار کنید (حلقه‌ها)
CYCLE_RELATIVEبا جابجایی تجمعی تکرار کنید (نسبت به مقدار نهایی)
OSCILLATEپینگ‑پنگ (تکرار متناوب به جلو و عقب)

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

موارد مرتبط

 فارسی