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) و بازیها
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React