AnimationMixer, AnimationClip, KeyframeTrack و دیگر کلاسهای انیمیشن API Three.js
Three.js یک Animation API قدرتمند دارد که به شما اجازه میدهد حرکات و انیمیشنهای پیشرفته بسازید.
۱️⃣ کلاسهای اصلی Animation
کلاس | توضیح |
---|---|
AnimationMixer | مدیریت انیمیشنها برای یک Object3D |
AnimationClip | نگهداری دادههای انیمیشن (Keyframes) |
KeyframeTrack | مسیر تغییر مقادیر (Position, Rotation, Scale) |
PropertyBinding | اتصال KeyframeTrack به ویژگی Object3D |
AnimationAction | یک نمونه قابل پخش از AnimationClip |
۲️⃣ AnimationClip و KeyframeTrack
🔹 KeyframeTrack
-
تعریف مسیر تغییر ویژگیها با زمان
-
انواع رایج:
-
VectorKeyframeTrack
→ موقعیت (position) -
QuaternionKeyframeTrack
→ چرخش (rotation) -
NumberKeyframeTrack
→ مقادیر عددی (scale یا custom property)
-
🔹 مثال KeyframeTrack
🔹 AnimationClip
-
مجموعهای از KeyframeTrackها
-
'moveCube'
→ نام انیمیشن -
2
→ طول کل انیمیشن به ثانیه -
[positionKF]
→ آرایه Trackها
۳️⃣ AnimationMixer و AnimationAction
🔹 AnimationMixer
-
مدیریت پخش، توقف، و blend بین انیمیشنها
🔹 بروزرسانی Mixer در حلقه انیمیشن
۴️⃣ مثال کامل انیمیشن مکعب
📌 این مثال نشان میدهد:
-
چگونه یک Object3D حرکت میکند
-
ساخت KeyframeTrack، Clip و Mixer
-
بروزرسانی انیمیشن در حلقه render
۵️⃣ نکات مهم
-
AnimationClip میتواند شامل چند Track باشد (مثلا موقعیت + چرخش + مقیاس)
-
AnimationMixer اجازه blending و cross-fade بین انیمیشنها را میدهد
-
مناسب مدلهای 3D آماده، اسکلتبندی (SkinnedMesh) و بازیها