mf-characterlisted
Install: claude install-skill arielaizn/motion-forge-plugin
# mf-character · לתת חיים
סרט דוגמה: `../motion-forge/studio/gallery/10_character.html`. כלים: `spring`, `E.*`, `kf`, `P.catmull`, `wiggle`, `step`.
## השלד
הדמות היא עץ של מפרקים. כל מפרק = `{ x, y, rot }` יחסית להורה, והציור נעשה ב-`c.save/translate/rotate` רקורסיבי.
```js
const rig = { hip: { x: 0, y: 0, kids: { spine: { x: 0, y: -80, kids: { head: { x: 0, y: -70 }, armL: {...}, armR: {...} } }, legL: {...}, legR: {...} } } };
function pose(t) { return { hip: { y: bob(t) }, spine: { rot: .05 * Math.sin(t * 6) }, armL: { rot: swing(t) }, ... }; }
```
`pose(t)` מחזיר את כל הזוויות לפי הזמן, ו-`drawRig(c, rig, pose(t))` מצייר. גפיים גמישים (rubber hose): צייר רגל או יד כ-`P.catmull`
בין הכתף לכף, עם כיפוף שנגזר מהזווית.
## 12 העקרונות, בקוד
| עיקרון | איך |
|---|---|
| Squash & stretch | `sx = 1 + k, sy = 1 / (1 + k)` שומר נפח. נחיתה: k שלילי ל-0.08s ואז spring חזרה |
| Anticipation | לפני קפיצה: כריעה 0.15 עד 0.25s (`E.inOutSine`) |
| Follow through | שיער, אוזניים, זנב: spring על זווית שמפגרת אחרי הגוף ב-0.05 עד 0.1s |
| Arcs | תנועות יד ונחיתות על קשת (`arcPath`), אף פעם לא בקו ישר |
| Slow in / out | כל פוזה עם easing |
| Secondary action | מצמוץ כל 2.5 עד 4 שניות (זמנים מ-`hash`), נשימה (`sin` איטי על החזה), `wiggle` זעיר על הראש |
| Timing | הליכה: מחזור 0.9 עד 1.1s. ריצה: 0.45 עד 0.6s. קפיצה: 0.25 כריעה + 0.5 אוויר + 0.2 נחיתה |
| Exaggeration | הבעות גדולות: גבות, עיניים שגדלות בהפתעה, פה בצורת O |
## פנים
עיניים גדולות עם ברק לבן (תמיד באותו כיוון אור), אישונים ש