لماذا تبدو الرسوم المتحركة "آلية"؟
تصبح الرسوم المتحركة آلية عندما يتحرك كائن بسرعة ثابتة أو يتوقف فجأة. الحركة الطبيعية تتسارع في البداية وتتباطأ في النهاية.
الأداة المحورية: lerp()
let x = 0;
function draw() {
x = lerp(x, mouseX, 0.1); // كل إطار، تقدم 10% نحو الهدف
ellipse(x, height/2, 20, 20);
}
المعامل 0.1 يتحكم في السرعة. هذا يخلق ease-out طبيعياً: سريع في البداية، بطيء قرب الهدف.
منحنيات التخفيف
function smoothstep(t) { return t*t*(3 - 2*t); }
let progress = 0;
function draw() {
progress = min(progress + 0.02, 1);
let t = smoothstep(progress);
let x = lerp(startX, endX, t);
}
مشكلة معدل الإطارات
استخدم deltaTime لتطبيع الحركة عبر الأجهزة:
let dt = deltaTime / 16.67;
x = lerp(x, mouseX, 0.1 * dt);
قواعد عملية
1. lerp() بمعامل منخفض لتتبع الفأرة
2. تخفيف يدوي للرسوم المتحركة المُشغَّلة بالحدث
3. deltaTime للتوزيع على أجهزة متعددة
4. sin() للحركة الإيقاعية والاهتزازية