תמוז

כשיש בעיה ורודה בייבוא של VRIF לפרויקט קיים

VR Interaction Framework, או בקיצור VRIF, הוא פריימוורק בחנות היוניטי שמספק חבילת אינטראקציות לשימוש במשקפי VR. פירוט של האינטראקציות שלו נתתי בפוסט הקודם, כשדיברתי על בחירת חבילה להתבססות עליה בבניית חדר בריחה.

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

כשרצינו להתנסות בו, ייבאתי אותו לתוך פרויקט קיים – הפרויקט שיצרתי כשעשיתי את הטוטריאל של יוניטי – אבל כל האוביקטים הופיעו בצבע ורוד.

האוביקטים של הספרייה ורודים כולם

עיקר הבעיה: Material

כאשר ב-Unity נתקלים בסוג כזה של התנהגות של asset-ים, הסיבה היא תמיד זאת: העדר Material. ה-Material הוא השכבה המכסה את האובייקט, והוא עשוי להיות צבע, מרקם, גרדיאנט, או כל סוג של דברים אלה.
הידע הזה עוזר לנו לדעת איך להתחיל לטפל בבעיה, אבל הוא עדיין לא נותן לנו פתרון ישיר, שכן למחסור ב-Material יכולות להיות כמה סיבות.

התיעוד מכוון אותנו לכיוון הנכון

בעיקרון, יש ל-VRIF תיעוד שמתייחס למצב כזה (סעיף 9 בעמוד הזה), אבל הוא היה קריפטי וגם לא מעודכן:

If all of your materials are pink, then you are probably using a newer Render Pipeline and need tהמשמעות היא שהנכסים תלויים ב-URP, שחסר בפרויקט אליו ייבאנו אותם.o upgrade your project’s materials : Edit -> Render Pipeline -> Universal Render Pipeline -> Upgrade Project Materials

המשמעות היא שהנכסים תלויים ב-URP, שחסר בפרויקט אליו ייבאנו אותם.

יישום התיעוד בפרויקט שלנו

קודם כל, חיפשתי את הנתיב שהם אמרו אבל הוא לא הופיע כך – הוא כנראה השתנה עם התקדמות גרסאות היוניטי. הנתיב הנכון, נכון ל-06/2023 הוא זה:

Edit -> Rendering -> Materials -> Convert Selected Built-In Materials to URP

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

החתיכה החסרה שהובילה אותי לפתרון

ואז התייעצתי עם מישהו שמכיר יוניטי, והוא הסביר לי שלב שהיה חסר לי:

בתוך התיקייה BNG Framework, שהיא התיקייה שמגיעה עם הפריימוורק ונכנסת לתיקיית ה-asset-ים, יש תיקיית Materials. צריך להכנס לתוך תיקיית ה-Materials ולסמן את ה-material-ים, ורק אז ללכת לתפריט וללחוץ על הפריט “Convert Selected Built-In Materials to URP”. כלומר, הלחיצה על זה מתאפשרת רק כשיש material-ים שנבחרו עם העכבר.
האמת היא שיש איזושהי רמיזה לזה בשם התפריט: Convert Selected Built-In Mate, כלומר “תמיר את הנבחרים“, אבל בזמנו לא שמתי לב לניואנס הזה.

אזהרה וטיפ

דבר חשוב שיש לשים לב אליו: אם תבחרו את כל הפריטים בתיקיית Materials (עם ctrl+a למשל) ותנסו לבחור את הפריט מהתפריט, הוא עדיין יהיה אפור, כי יש פריטים בתיקייה שאינם material-ים. צריך להקפיד לבחור רק את ה-material-ים.

כדי להימנע מהצורך להשמיט ידנית את הפריטים שאינם חומרים, ישנה דרך פשוטה לבחור רק את החומרים בפרויקט:

  1. בחלון הפרויקט, ליד שורת החיפוש יש אייקון של צורות גיאומטריות. זהו סמל “תצוגה לפי סוג”.
  2. כאשר לוחצים עליו, נפתח תפריט המפרט סוגים רבים של פריטים.
  3. יש לבחור את הסוג Material
  4. בחלון הפרויקט יוצגו לך כמה טאבים -  אחד של הפרויקט כולו, אחד של התיקייה שהיית בה כשחיפשת, ועוד כמה. כך אפשר להחליט באיזה הקשר של חומרים אתם רוצים לבצע את ההמרה.
יוניטי עם אוביקטים בצבעים נכונים
ה-material-ים של יוניטי חזרו להיות בצבעים הנכונים

פתרון שלב אחר שלב

כך תוכלו לתקן את בעיית הנכסים הוורודים ב- VRIF:

שלב 1: כדי להפעיל את המרת האוביקטים, יש להתחיל על ידי בחירת חומר (material) – או מספר חומרים – מהתיקייה Materials בתוך התיקיה BNG Framework בתוך התיקיה Assets.

שלב 2: בעורך Unity יש לנווט אל “Edit -> Rendering -> Materials -> Convert Selected Built-In Materials to URP”

שלב 3: יש ללחוץ על “Convert Selected Built-In Materials to URP”. זה יתחיל את תהליך ההמרה, ויפתור את בעיית הנכסים הוורודים.

הערה: חשוב לבחור רק חומרים בתיקייה ‘Materials’. אם תבחרו בטעות פריטים שאינם חומרים, הפריט בתפריט עלול להישאר אפור.

סיכום ומסקנות

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

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.