אנימציות שלד ב-Unreal Engine 5: כיצד לייבא מודל תלת-ממדי?
הגרסה האחרונה של הכלי התלת-ממדי של Epic Games – Unreal Engine 5 – מביאה עמה יתרונות רבים, כמו גם כמה אתגרים. אחד הנושאים בהם נתקלנו בעבודה עם התוכנה היה ייבוא המודלים. המשימה של היום היא להבין את מושג האנימציה של מערכת העצמות ולעבור על מקרה בוחן של יצירת שלד בפרויקט Unreal Engine 5.
מהו Unreal Engine?
Unreal Engine, שפותחה על ידי Epic Games, היא חבילה של כלים משולבים המשמשת ליצירת חוויות אינטראקטיביות, בעיקר בתעשיית משחקי הווידאו, תוך שימוש בטכנולוגיית GPU לרינדור בזמן אמת. עם זאת, הודות לרב-גוניותה, Unreal Engine משמשת גם בעיצוב ממשקי אדם-מכונה, בהדמיה אדריכלית או ביצירה והרצה של סימולציות. בעת כתיבת מאמר זה, הגרסה האחרונה היא Unreal Engine 5, שיצאה בספטמבר 2021.
ערכת כלים של Unreal Engine לאנימציות תלת-ממד
כשמדובר באנימציה תלת-ממדית, Unreal Engine מתאים במיוחד בזכות חבילת כלי האנימציה החזקה שלו. היא כוללת את הדברים הבאים:
- רצף: זהו העורך הלא-לינארי המובנה של Unreal Engine ליצירת אנימציות קולנועיות, סצנות חיתוך במשחק ועוד. ניתן להנפיש מאפיינים לאורך זמן באמצעות פריימים מפתח, מה שמאפשר יצירת רצפים מורכבים הכוללים תנועות מצלמה, אנימציות דמויות, אודיו ואפקטים חזותיים.
- מערכות אנימציה שלדית: זה משמש להנפשה של דמויות תלת-ממדיות אורגניות (כלומר, אנשים, בעלי חיים, מפלצות) ואובייקטים טכניים מורכבים אחרים (כלומר, כלי רכב, מכשירים, מכונות) באמצעות טכניקות הנפשה שלדיות תלת-ממדיות מתקדמות. רשת שלדית מוגדרת על ידי היררכיה של עצמות, שניתן להנפיש כדי ליצור תנועה מציאותית. מערכת זו תומכת גם בקינמטיקה הפוכה (Inverse Kinematics), מה שמאפשר תנועות טבעיות יותר במפרקי הדמויות, כמו התאמת תנועות הרגליים בהתאם לפני השטח.
- Control Rig: ריגינג (Rigging) מתייחס לתהליך של יצירת מבנה העצמות של מודל, המשמש לאחר מכן להנפשת האובייקט בהתאם לכוונות האנימטור. Control Rig היא המערכת של Unreal Engine ליצירת עיוותים מבוססי תנוחה ישירות בתוך המנוע. היא מציעה ממשק מבוסס צמתים להגדרת התנהגויות מורכבות וניתן להשתמש בה עם Sequencer ליצירת אנימציות דמויות.
- אנימציה מבוססת פיזיקה: Unreal Engine מספקת גם כלים לסימולציה של אנימציה מבוססת פיזיקה, כגון בד, נוזלים או גופים קשיחים. הדבר מאפשר יצירת תנועה ריאליסטית המגיבה לפיזיקה במשחק, כמו דגל המתנופף ברוח.
- תרשימי אנימציה: Blueprints היא מערכת תסריטים ויזואלית המשמשת ליצירת לוגיקת אנימציה מורכבת, כגון קביעה אילו אנימציות להפעיל בתנאים מסוימים, מיזוג אנימציות ומניפולציה דינמית של אנימציות בהתבסס על תנאי המשחק.
תכונות אלו, יחד עם יכולות הרינדור העוצמתיות של Unreal Engine ומערכת החומרים המתקדמת שלו, הופכות אותו לכלי מצוין ליצירת אנימציות תלת-ממדיות עשירות ואימרסיביות.
תוכנה חיצונית למידול תלת-ממד
מכיוון ש-Unreal Engine משמש כסביבת מנוע משחקים טיפוסית לפיתוח משחקים או אפליקציות, הוא אינו מצויד מטבעו לפיסול אובייקטים תלת-ממדיים, ציור טקסטורות או הנפשת אובייקטים. לפיכך, יוצרים בוחרים לעתים קרובות ליצור תוכן באמצעות כלי תלת-ממד חיצוניים לפני ייבוא הנכסים המוגמרים אל Unreal Engine. הכלים הפופולריים ביותר ליצירת אנימציות תלת-ממד הם Blender, 3ds Max, Maya, ומסגמנט ה-CAD, Catia, Autodesk Alias ו-Siemens NX.
שלד, רשת שלדית ואנימציה שלדית
שלד (המכונה לפעמים „מערכת עצמות“) הוא טכניקת ריגינג המשמשת ליצירת תנועות מורכבות ומציאותיות. הוא אינו דומה לשלד ביולוגי בעולם האמיתי; לפיכך, הוא מורכב מ„עצמות“ שונות, שכל אחת מייצגת חלק אחר של מודל שניתן לתמרן באופן עצמאי או קולקטיבי. עצמות מקושרות לחלקים ספציפיים של רשת השלד התלת-ממדית, ומאפשרות תנועת דמות דינמית יותר. רשת היא משטח חזותי של מודל צורה המוגדר על ידי השלד הבסיסי.
השילוב של שלד ורשת שלדית מוביל לאנימציה שלדית. זוהי טכניקה של אנימציה תלת-ממדית שבה אובייקט מיוצג בשני חלקים: משטח חזותי (הרשת) ומערכת של עצמות מחוברות זו לזו (השלד) שמניעה את הדמות. אנימציה שלדית היא השיטה הפופולרית והנפוצה ביותר להנפיש אובייקטים המורכבים ממספר רב של אלמנטים תוך שמירה על יחסים מוגדרים ביניהם.

דוגמה
הבה נבחן מודל תלת-ממדי של מחפר.
ראשית, אמן תלת-ממד יוצר מש, כלומר, הייצוג החזותי של המכונה הכולל אלמנטים כגון התא, הזרוע, המוט או הכף.
לאחר מכן, הם מכינים שלד דיגיטלי בתוך המודל. הוא מורכב מעצמות לכל חלק שאמור לנוע – עצם עבור הזרוע שתאפשר לה לנוע מעלה ומטה, עצם נוספת עבור המוט לנוע פנימה והחוצה, או עצם עבור הכף שתחקה תנועות חפירה ופריקה.
לאחר יצירת השלד, הגיע הזמן לחבר אותו לרשת (mesh) באמצעות הריגינג (rigging), כלומר לקשר כל עצם לרכיב הרשת שאותו הוא אמור להניע. עצם הבום (boom) יקושר לחלק הבום של הרשת, עצם המקל (stick) לחלק המקל, וכן הלאה. התוצאה של תהליך זה היא רשת שלדית (skeletal mesh).
כאשר תהליך האנימציה מתחיל, האנימטור מניע את עצם הדלי בתנועה. בשל הקשרים שהוגדרו במהלך הריגינג, הרשת סביב הדלי עוקבת אחר תנועת העצם, והמחפר נראה כחופר.
כיצד לייבא עיצובים תלת-ממדיים לפרויקט Unreal Engine?
בעוד שקיימות מספר דרכים לייבא ולהנפיש מודלים תלת-ממדיים ב-Unreal Engine (בין היתר blending או בניית עץ היררכיית אובייקטים), אנו מתמקדים היום במערכת העצמות (bones) וב-rigging.
למרות שהיא מורכבת במקצת, שיטה זו כוללת הוספת שלד שלם למודל והגדרת אילוצים פיזיקליים רבים כדי להבטיח שהם יפעלו היטב בעת הפעלת תנועה.
היא מספקת התנהגות תנועה ריאליסטית וטבעית עבור אובייקטים תלויים הדדיים רבים, מה שהופך אותה לשימושית במיוחד עבור אובייקטים מורכבים עם יחסים סבוכים בין חלקים. לדוגמה, דמיינו שחזור אנימציה של מנוע רכב עובד תוך שמירה על פעולה טבעית של כל המנגנונים שלו, כגון דיפרנציאלים, גלגלי שיניים, בוכנות, או, כפי שהוזכר לעיל, תנועת המחפר החופר עם מספר צילינדרים פעילים.

עם זאת, לשיטה זו יש אתגרים משמעותיים. היא דורשת שליטה במספר חבילות תוכנה תלת-ממדיות ומודולים נרחבים לבניית מערכת עצמות ולהגדרת היחסים הפיזיקליים שלה. בנוסף, הבנה מעמיקה של חילופי נתונים בין תוכנית התלת-ממד ל-Unreal Engine (או מנוע אחר כמו Unity) היא חיונית.
יתרה מכך, בעוד ששיטה זו מספקת כלים עשירים ואפשרויות עצומות, Unreal Engine (ומנועי משחקים בכלל) תומכים רק בייבוא של skeletal mesh ומתעלמים מנתונים על אילוצים פיזיים וחיבורים במערכת העצמות. אילוצים אלו צריכים להיות מוגדרים מחדש בתוך Unreal Engine, דבר שיכול להיות משימה משמעותית.
מקרה בוחן DigiTwin: כיצד ייבאנו והנפשנו מודל תלת-ממדי של מחפר
DigiTwin הוא פרויקט המו"פ של Spyrosoft. זהו תאום דיגיטלי של דגם מחפר פיזי; האפליקציה לוכדת את הנתונים מתנועת המכונה ומשמיעה אותם בחזרה בטאבלט בזמן אמת. גם למכשיר הפיזי וגם למכשיר הדיגיטלי יש נקודות תנועה כגון סיבוב התא, תנועה למעלה ולמטה בשני חלקים של הזרוע ותנועת הכף.
הכנו את מודל ה-3D ב-Blender, מכיוון שהקבצים נוחים יחסית לייבוא לפרויקט Unreal Engine. בגלל המורכבות של המכשיר ותנועתו (מספר אלמנטים וגלילים), החלטנו לייבא את האנימציה על ידי יצירת מערכת עצמות.

באופן כללי (אך זה אינו מחייב בכל מקרה), Unreal Engine מנהל את הנתונים עם תוכנות תלת-ממד אחרות באמצעות פורמט Autodesk Filmbox (*.fbx) ללא תלות בחבילת הגרפיקה התלת-ממדית ששימשה ליצירת רשת שלדית. לאחר ייבוא מודל אל Unreal Engine, אנו מקבלים את הרכיבים הבסיסיים: Skeleton, Skeletal Mesh, Physical Asset ו-Animation Blueprint.
במהלך העבודה על מערכת העצמות (bone system) והריגינג, נתקלנו במכשולים טכניים שחייבו את הצוות להיות בעל מומחיות בתוכנת תלת-ממד ובהחלפת נתונים. Unreal Engine (וככלל כל מנועי המשחקים) תומך ברשת תלת-ממדית (wireframe mesh) במהלך הייבוא, אך לא ישירות באילוצים פיזיים. כדי להפוך את תנועות המחפר לריאליסטיות ככל האפשר, שיחזרנו חלק מהחיבורים ב-Unreal Engine, בנכס Animation Blueprint. בתמונה למטה ניתן לראות את המודל כולו עם הנכסים הקשורים שנוצרו בתהליך הייבוא.


כפי שהוזכר, Unreal Engine אינו תומך במגבלות הפיזיות של תוכנת תלת-ממד חיצונית בעת הייבוא. החלטנו להשתמש באובייקט נוסף בשם "Socket" כדי לפתור בעיה זו. Sockets שימושיים בעת ייבוא אלמנטים עבור מודל התלת-ממד. במקרה שלנו, השתמשנו בהם מכיוון שבתוך Animation Blueprint, הם יכולים להגדיר בקלות את היחס בין Bone ל-Socket עם הצומת "Look At".

כיצד עובדים הסוקטים (Sockets) עבורנו? אם יש לנו אובייקטים מסוימים ואנו צריכים ליישר אותם במהלך הפעלת אנימציה, הרעיון של חיבור Bone ל-Socket נשמע כמו פתרון. הצומת "Look At" בודק מיקום יעד ומיישר אליו עצם מחובר אם הוא מזהה טרנספורמציה.

לסיכום
מכיוון ש-Unreal Engine 5 הוא גרסה相对 חדשה יחסית, עלינו להתמודד עם תחומים מסוימים מחדש. DigiTwin, פרויקט המתואר לעיל כדוגמה למקרה של ייבוא מודל תלת-ממדי, הוא יוזמת המו"פ של Spyrosoft להכיר את המנוע החדש ביותר של Epic Games. אני מקווה שהדרך שכבר סללנו תסייע לכם לפתח פרויקטים חדשים ומרתקים באמצעות Unreal Engine 5.
התחילו את הפרויקט הבא שלכם ב-Unreal Engine עם Spyrosoft
האם אתם מתכננים להשיק את המוצר הבא שלכם בטכנולוגיית Unreal Engine? אין צורך לחפש רחוק — Spyrosoft מציעה תמיכה מקיפה. הצוות שלנו הוא אוסף של מומחים מיומנים, המתהדרים בניסיון רב בעבודה עם ערכת הכלים המורכבת של Unreal Engine.
בין אם מטרתכם לפתח ממשק HMI אינטואיטיבי ואינטראקטיבי, ובין אם למצות את מלוא העוצמה של תכונות האנימציה התלת-ממדית הדינמית של Unreal Engine, אנו עומדים לרשותכם כדי ללוות אתכם בתהליך. למדו עוד על היקף שירותי ה-HMI שלנו כאן.
שאלות נפוצות: Unreal Engine 5
Unreal Engine היא חבילת כלים עוצמתית שפותחה על ידי Epic Games ליצירת חוויות אינטראקטיביות, בעיקר בתעשיית הגיימינג. היא משמשת גם בסימולציות, בהמחזה אדריכלית ובממשקי אדם-מכונה.
שלד הוא מבנה ריגינג העשוי מעצמות המגדיר כיצד חלקים שונים של מודל תלת-ממדי נעים. כל עצם מתאים למקטע רשת ומאפשר תנועה מציאותית באמצעות אנימציה.
Skeletal mesh משלב את המודל התלת-ממדי (mesh) עם מבנה העצמות הפנימי שלו (skeleton), דבר חיוני למימוש אנימציית שלד תלת-ממדית בדמויות. הוא משמש לאנימציה של מודלים ב-Unreal Engine באמצעות תנועת העצמות.
Unreal Engine משתמש בפורמט הקובץ .FBX לייבוא מודלים שנוצרו בתוכנה חיצונית. לאחר הייבוא, נוצרים עבור האנימציה נכסים כגון Skeleton, Skeletal Mesh, Physical Asset ו-Animation Blueprint.
למרות ש-Unreal Engine תומך ברשתות שלד (skeletal meshes), הוא אינו שומר על אילוצים פיזיים מתוכנת העיצוב התלת-ממדית המקורית. יש לשחזר אילוצים אלה באופן ידני באמצעות כלים כגון Animation Blueprints ו-Sockets.
DigiTwin הוא פרויקט מו"פ של Spyrosoft ליצירת תאום דיגיטלי של מחפר פיזי. הפרויקט מדגים כיצד לייבא, להרכיב (rig) ולהנפיש מודל תלת-ממדי מורכב באמצעות Unreal Engine 5.
arrow_circle_rightצרו קשר
צרו איתנו קשר בכל שאלה
arrow_circle_right המאמרים שלנו