אנימציה
עם מחשב ועפרון
-
חלק ב'
דורון
מאיר, אנימטור קלאסי שעבר הסבה לתלת-מימד, חוקר את יחסי-הגומלין
בין שני סוגי האנימציה ומציע מספר תובנות שגילה, וכן
מספר עצות ומסקנות חשובות.
בחלק הראשון של המאמר הובאה סקירה של דרכי העבודה באנימציית
דו-מימד.
בחלק השני תיעשה השוואה לאנימציית תלת-מימד וינוסחו
עצות ומסקנות.

מאת דורון מאיר
16.04.03
בחלק
הראשון של המאמר תיארתי את שיטת העבודה המקובלת
באנימציית דו-מימד.
אז מה ההבדל בין שיטת העבודה הזו לשיטת העבודה (שלי,
לפחות) באנימציה ממוחשבת? ובכן, התשובה היא שאין כמעט
הבדל. השוני נמצא במקום אחר: האנימטור הקלאסי משתמש
בדפים.
דרך העבודה עם דפים
כל הזמן מבצעים flipping - ממש כל הזמן, גם תוך
כדי ציור - לפריים הקודם (לבדוק גדלים ותנועה), לשניים
הקודמים (לבדוק זרימה וקשתות), לשלושה או ארבעה הקודמים
(נדיר יותר, לבדיקה מעמיקה יותר של הזרימה), לבא ולקודם
(זרימה של ציור ביניים). כל מה שאתה צריך לעשות כדי
לחזור לרישום הנוכחי הוא להזיז קצת את האצבעות.
מדי פעם מחליפים את סדר הדפים - זה קל מאד. האנימטור
מסדר רצף של הציורים שאת הקשר ביניהם הוא מעוניין לבחון,
ועושה flipping ביניהם או מדליק את שולחן האור כדי לראות
אותם חופפים. אין כמובן קשר בין סדר הדפים בזמן העבודה
ובין הסדר הסופי שלהם בסרט - בניגוד לאנימציה ממוחשבת,
בה העבודה מתבצעת ישירות על ה-timeline.
אפשר בקלות לקבל אפקט onion skin(מספר ציורים
שקופים וחופפים)- בסה"כ להדליק את שולחן האור.
כאן
ההבדל משמעותי מאד, בכל אחד מהסעיפים. זה לא דומה בכלל.
חלק מהדברים, כמו החלפה פשוטה של סדר הציורים, לא קיים
בשום תוכנה. סעיפים אחרים (כמו onion skin) קיימים בחלק
מהתוכנות, אבל בד"כ לא בצורה כה פשוטה כמו הסטת
מתג.
מדוע
צורת העבודה הזו חשובה לאנימציה ממוחשבת? מכיון שצורת
העבודה הקלאסית עם דפים, ובייחוד ה-flipping, היא זו
שמפתחת אצל האנימטור הקלאסי את "תחושת התנועה"
המפורסמת - אותו רגש שמנחה את האנימטור מתי התנועה "עובדת"
ומתי לא. בדרך כלל אנימטור קלאסי עושה flipping לציורים
הקודמים לפני שהוא בכלל מתחיל לצייר את ה-keyframe הבא,
במטרה להרגיש ולדמיין איך הוא אמור להראות.
ההבדלים הקשורים בצורת העבודה עם דפים הם פתירים. אפשר
לתכנת את זה. אני מקווה שיום אחד מישהו גם יעשה את זה.
אבל אלה הבדלים שגם אם הם משמעותיים לטעמי - הם עדיין
שטחיים. ההבדלים העמוקים ביותר עדיין לפנינו.
הבדלים מהותיים בין אנימציה קלאסית ואנימציה ממוחשבת
קשר אמצעי
על כמה מההבדלים הבסיסיים עמדתי עוד בתחילת הדרך. הרגשתי,
ואני עדיין מרגיש, שבאנימציה הממוחשבת אני לא באמת עושה
את האנימציה: אני מסביר לתוכנה, דרך ממשק המשתמש, איך
אני רוצה שהיא תעשה את האנימציה. במילים אחרות,
הקשר שלי כאנימטור עם התוצאה הסופית הוא אמצעי, בעוד
שבאנימציה קלאסית (כמו גם באנימציית פלסטלינה, למשל)
הקשר הוא בלתי אמצעי. כל אנימטור שאי פעם צרח
על המחשב שלו "אבל ביקשתי שתעשה ככה!"
יכול, אני חושב, להבין למה הכוונה. שלא לדבר על features
חסרים או מסובכים מדי.
אינטואיציה
באנימציה קלאסית אפשר ליצור במהירות, בכמה קווים, סקיצה
של פוזה. בצורה כזו אפשר ליצור אנימציה פשוטה, זורמת,
הרמונית, בלי להתרכז בשום דבר מלבד התנועה והמשחק; לאחר
מכן עוברים על הציורים, "מאלפים" אותם ומוסיפים
את הפרטים הדרושים, אבל הזרימה של האנימציה המקורית,
החופשית, האינטואיטיבית - נשמרת. זה בלתי אפשרי בעליל
באנימציה תלת ממדית: כל פוזה כוללת עשרות הזזות, סיבובים,
בחירת עצמות... באנימציה קלאסית אתה חושב על הפוזה,
ואז מפרק אותה לחלקים; באנימציה ממוחשבת יש לך חלקים
ומהם אתה מנסה להרכיב את הפוזה. כף יד היא אולי הדוגמא
האולטימטיבית: פחות משנייה בעיפרון, הרבה יותר זמן תוכנה.
|
|
|
|
כף
יד בשניות ספורות. בתלת ממד זה דורש עבודה
על בערך 20 אובייקטים נפרדים (3 פרקים לכל
אצבע, 4 עצמות בכף היד עצמה ופרק היד)
|
פוזה
שלמה בפחות מחצי דקה, כולל עיצוב הדמות.
רישום אינטואיטיבי בהרבה מעבודה בתלת.
|
|
Rigging
בין שני ההבדלים האלה עומדת בעיית ה-rig. מבחינת הקשר
האמצעי, ל-rig יש ממשק משתמש מסוים, וגם לו יכולות ומגבלות
משלו. לכן ה-rig מוסיף שכבה עבה נוספת, ומרחיק עוד יותר
את האנימטור מהאנימציה שהוא מנסה ליצור. ובד בבד, נושא
ה-rig אחראי במידה רבה לבעיית הספונטאניות.
אנימטור
קלאסי חושב פחות על עצמות, ויותר על כוחות שהדמות מפעילה
ושפועלים על הדמות. הדמות מנסה להגיע למשהו גבוה? האנימטור
מדמיין כוח שכביכול מושך את הדמות למעלה, מותח אותה
דרך אצבעות הידיים ומשפיע על כל הגוף. הדמות מגרדת בראשה?
האנימטור כמעט ולא חושב על הזרוע: הוא חושב על היד.
הדמות פוגעת ברצפה אחרי קפיצה? בדמיונו הקודח של האנימטור
הקלאסי יש מין צורה מעוכה, יחד עם תחושה של משקל ושל
עוצמת הפגיעה. אין שום דבר שידמה לזה בטכנולוגית ה-rig
הנוכחית.
אשליה של תנועה
זהו לדעתי ההבדל המהותי והעמוק מכולם, והוא פשוט כל
כך שהוא נעלם מן העין. הבחנתי בו לראשונה תוך כדי עבודה
על המאמר הזה.
אנימציה
קלאסית יוצרת אשליה של תנועה. אנימציה ממוחשבת
זזה באמת. במילים אחרות: ב-10 פריימים של אנימציה
קלאסית יש 10 דמויות סטטיות, אבל הן מצוירות ומסודרות
כך שזה יראה כתנועה. ב-10 פריימים של אנימציה ממוחשבת
יש רק דמות אחת.
לשוני
פשוט אך בלתי מובן מאליו הזה יש השלכות משמעותיות. באנימציה
קלאסית אני יכול לעשות מה שאני רוצה. אם לפתע פתאום,
רק לפריים אחד, אני רוצה שהדמות שלי תימתח, או תתעוות
לחלוטין, או תהפוך לקשקוש גמור או לעגבנייה - כל דבר
- ואני חושב שזה נראה טוב בתנועה, אני עושה את זה ככה.
באנימציה ממוחשבת, לעומת זאת, אני מוגבל להזזת הדמות
שכבר קיימת, על פי ה"חוקים" שקבעתי בשלב ה-rig
- אלא אם אני ממדל משהו חדש לחלוטין, רק בשביל הפריים
הזה, וממדל גם את ציורי הביניים. בקיצור, לא משהו שאפשר
לעשות בפרויקט מסחרי רגיל.
מכאן
נובעים יתרונות וחסרונות רבים של האנימציה הממוחשבת
לעומת הקלאסית, אבל בעיקר עולה מכך המסקנה שהאנימציה
הממוחשבת הייתה, הינה וככל הנראה תמיד תהיה "מאולפת"
יחסית לקלאסית, לפחות כאשר מדובר בסגנון cartoon - פשוט
מפני שקשה יותר לעוות, לסלף ולהגזים כאשר אתה לכוד במערכת
חוקים כמו זו שקיימת בתלת ממד ולחלוטין אינה קיימת באנימציה
מצוירת.
הבדלים
חשובים נוספים בין האנימציה הקלאסית והממוחשבת:
באנימציה קלאסית הכול נעשה מזווית אחת בלבד -
זו של המצלמה. אנימציה ממוחשבת נעשית בתלת ממד - בכל
הכיוונים בו זמנית.
באנימציה קלאסית ה-inbetweener הוא אנושי, ובעל
הגיון אנושי (בדרך כלל). המחשב אינו מבין דבר, ואין
לו טיפת שכל ישר.
התוצאה באנימציה ממוחשבת ניתנת לבחינה מיידית
ולשינוי בכל רגע, בעוד שבאנימציה קלאסית אין אפשרות
לעשות טסט אחרי כל שינוי מינורי, ואחרי שלב ה-inbetween
בדרך כלל לא משנים את האנימציה. לפיכך האנימציה הקלאסית
דורשת יותר דמיון ותכנון מוקדם.
ה-keys באנימציה ממוחשבת נקבעים עבור כל אובייקט
בנפרד, בעוד שבאנימציה קלאסית ה-keys נקבעים עקרונית
עבור הדמות כולה.
מסקנות
כללי
אין תחליף לספונטאניות של הרישום. גם אנימטור
תלת-ממד ירוויח מיכולת רישום טובה, שתאפשר לו ליצור
thumbnails מוצלחים, זורמים ומעניינים ולהשתמש בהם אחר
כך כ-reference בעבודתו במחשב.
אנימציה היא דבר מספיק קשה ותובעני גם בלי סיבוכים
נלווים, אבל אנימטור תלת ממד עובד עם כפפות כפולות -
הממשק והמגבלות של התוכנה, והממשק והמגבלות של ה-rig.
דווקא משום שעבודתו מסורבלת יותר ואינטואיטיבית פחות,
אנימטור תלת ממד מוכרח להבין מה הוא עושה הרבה יותר
מאשר אנימטור קלאסי , שיכול כעקרון לדעת פחות ולתת לאינטואיציה
להנחות אותו.
מאחר והאנימציה הממוחשבת מאפשרת לצפות בתוצאה
באופן מיידי, ניתן להגיע לדיוק רב יותר בתוצאה. באנימציה
קלאסית דרוש ניסיון רב מאוד כדי להגיע בדיוק למה שרצית,
בייחוד מבחינת ה-timing. עבודה באנימציה ממוחשבת עשויה
לקצר את תהליך הלמידה, ומצד שני עלולה לגרום לאנימטור
להזניח את שלב הדמיון והתכנון המוקדם, ומכך יש לדעתי
להיזהר.
העבודה בתלת ממד, כלומר יצירת האנימציה מכל הזוויות
בו זמנית, תורמת להבנה טובה יותר של פוזה, משקל ואנטומיה.
מאידך, מכיוון שעדיין לא הומצא מדיום הולוגרפי, התוצאה
הסופית היא דו ממדית. לכן יש לקבוע מראש את זווית המצלמה
ולדאוג לפוזה באופן מיוחד מזווית זו. או בניסוח אחר:
באנימציה, לא כל מה שנכון הוא גם יפה - אבל כל מה שיפה
הוא נכון.
תוכנה
טכנולוגיית ה-rig עדיין בחיתוליה. כדי להתבגר
עליה, לדעתי, לתת לאנימטור את האופציה לפנות לאינטואיציה
שלו, ולא רק למחשבה. הכיוון שאני מציע הוא rig שיאפשר
עבודה על כוחות הפועלים על הדמות כולה (משקל, מתיחה,
מעיכה, line of action), והעבודה על העצמות תהיה ברמת
ה-fine tuning. כמו כן, נושא ה-IK בעייתי וטעון שיפור
משמעותי על מנת שיוכל להיות אינטואיטיבי באמת.
ניתן להוסיף מספר תכונות שיאפשרו לאנימטור לעבוד
בדרך דומה לעבודה עם דפים. לדוגמא: מתן אפשרות לקבוע
מספר פוזות שאפשר בקלות לעשות flip ביניהם (ובין הפריים
הנוכחי). צריך להיות hotkey שיפעיל ויכבה onion skin
בין ה-keys המוגדרים, וכמו כן ניתן יהיה להחליף את סדר
ה-flip ביניהם בצורה קלה ומבלי להשפיע על מיקום הפוזות
ב-timeline.
דרושה אופציה פשוטה בתוכנה של קביעת אופי
ה-inbetweens (האצה, האטה) בבת אחת עבור כל האובייקטים
בדמות. ברוב התוכנות קיימת אופציה כזו, אבל היא לא בצורה
פשוטה מספיק; ובדמות מסובכת הכוללת אובייקטים רבים יכולות
לעלות בעיות טכניות שונות.
שיטות עבודה
כדאי לשמור ככל האפשר על keyframes מקובצים עבור
הדמות כולה. זה מפשט את תהליך האנימציה ומונע סיבוכים
מיותרים. לאחר שכללית האנימציה הסתיימה ועובדת, אפשר
"לכוונן" קצת ע"י הזזה ושינוי keys של
אלמנטים מסוימים.
לפעמים נוח ופרקטי יותר לעשות אנימציה באופן
חופשי יותר, כלומר לעבוד על האובייקטים השונים בנפרד.
לאחר שהאנימציה גמורה עקרונית, ניתן "לקבץ"
את האנימציה ע"י יצירת מספר keys מקובצים (כלומר,
על כל האובייקטים) במקומות החשובים ומחיקת כל שאר ה-keys.
בדרך כלל האנימציה לא תיפגע כמעט, ואפשר להמשיך ולשפר
את ה-timing ואת הפוזות בלי להסתבך. דוגמא: בטסט
א' יש ליד בכללותה שמונה עשר keys המפוזרים
על פני האובייקטים, בעוד שבטסט
ב' יש שבעה keyframes מקובצים בלבד.
הטסט המקוטע של האנימציה הקלאסית, שנדרש מעט
תרגול כדי להיעזר בו, עוזר להבין טוב יותר את תפקיד
ה-keys ביצירת האנימציה. לדעתי גם באנימציה ממוחשבת
יש מקום לעבוד ב-stepped keys וליצור טסטים מקוטעים.
המאמר המצוין של Keith
Lango (תורגם לעברית ע"י ניר חרמוני) מציג
שיטה דומה.
הטסט צריך לכלול כבר את הקשתות ואת ה-timing
הנכון, כולל slow in/out. אם הטסט המקוטע "עובד",
השפעת ה-inbetweens (שבהם יש לאנימטור פחות שליטה, כמובן)
פחותה. בנוסף, מאחר והטסט המקוטע מבטא כבר את התנועה
הרצויה, ניתן להתייחס ל-inbetweens במונחים של האטה/האצה/ליניארי
בלבד (במקום לעבוד עם curves, beziers ושאר ירקות).
מעבר לפשטות של התהליך, התנועה שנוצרת פחות חלקה ומתמטית
ויותר טבעית.
אם מבקשים לקרב את האנימציה הממוחשבת לסגנון
פרוע יותר של cartoon, כדאי לשקול את הנושאים הבאים:
• דמות פשוטה, זורמת וגראפית, עם פירוט מינימאלי הן
במודל והן בטקסטורה.
• Rig גמיש ככל האפשר, תוך מחשבה מראש על עיוותים אפשריים
(פה פעור בצורה מוגזמת, מתיחות ומעיכות, וכן הלאה).
• אנימטורים עם הכשרה קלאסית יכולים לצייר סקיצה של
האנימציה עם דמות שדומה עקרונית למודל, בקווים כללים
או ב-thumbnails, על מנת להרגיש טוב יותר את הזרימה
ואת העיוותים שנדרשים.
• לאחר שהאנימציה הסתיימה והתנועה עובדת, ניתן לעשות
bake ל-keys או להפוך את האנימציה לסדרה של מודלים,
ולהתחיל לשנות באופן חופשי את המודל עצמו בנקודות שבהן
דרושים עיוותים בדמות.
• לא לפחד להשתמש ב-holds. הגישה המקובלת היא ש-hold
(פוזה קפואה) לא נראה טוב בתלת ממד. לדעתי הסיבה המרכזית
לכך היא שבניגוד לאנימציה קלאסית - שנתפסת כסמל או קריקטורה
של המציאות ולא כדבר עצמו - האנימציה הממוחשבת מבצעת
הדמיה של ממש, ובמציאות לא קיימות כמובן פוזות קפואות.
להערכתי, סגנון cartoon ייתפס כקריקטורה גם בתלת ממד,
וה-holds יראו טוב בדיוק כמו באנימציה מצוירת.
יד מצביעה: דוגמא לעבודה בסגנון "קלאסי"
מכיוון שמדובר באנימציה פשוטה ביותר, וויתרתי על thumbnails
וניגשתי היישר ל-Extremes. לאחר שתכננתי את הטיימינג
הרצוי, הצבתי את שתי הפוזות העיקריות: המצב ההתחלתי
והמצב הסופי. לאחר מכן יצרתי את ה-anticipation. צפיתי
באנימציה ווידאתי שבאופן כללי הטיימינג שתכננתי עובד.
בכל keyframe קבעתי keys לכל האובייקטים.
טסט extremes בלבד
(לחץ להורדה)
עכשיו ניגשתי ל-breakdowns. כדי לראות את הקשתות, עבדתי
עם onion skin effect ואופציית trajectory. קבעתי שני
breakdowns כדי להיות בטוח שאקבל את הקשת שאני מבקש
(באנימציה קלאסית יכולתי להסתפק באחד ולצייר ל-inbetweener
את הקשת הרצויה). ה-breakdown השני דומה ל-anticipation
אבל יחסית מרוחק ממנו במספר הפריימים, מה שעוזר לי לקבל
האטה כבר בטסט המקוטע. בין ה-anticipation לתנוחה הסופית
הוספתי breakdown נוסף, שמגדיר קשת קלה מאד ומוסיף drag
על כף היד והאצבע המורה. אחרי המתיחה הוספתי recoil
- הרפיה, שמשמשת גם כ-moving hold קצר. עברתי על כל
האובייקטים ווידאתי שהקשתות עובדות. את התוצאה, עדיין
במקוטע (stepped keys), אפשר לראות בטסט הבא:
טסט אנימציה
ראשוני (לחץ להורדה)
כפי שאתם רואים האנימציה כבר "עובדת", אפילו
לפני ה-inbetweens - בדיוק כמו בטסט המצויר שהראיתי
קודם.
עכשיו ניגשתי לכמה שכלולים ספציפיים: מתחתי את העצמות
ב-Extreme האחרון ע"מ לקבל קצת יותר אלסטיות, והוספתי
key של פריים אחד שבו כף היד מתוחה במעין motion blur.
טסט
מקוטע סופי (לחץ להורדה)
הגיע הזמן להוסיף inbetweens. בחרתי את כל האובייקטים
(כזכור, בכל keyframe יש key לכולם), ועבור כולם בבת
אחת שיניתי את ה-curves: האצה בין ה-key הראשון והשני,
תנועה חלקה בין השני והשלישי והאטה בין השלישי לרביעי
(ה-anticipation). האצה לקראת ההצבעה, אין inbetween
בין ה-key המתוח לבין ההצבעה עצמה, ואז האטה לקראת הפוזה
הסופית (recoil). עשיתי טסט, פה ושם תיקנתי את הטיימינג
- זה קל מאד, כי לכל האובייקטים יש keys משותפים וההאצות/האטות
לא משתנות - והאנימציה מוכנה:
טסט סופי עם inbetweens
(לחץ להורדה)
שום עבודה מייגעת על כל חלק בנפרד או על הגרף שלו לא
נעשתה. ובכל זאת, האנימציה חלקה, אלסטית, וגם "קרטונית"
במידה מסוימת. ומה שיותר חשוב, סכמת העבודה הזאת לא
פוגעת ביצירתיות ואולי אפילו משפרת אותה: במקום להשקיע
זמן רב בענייני תנועה וגרפים, עיקר הזמן הושקע בפוזות
הראשוניות, החשובות, אלה שמספרות את הסיפור; קצת פחות
זמן הושקע בפוזות המשניות, אלה שקובעות את התנועה; והכי
מעט זמן הושקע ב-inbetweens, שתפקידם היחיד הוא להחליק
את התנועה. בנוסף, מכיוון שבכל keyframe עבדתי על הדמות
כולה (על היד כולה, במקרה זה) ולא על חלק שלה, יכולתי
לשמור על רמת גבוהה של שליטה בתוצאה הסופית.
בחרתי שלא לעבור על האנימציה ולמחוק keys מיותרים או
להחליק קשתות ב-graph editor, מכיוון שרציתי לשמור על
ה-timing ה"אנושי" שמתקבל כאשר הקשתות לא
לגמרי מתמטיות ו"נכונות".
חשוב להדגיש כי אין הכוונה לטעון שזוהי "הדרך הנכונה
לעבוד באנימציה ממוחשבת", אלא רק דוגמא אפשרית
לעבודה בסגנון השאוב מאנימציה קלאסית.
ובסופו
של דבר...
בסופו של דבר, אנימציה היא אנימציה. המאמר בחן בזכוכית
מגדלת - לא, במיקרוסקופ - את ההבדלים בין האנימציה הקלאסית
והאנימציה הממוחשבת. אבל בעיקרו של דבר, כמובן, מדובר
בעוד מאותו דבר, והמטרה היא תמיד אחת: תנועה יפה ומשחק
מעניין ומשכנע. מבחינה זו כל האנימטורים, בכל הטכניקות
, יושבים באותה סירה ומנסים להבין לאן לעזאזל אנחנו
חותרים.
תודה לטל
פלינט, לניר
חרמוני, לכפיר
רם מאסיפא
ישראל וכן לאנשי פורום
האנימציה בתפוז, על עזרתם בהכנת המאמר.
הכותב הוא אנימטור קלאסי ותלת-ממד, מורה לאנימציה ורישום
לאנימציה בקמרה אובסקורה, ואיש מוזר בהחלט.
להערות, טענות, שאלות, שבחים ודברי נאצה: doron_mei@bezeqint.net
::.
|
|