Animation classes & utilities
Three.js یک Animation API کامل دارد که شامل کلاسها و ابزارهای مختلف برای انیمیشنسازی اشیاء، مدلها و اسکلتبندی است.
۱️⃣ کلاسهای اصلی Animation
کلاس | توضیح |
---|---|
AnimationMixer | مدیریت و پخش انیمیشنها روی یک Object3D |
AnimationClip | مجموعهای از KeyframeTrackها که انیمیشن را تعریف میکنند |
KeyframeTrack | مسیر تغییر یک ویژگی (Position, Rotation, Scale یا Custom) |
AnimationAction | نمونه قابل پخش از یک AnimationClip که میتوان آن را Play, Pause, Stop کرد |
PropertyBinding | اتصال Track به ویژگی Object3D یا مدل اسکلتبندی (SkinnedMesh) |
۲️⃣ KeyframeTrack
-
VectorKeyframeTrack → تغییر موقعیت (position)
-
QuaternionKeyframeTrack → تغییر چرخش (rotation)
-
NumberKeyframeTrack → تغییر مقادیر عددی (scale یا custom property)
مثال ساده KeyframeTrack
۳️⃣ AnimationClip
-
مجموعهای از Trackها
-
تعریف طول و نام انیمیشن
۴️⃣ AnimationMixer و AnimationAction
ایجاد Mixer و پخش انیمیشن
بروزرسانی Mixer در حلقه animate
۵️⃣ انیمیشن مدلهای اسکلتبندی (SkinnedMesh)
-
برای مدلهای Rigged / اسکلتبندی
-
AnimationMixer با AnimationClipهای FBX یا glTF کار میکند
۶️⃣ Animation Utilities
-
THREE.Clock → مدیریت زمان بین فریمها
-
THREE.LoopOnce, LoopRepeat, LoopPingPong → کنترل تکرار انیمیشن
-
crossFadeTo → ترکیب نرم بین انیمیشنها
مثال Crossfade
۷️⃣ نکات مهم
-
AnimationClip میتواند شامل چند Track باشد (position + rotation + scale)
-
AnimationMixer امکان کنترل پیشرفته مثل Pause, Stop, Fade, Loop را میدهد
-
مناسب برای مدلهای glTF با اسکلتبندی و بازیهای 3D