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

מכולה בעלת שם עבור טווח הפעלה אחד. A 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
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

רשימה מסודרת של KeyFrame דגימות לערוץ סקלרי יחיד. יורש מ A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)יוצר סדרת keyframe ריקה

Example

ExampleExampleExample
namestrשם הסדרה
key_frameslist[KeyFrame]רשימת keyframes לקריאה בלבד בסדר כרונולוגי
pre_behaviorExtrapolationהתנהגות לפני ה-keyframe הראשון
post_behaviorExtrapolationהתנהגות אחרי ה-keyframe האחרון
bind_point`BindPointNone`

Example

Exampleסוג החזרהExample
add(time, value, interpolation=Interpolation.LINEAR)Noneמוסיף keyframe ב time (שניות) עם הנתון value ו interpolation מצב
reset()Noneמוחק את כל ה-keyframes ומאפס את ההתנהגות לפני/אחרי

KeyFrame

דוגמת ערך זמן יחיד ב- KeyframeSequence.

Example

KeyFrame אובייקטים נוצרו פנימית על ידי KeyframeSequence.add(); אל תבנה אותם ישירות.

Example

ExampleExampleExample
timefloatמיקום זמן בשניות
valuefloatערך מונפש בזמן זה
interpolationInterpolationמצב אינטרפולציה המיושם בין פריים מפתח זה לפריים הבא
tangent_weight_modeWeightedModeמצב משקל המשיק (עקומות Bezier)
step_modeStepModeהתנהגות שלב (PREVIOUS_VALUE או NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatמשקל המשיק היוצא
next_in_weightfloatמשקל המשיק הנכנס
tensionfloatפרמטר המתח (TCB spline)
continuityfloatפרמטר רציפות (TCB spline)
biasfloatפרמטר הטייה (TCB spline)
independent_tangentboolExample True, הטנגנטים פנימה והחוצה הם עצמאיים
flatboolExample True, הטנגנטים קבועים שטוחים
time_independent_tangentboolExample True, כיוון הטנגנט הוא עצמאי מהקנה מידה של זמן

Example

שולט באופן שבו ערכים מתווכים בין מסגרות מפתח רצופות.

ExampleExample
CONSTANTExample
LINEARאינטרפולציה ליניארית בין ערכים
BEZIERBezier קוביית עם טנגנטים פנימה/החוצה
B_SPLINEB‑ספליין אחיד
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")

ראה גם

 עברית