קולנוע ווידאו למשחקים
סצנת קולנוע שנראית נהדר בעורך יכולה להפוך למצגת שקפים בגרסת הייצור: דמויות קופאות, המצלמה קופצת, התאורה לא תואמת למשחק. נתקלנו בזה עשרות פעמים בפרויקטים למחשב ולפלטפורמות ניידות. תהליך עבודה נכון ליצירת קולנוע במשחקים נבנה מההתחלה, לא בשבוע האחרון. להלן כיצד אנו מבנים תהליך זה.
מה כלול בשירות
- סטוריבורד ופרה-ויזואליזציה – אנימטיק עם תזמון, סטוריבורד, יישור נרטיבי לפני תחילת ההפקה
- קולנוע בתוך המנוע – Timeline, Cinemachine (Unity), Sequencer (Unreal)
- סצנות קולנוע מעובדות – וידאו מעובד מראש עם אינטגרציה למנוע
- יצירה פרוצדורלית של סביבות ואנימציה – לפרויקטים עם תוכן בקנה מידה גדול
- ארט טכני לקולנוע – מתקני מצלמה, רצועות Timeline מותאמות אישית
מדוע סצנות קולנוע בתוך המנוע עדיפות על פני מעובדות מראש?
סצנות קולנוע בתוך המנוע משתמשות בנכסים בפועל, מגיבות למצב השחקן (התאמה אישית של דמות, תאורה דינמית) ואינן דורשות אחסון קבצי וידאו נפרדים. המחיר הוא מורכבות תהליך הייצור. אבל עבור 70% מהפרויקטים המודרניים, גישה זו מוצדקת: חיסכון בשטח דיסק (עד 90% למשחקים עם סצנות מרובות) ויכולת התאמה לרזולוציות שונות ללא עיבוד מחדש.
ארכיטקטורת Timeline
Timeline ב-Unity אינו רק כלי אנימציה אלא מערכת ניהול זמן מלאה לכל אובייקט במשחק. כל PlayableDirector מנהל TimelineAsset המכיל רצועות:
| סוג רצועה | מטרה |
|---|---|
AnimationTrack |
אנימציות דמויות ואובייקטים |
CinemachineTrack |
מעבר בין מצלמות וירטואליות |
AudioTrack |
מוזיקה, קריינות, אפקטים קוליים |
ActivationTrack |
הפעלה/כיבוי של אובייקטים |
ControlTrack |
הפעלת Timelines משניים, מערכות חלקיקים |
SignalTrack |
קריאה לאירועים בקוד |
רצועות מותאמות אישית באמצעות PlayableBehaviour + PlayableAsset הן המפתח לסצנות מורכבות. לדוגמה, רצועה לשליטה בעוקף פוסט-עיבוד, מיזוג DOF חלק, או סנכרון כתוביות עם רצועות אודיו. במהלך השנים, יישמנו למעלה מ-20 רצועות מותאמות אישית למשימות ספציפיות.
Cinemachine: מצלמות וירטואליות
Cinemachine משנה מהותית את הגישה לעבודת מצלמה. במקום מצלמה אחת עם קיפריימים, מדובר במערכת של מצלמות וירטואליות (CinemachineVirtualCamera, CinemachineFreeLook, CinemachineStateDrivenCamera) שביניהן המצלמה הראשית עוברת בצורה חלקה לפי כללי מיזוג.
לקולנוע, המעניינות ביותר הן:
- CinemachineVirtualCamera – הכלי המרכזי. לכל מצלמה וירטואלית יש Body (איך המצלמה עוקבת אחרי המטרה) ו-Aim (איך המצלמה מסתכלת על המטרה). שילובים:
- Transposer + Composer: המצלמה עוקבת אחרי הדמות, שומרת אותה בפריים
- OrbitalTransposer + POV: מצלמת שחקן בגוף שלישי
- DoNothing + DoNothing: מצלמה סטטית לחלוטין, נשלטת על ידי קיפריימים
- Dolly Track (
CinemachinePathBase+CinemachineTrackedDolly) – המצלמה נעה לאורך ספליין. המעצב קובע את הנתיב בסצנה, האנימטור שולט במיקום על הנתיב דרך Timeline. - Camera Blend ב-
CinemachineBrain: מעבר בין מצלמות וירטואליות יכול להיות Cut, Ease In/Out, Linear, או דרך AnimationCurve מותאמת אישית. לסצנות דיאלוג, הסטנדרט הוא Cut בין שורות, Ease למעברים רגשיים.
בעיות ופתרונות
רעידות במעקב אחרי דמות – בעיה נפוצה כאשר תדירות עדכון הפיזיקה (FixedUpdate) לא תואמת לעיבוד. פתרון: CinemachineVirtualCamera > Body > Binding Mode: World Space + הפעלת Stabilize Roll. אם לא מספיק, CinemachineExtension מותאם אישית עם החלקת מיקום נוספת. נבדק בפרויקטים עם 30-60 FPS.
אי-התאמת תאורה בין משחק לסצנת קולנוע – מתרחשת בעת מעבר בין סצנות Unity או שימוש בהגדרות Lighting שונות. ב-URP/HDRP, נפתר דרך Volume Profile Override על CinemachineVirtualCamera או דרך Timeline ControlTrack להפעלת ה-Volume הנדרש.
סנכרון שפתיים – לסצנות דיאלוג עם קריינות, אנו משתמשים ב-Salsa LipSync (Unity) או Audio2Face מקורי (Unreal + MetaHuman). רמה בסיסית היא אנימציה מבוססת ויזימים דרך AnimationTrack עם קיפריימים לכל שורה.
כיצד Sequencer ב-Unreal Engine מפשט את תהליך העבודה?
ה-Sequencer של Unreal הוא אנלוג פונקציונלי ל-Timeline, אבל עם כמה הבדלים. לסצנות קולנוע ברמה קולנועית, Sequencer נוח יותר:
- Movie Render Queue במקום Play Mode לעיבוד סופי – מספק path tracing, motion blur עם subsampling, ותוצאות עקביות פריים אחר פריים
- Level Sequence Actor מאפשר קינון Subsequences – נוח לפרויקטים גדולים שבהם חלקים שונים של סצנה מעובדים במקביל
- אינטגרציית Control Rig: שליטה ישירה ב-FK/IK ב-Sequencer ללא מעבר ל-Animation Blueprint
לדמויות MetaHuman, Sequencer הוא הכלי המרכזי: אנימציות פנים דרך Face AR או Performance Capture נכתבות ישירות לרצועת Sequencer.
וידאו מעובד מראש: מתי ולמה
סצנות קולנוע מעובדות מראש מוצדקות לפתיחים/סיומים שבהם האיכות חשובה יותר מאינטראקטיביות. אנו מע�דים דרך Unity Recorder או Movie Render Queue (Unreal), עריכה סופית ותיקון צבע ב-DaVinci Resolve.
אינטגרציה למנוע: .mp4/.webm דרך VideoPlayer (Unity) או Media Framework (Unreal). חשוב לפלטפורמות ניידות – ייתכן שהווידאו לא יעבור פענוח חומרתי בכל מכשירי היעד; אנו בודקים תמיכת codec מראש (H.264 – בחירה בטוחה, H.265 – איכות טובה יותר אבל לא כל אנדרואיד תומכת בו).
תהליך הפקת סצנת קולנוע
לכל פרויקט, אנו עוברים את השלבים הבאים:
| שלב | משך (ימים) | תוצאה |
|---|---|---|
| תסריט + סטוריבורד | 2–5 | תסריט מאושר, סטוריבורד |
| פרה-ויזואליזציה (אנימטיק) | 3–7 | טיוטה עם תזמון |
| הרכבה בתוך המנוע | 5–15 | סצנת קולנוע מוגמרת במנוע |
| רצועות מותאמות אישית + ארט טכני | 2–5 | פתרון משימות ספציפיות |
| בדיקות ואופטימיזציה | 1–3 | 30+ FPS חלקים במכשירי יעד |
| עיבוד סופי ואינטגרציה | 1–2 | וידאו מעובד מראש או build |
לוחות הזמנים הם משוערים ותלויים במורכבות הסצנה (מספר דמויות, אורך, פלטפורמה). התמחור מחושב באופן אישי – נבחן את הפרויקט שלך ללא עלות לפי בקשה.
יצירה פרוצדורלית: Wave Function Collapse לנכסים ואנימציה
לפרויקטים עם כמויות גדולות של תוכן (roguelike, עולם פתוח), יצירה ידנית של כל רמה אינה מעשית. Wave Function Collapse (WFC) הוא אלגוריתם יצירה מבוסס אריחים המבוסס על עקרון האנטרופיה (השם הוא מטפורי, האלגוריתם דטרמיניסטי). העיקרון: כל תא ברשת יכול להיות אחד מ-N אריחים; האלגוריתם "קורס" תאים באופן איטרטיבי על ידי בחירת אריח לפי כללי תאימות עם שכנים.
יישום מעשי ב-Unity: ספריית mxgmn/WaveFunctionCollapse או יישום מותאם אישית למשחק ספציפי. כללי תאימות נקבעים ידנית (JSON המתאר אילו אריחים יכולים להיות שכנים) או נלמדים מרמות לדוגמה.
BSP (Binary Space Partitioning) – אלגוריתם קלאסי לרמות מבוכים. פשוט יותר ליישום אבל פחות גמיש בתוצאות. ל-roguelikes, זו בחירה טובה.
לקולנוע, יצירה פרוצדורלית מיושמת גם בהקשר אחר: אנימציית מצלמה פרוצדורלית (רעידת מצלמה ידנית, נשימה אידלה) דרך Cinemachine Noise או בקרים מותאמים אישית מבוססי רעש Perlin – מוסיף חיוניות קולנועית ללא קיפריימינג ידני של כל תנועה.
טעויות אופייניות ביצירת סצנות קולנוע
- התעלמות מביצועים: סצנה עם 20+ מצלמות וירטואליות פעילות יכולה לצרוך את כל ה-FPS. פתרון – השתמשו ב-Priority והשביתו מצלמות לא פעילות.
- חוסר גיבוי לפלטפורמות ניידות: וידאו מעובד מראש חייב לכלול גיבוי H.264, אחרת מכשירים ישנים יציגו מסך שחור.
- עומס יתר על Timeline: רצועות ללא ארגון הופכות את הפרויקט לבלאגן. כלל – קבצו לפי סוג (Animation, Audio, Control) והשתמשו ב-Sub-Timeline לסצנות ארוכות.





