עבור למסך הסצנה ובחר את הנגן שלך. פתח את חלון האנימציה. כדי להתחיל אנימציה, אתה צריך אנימטור וקליפ אנימציה.
בחר את הנגן ועבור לאנימציה -> אנימציה מתחת לחלון
אתה צריך אנימטור וקליפ אנימציה.
בחר צור, צור תיקייה לאנימציות ושמור את ההנפשה תחת Player_Idle.
ציר הזמן מופיע בו ניתן למקם את ספריית האנימציה.
גרור את ספריית האנימציה לחלון האנימציה. המסגרות מתווספות:
עכשיו הדמות תונפש מהר מדי. יש צורך להתאים את התמונות המופעלות בשנייה.
כדי להציג את קצב הדגימה, בחר את ההגדרות מחלון האנימציה ובחר "הצג קצב לדוגמא"
זה עכשיו 60.
שנה את זה ל 12.
ואז האנימציה כבר לא רצה כל כך מהר.
ניתן להעביר את התמונות על ציר הזמן באמצעות גרירה ושחרור או הסרה באמצעות מחק.
כל העניין עובד גם על אנימציות אחרות, כגון הליכה מהדמות.
לשם כך, בחר: צור קליפ חדש
חזור על הפעולה כדי להשתופף ולקפוץ.
אם אין לך כל כך הרבה ספריטים בעת קפיצה, למשל, יש לך רק 2 ספריטים, תוכל להגדיר את ערך הדגימות ל -2.
בתיקיית האנימציה, לבקר האנימטור יש תצוגת אייקונים שונה מהאנימציות:
הוא קובע מתי מופעלת האנימציה.
האנימטור נפתח בלחיצה כפולה:
שם נקבע איזו אנימציה מושמעת. ניתן לגרור ולהוריד אנימציה ישירות מהפרויקט לתוך האנימטור.
Player_Idle מחובר לחץ כתום ומסומן כתום כי זו האנימציה ההתחלתית. כשאתה מתחיל את המשחק, ה"אנימציה סרק" פועלת ללא הרף. עם לחצן העכבר הימני תוכל "הגדר כ שִׁכבָה בחר "מצב ברירת מחדל" והפוך אנימציה אחרת להנפשה הראשונית.
כאשר אתה מתחיל לרוץ, האנימציה אמורה לעבור לאנימציה המתאימה. לחץ לחיצה ימנית על Player_Idle ובחר בצע מעבר. זה יוצר חיבור מ- Player_Idle ל- Player_Run.
אם תבחר את החיבור, תוכל לערוך כאשר השינוי מהנפשה אחת לאחרת אמור להתרחש.
בשביל זה אתה צריך תנאי. אתה צריך גם פרמטר כדי שזה יעבוד.
צור "צף".
הוא מייצג את המהירות של השחקן.
לאחר מכן אתה מוסיף את התנאי:
לדוגמה, אתה מציין שהאנימציה משתנה כאשר המהירות גדולה מ- 0.01:
כאשר הדמות זזה, היא מתחילה באנימציה האחרת.
בטל "יש זמן יציאה".
שנה את משך המעבר ל -0.
האנימציה של הריצה צריכה להפסיק כשהדמות מפסיקה ללכת. צור מעבר נוסף שחוזר למצב סרק.
בחר כאן את התנאי שהאנימציה משתנה כאשר המהירות נמוכה מ- 0.01.
גם כאן, השבת את "יש זמן יציאה" והגדר את משך המעבר ל- 0.
השינויים כעת מבוצעים בתסריט:
יש לנו 2 סקריפטים לדמות: CharacterController דואג לפיזיקה שמזיזה את הדמות ולתסריט PlayerMovement שאומר מתי הדמות נעה ובאיזו מהירות.
פתח תחילה את סקריפט PlayerMovement. ראשית אנו רוצים שתהיה לנו גישה לאנימטור:
אחדות מוסיפה את האנימטור לנגן בעת יצירת אנימציה. הוא מתייחס לבקר האנימטור, אשר בתורו מבסס את הקשר עם השחקן. האנימטור חייב להיות בר שליטה על ידי סקריפט PlayerMovement:
אנימטור אנימציה ציבורית;
חזור אל אחדות ותראה ששדה האנימטור מופיע כעת בסקריפט תנועת הנגן. לאחר מכן, רכיב האנימטור נגרר לתוכו מחלון המפקח.
בכל פעם שאנו כותבים ב- Script Animator, אנו ניגשים לרכיב האנימטור.
בפונקציית העדכון כעת תוכל לגשת לאנימטור ולרכיב המשויך:
animator.SetFloat ("מהירות", Mathf.Abs (horizontalMove);
הפונקציה Mathf.Abs מבטיחה שערך התנועה של הדמות שלך יהיה תמיד חיובי.
אם אתה מתחיל את המשחק שלך באחדות עכשיו, אחדות תשחק את האנימציה של הדמות שלך תוך כדי הליכה. כאשר אתה עוצר, הנפשת הסרק מופעלת.
עכשיו מדובר בקפיצה: לשם כך אנו משתמשים באפשרות "כל מדינה" באנימטור. לא משנה איזו אנימציה משחקת כרגע, אם הדמות קופצת, הוא יעבור לאנימציה הזו.
לשם כך נדרש תנאי כדי שהדמות לא תקפוץ כל הזמן: כעת יש צורך בפרמטר נוסף.
קראו לזה: IsJumping והגדירו את התנאי "IsJumping" לאמת.
אנחנו לא רוצים זמן יציאה וקבענו את משך המעבר ל -0.
הדמות צריכה להיות מסוגלת לחזור ל"סרק "מאנימציה לקפיצה. יווצר חיבור נוסף.
התנאי "IsJumping" מוגדר כ- false ומהירות ל- 0.01 פחות.
חיבור נוסף נוצר מקפיצה לריצה. המעבר לריצה כולל תנאים נוספים:
IsJumping = false ומהירות> 0.01
עבור שניהם, הגדרנו את זמן HasExit ל- false ואת משך הזמן ל- 0.
כעת התסריט לאנימציות מותאם:
animator.SetBool ("IsJumping", נכון);
אנו מעבירים ל- PlayerMovementScript שהדמות מפסיקה לקפוץ כשהוא נוחת:
חלל ציבורי OnLanding ()
{
animator.SetBool ("IsJumping", שקר);
}
כעת נוכל להוסיף OnLandEvent חדש באחדות:
אתה מוסיף OnLandEvent ובוחר תחת PlayerMovement: OnLanding ()
ואז אחדות משחקת את האנימציה של הקפיצה בזמן הקפיצה וכשהדמות נוחתת היא מסיימת אותה.
אחדות תמיד מנגנת את האנימציה בקצרה רבה. בטל את "יכול לעבור לאני" כך שהאנימציה תשוחק במלואה:
כעת מתווספת האנימציה לכריעה.
חבר את Idle ל- Crouch:
הוסף תנאי: צור פרמטר חדש: IsCrouching
אם Crouching IsTrue, יש את התו לכרוף:
ערוך שוב את זמן היציאה ואת משך הזמן. התחבר מחדש.
אם תשבית את זמן היציאה ותגדיר את משך האנימציה ל- 0, הארך תחילה את זמן היציאה ורק לאחר מכן תבטל אותו, אחרת יגיעו הרבה אזהרות לקונסולה. צור חיבור נוסף מהנפשת ההפעלה.
צור חיבור חזרה נוסף:
IsCrouching הוא שקר ומהירות> 0.01
הוסף עוד OnCrouchEvent.
לשם כך אנו זקוקים לפונקציה נוספת בסקריפט PlayerMovement:
חלל ציבורי OnCrouching (bool isCrouching)
{
animator.SetBook ("IsCrouching", isCrouching);
}
כעת הוסף את אירוע קראוץ '. חשוב: התסריט חייב להקדים את BoolEvent ברמה הציבורית [System.Serializable]. אחרת CrouchEvent לא יופיע בחלון מפקח אחדות:
הוסף שוב את סקריפט PlayerMovement. תחת סקריפט PlayerMovement, בחר OnCrouching מהקטע למעלה.