מדריך Unity Cinemachine וציר זמן

Cinemachine היא חבילה עבור Unity המעניקה למפתחים שליטה מקצועית במצלמה ומשפרת את היכולת ליצור קטעים קולנועיים.

מדריך זה יכסה את הנושאים הבאים:

  • התקנת Cinemachine
  • הגדרת מצלמה של אדם שלישי
  • יצירת ציר זמן

התקנת Cinemachine

כדי להתקין את Cinemachine, בצע את השלבים הבאים:

  • ב-Unity עבור אל חלון -> מנהל החבילות

תפריט מנהל החבילות של Unity

  • שנה חבילות ל-"Unity Registry"

רישום מנהל החבילות של Unity

  • בחר "Cinemachine" מהרשימה ולאחר מכן לחץ "Install"

ה-Cinemachine מוכנה כעת לשימוש.

הגדרת מצלמה של אדם שלישי

להלן אראה כיצד להגדיר מצלמה מגוף שלישי באמצעות המצלמה הוירטואלית של Cinemachine.

מצלמה וירטואלית היא גרסה קלת משקל של מצלמת Unity, שאינה מעבדת בעצמה, אלא משמשת רק כנקודת התייחסות למצלמה הראשית.

כדוגמה למדריך זה, אשתמש ב-בקר מגוף שלישי, למעט מבלי להגדיר את התנגשות המצלמה ומבלי להזיז את המצלמה בתוך היררכיית הנגן:

Sharp Coder נגן וידאו

כפי שניתן לראות הנגן זז אך המצלמה לא עוקבת.

הגדרת מצלמת גוף שלישי באמצעות Cinemachine היא ממש קלה:

  • עבור אל GameObject -> Cinemachine -> מצלמה וירטואלית כדי ליצור מצלמה וירטואלית חדשה

Cinemachine ליצור מצלמה וירטואלית

  • תן שם למצלמה הוירטואלית "TPS Camera"
  • בחר מצלמת TPS וב-CinemachineVirtualCamera הקצה משתנה Follow (במקרה שלי זה יהיה אובייקט "CameraParent", שנמצא בתוך היררכיית שחקן ומייצג סיבוב מבט אנכי)
  • הגדר את ערך גוף ל "3rd Person Follow"
  • הגדר את Ignore Tag ל-"Player" וגם בחר את אובייקט השורש של הנגן והגדר את התג שלו ל-"Player" (אם יש מתנגשים ילדים בהיררכיית השחקן, הקפד לשנות גם את התגים שלהם ל-"Player")
  • כוונן ערכים אחרים ב-CinemachineVirtualCamera כגון מרחק מצלמה, צד מצלמה, היסט כתף ו- Damping עד שתהיה מרוצה מהתוצאה.
  • הגדר את ערך המטרה של CameraParent ל "Do nothing"

ערכי רכיבי CinemachineVirtualCamera

המצלמה צריכה כעת לעקוב אחר הנגן:

Sharp Coder נגן וידאו

יצירת ציר זמן

כאן אני אראה כיצד להלחין סצנה באמצעות ציר הזמן של Unity.

Timeline הוא עורך מובנה המאפשר למפתחים לחבר קטעים על ידי הנפשת המצלמה, וגם על ידי שימוש באנימציות קיימות (לדוגמה, הליכת דמויות), בתוספת אירועים ואותות על ידי סידורם באופן רציף.

חבילת Cinemachine מוסיפה כמה אפשרויות נוספות לעורך ציר זמן, כמו היכולת לעבור בין מצלמות וירטואליות.

כדי ליצור סצנה, בצע את השלבים הבאים:

  • צור GameObject חדש וקרא לו "TimelineManager"
  • פתח את חלון ציר הזמן על ידי מעבר לחלון -> רצף -> ציר זמן

תפריט ציר הזמן של חלון Unity

  • בחר "TimelineManager" Object ובחלון Timeline, אתה אמור לראות אפשרות ליצור רכיב Director ו-Timeline asset, לחץ עליו.

Cinemachine ליצור רכיב במאי ונכס ציר זמן

  • לאחר יצירת רכיב ה- Director ונכס ציר הזמן, אתה אמור לראות את חלון ציר הזמן הריק (ודא שאובייקט TimelineManager נבחר כדי להיות מסוגל לערוך אותו).

חלון ציר הזמן של Cinemachine

  • כעת נוכל להתחיל להוסיף רכיבים לציר הזמן על ידי לחיצה ימנית על החלון.

יצירת רכיבי ציר זמן

כפי שאתה יכול לראות, לחלון ציר הזמן יש אפשרויות שונות:

  • Track Group - זוהי קבוצה שיכולה להכיל פעולות ציר זמן ושימושית לארגון.
  • מסלול הפעלה - זה מגדיר את האובייקט שאמור להיות פעיל רק במהלך מסגרת זמן מוגדרת.
  • רצועת אנימציה - זה יפעיל אנימציה ספציפית במהלך מסגרת זמן מוגדרת.
  • רצועת אודיו - זה ינגן אודיו ספציפי במהלך מסגרת זמן מוגדרת.
  • Control Track - רצועה שהקליפים שלו שולטים באלמנטים הקשורים לזמן ב-GameObject.
  • Signal Track - זה מאפשר לבצע מגוון רחב של פעולות על אובייקט משחק מסוים בזמן מסוים (למשל הפעלת סקריפט תנועת שחקן או קריאה לפונקציה ספציפית כאשר ציר הזמן מגיע למסגרת מסוימת וכו')
  • רצועה ניתנת להפעלה - רצועה שהקליפים שלה ניתנים להשמעה בהתאמה אישית.
  • Cinemachine Track - זה מאפשר שילוב בין מצלמות וירטואליות מרובות של Cinemachine.

לצורך הדרכה זו, אשתמש רק ב-מסלול אנימציה ו-מסלול אותות.

להכין

  • צור מצלמה וירטואלית נוספת וקרא לה "CutsceneCamera" והגדר את הערך "Priority" שלה לרמה אחת מעל "TPS Camera" (לדוגמה 11)
  • לחץ באמצעות לחצן העכבר הימני בתצוגת הפרויקט -> צור -> אות ושם "DisablePlayer"

Unity יצירת אות קו זמן

  • שכפל אות "DisablePlayer" ושנה את שמו ל "EnablePlayer"

נכסי איתות של ציר זמן של Unity

  • צור GameObject חדש בסצנה ותן לו שם "SignalReceiver"
  • חבר את רכיב מקלט לאובייקט "SignalReceiver"
  • לחץ על "Add Reaction" 2 פעמים
  • הקצה "DisablePlayer" לתגובה ראשונה ו-"EnablePlayer" לתגובה שנייה

Unity Line Signal Add Reaction

"DisablePlayer" יפעיל את מצלמת הסצנה, תבטל את מצלמת הנגן ואת תסריט הבקרה של הנגן, ויוצב בתחילת ציר הזמן.

"EnablePlayer" ישבית את מצלמת הסצנה, תפעיל את מצלמת הנגן ותסריט בקרת הנגן, ויוצב בסוף ציר הזמן.

  • לחץ על (+) כדי להוסיף משבצת תגובה ואז הקצה את האובייקט שצריך להפעיל/לבטל את הסקריפט או הרכיב שלו.

טיפ: כדי ליצור אות הפוך, אתה יכול פשוט להגדיר את התגובות עבור "DisablePlayer" ואז ללחוץ על סמל גלגל השיניים -> שכפל, לשנות את האות ל-"EnablePlayer" ולהפוך את תיבות הסימון.

Unity Duplicate Signal

הגדרת תגובות אות ציר זמן של Unity

  • בחר אובייקט "TimelineManager" ואז בחלון ציר הזמן הוסף רצועת אותות חדשה על ידי לחיצה ימנית -> מסלול אותות ואז הקצה לו אובייקט "SignalReceiver".
  • גרור ושחרר את נכס האות "DisablePlayer" בתחילת ציר הזמן ו-"EnablePlayer" לפריים שאתה רוצה שהקטע יסתיים:

תצוגה מקדימה של איתות ציר הזמן של Unity

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

לבסוף, אנחנו הולכים ליצור אנימציית מצלמה פשוטה.

  • לחץ לחיצה ימנית על ציר זמן -> מסלול אנימציה ואז הקצה "CutsceneCamera" (זה יבקש להוסיף רכיב Animator לאובייקט אם אין כזה)
  • לחץ על כפתור ההקלטה

הקלטת קליפ אנימציה של ציר זמן של Unity

  • הזיזו מעט את "CutsceneCamera", כך שהפריים המפתח יוחל ואז הזיזו את ידית המסגרת של ציר הזמן עד הסוף, ולבסוף, הזיזו את המצלמה למיקום חדש ואז לחצו על עצור הקלטה.

Unity Cinemachine Cutscene ציר זמן

בוא נלחץ על play ונראה את התוצאה:

Sharp Coder נגן וידאו

הסצנה משוחקת בתחילת המשחק.