כאן מוסבר איך מייבאים מודלים תלת-ממדיים, ממירים אותם לפורמט Squareform וצופים בהם בתצוגה מקדימה ב-Android Studio.
ייבוא נכס תלת-ממד חדש
אפשר ליצור נכסי תלת-ממד בפורמט הבא ב-Square:
- OBJ
- glTF (האנימציות לא נתמכות)
- FBX, עם או בלי אנימציות.
כדי לייבא נכס תלת-ממד חדש:
צריך לוודא שתיקיית
appשל הפרויקט מכילה תיקייהsampledata.כדי ליצור את התיקייה, לוחצים לחיצה ימנית על התיקייה
appבחלון Project (פרויקט), ואז בוחרים באפשרות New > Sample Data Directory (ספריית נתונים לדוגמה).התיקייה
sampledataהיא חלק מפרויקט Android Studio שלכם, אבל התוכן שלה לא ייכלל ב-APK.מעתיקים את קובץ המקור של המודל בתלת-ממד (
*.obj,*.fbxאו*.gltf), ואת כל יחסי התלויות שלו (*.mtl,*.bin,*.png,*.jpgוכו') לתיקיית ה-sampledata.אין להעתיק את קובצי המקור האלה לתיקייה
assetsאוresבפרויקט, כי הם יצורפו לחבילות ה-APK שלך שלא לצורך.לוחצים לחיצה ימנית על נכס המקור של המודל בתלת-ממד ובוחרים באפשרות ייבוא נכס של תבנית נוף כדי להתחיל את תהליך הייבוא.
הערכים משמשים את הערך
sceneform.asset()ב-app'sbuild.gradle, וקובעים היכן ייווצרו הקבצים*.sfaו-*.sfbבפרויקט.אם אתם מייבאים מודל בפעם הראשונה, צריך להשתמש בערכי ברירת המחדל.
שדה תיאור נתיב נכס המקור שם הקובץ של נכס המודל OBJ , FBX או glTF 3D לייבוא. נתיב של חומר defaultאומר ל-Squareform's להשתמש בקובץ המוגדר כברירת מחדל או בנתיב לקובץ חומר מותאם אישית*.mat.
נתיב פלט sfa. עליך להשתמש בברירת המחדל או לציין נתיב אחר בתיקייה sampledata.קובץ ה- .sfa נוצר אם חסר. ניתן לשנות אותה כדי לשלוט בהיבטים מסוימים של תהליך הייבוא.
כך ניתן לוודא ש-
*.sfaלא נכלל ב-APK שלך באופן מיותר.נתיב פלט ssfb. כברירת מחדל נעשה שימוש בתיקייה src/main/assets/, שמאפשרת להשתמש בשמות קבצים שרירותיים של נכסים.אם שם הקובץ (ללא סיומת הקובץ) הוא מזהה משאב חוקי (למשל,
R.raw.filename), אפשר להשתמש בתיקייתsrc/main/res/raw/אם ברצונך להמשיך.לפרטים נוספים על השימוש בתיקיות
assets/ו-res/באפליקציה, עיין ב-Android's סקירה כללית של משאבי האפליקציה.קובצי אנימציה אם מייבאים
*.fbxקובצי אנימציה, לוחצים על סימן הפלוס (+) ומוסיפים את שאר הקבצים בנפרד.לוחצים על סיום כדי להתחיל את תהליך הייבוא.
כדי לייבא את הנכס, הפלאגין יבצע את הפעולות הבאות:
מוסיף את הפלאגין של דרגה של schemaform ל-project's
build.gradleאם הוא עדיין לא קיים:dependencies { … classpath 'com.google.ar.sceneform:plugin:1.15.0' }עדכון הקובץ app's
build.gradleכך שיכלול שורתapply plugin, ורשומתsceneform.asset()לנכס המיובא החדש:apply plugin: 'com.google.ar.sceneform.plugin' sceneform.asset('sampledata/models/andy.obj', // 'Source Asset Path' specified during import. 'default', // 'Material Path' specified during import. 'sampledata/models/andy.sfa', // '.sfa Output Path' specified during import. 'src/main/res/raw/andy') // '.sfb Output Path' specified during import.שתי הרשומות החדשות ב-app's
build.gradleיוצרות שתי משימות:המערכת
createAsset-<asset-name>יוצרת קובץ של הגדרת תצורה ב-Square (*.sfa) אם הוא עדיין לא קיים.המשימה הזו לא תחליף קובץ
*.sfaקיים, כלומר כל שינוי שתבצעו בקובץ SFA לאחר הייבוא לא יוחלף.הקובץ
*.sfaהוא קובץ טקסט שמכיל תיאור מלא וקריא של הגדרות הייבוא של הנכס. הוא מפנה למודלים ולמרקמים בנכס המקור שלכם, ומגדיר גם חומרים על סמך חומרים מהותיים לחומרים המבוססים על סצינה פיזית.compileAsset-<asset-name>מבצע הידור של הקובץ*.sfaלקובץ מצגת בינארי של נכס (*.sfb).קובץ
*.sfbזה מובנה ב-APK של האפליקציה והוא נטען בזמן הריצה כדי ליצור את הרינדור.
למידע נוסף, עיינו בהפניה ל-Sceneform Gradle Plugin.
פותח את
*.sfaבחלון טקסט ואת*.sfbבחלון צופה.
עדכון נכס תלת-ממד שיובאו בעבר
כשמעדכנים קובץ נכס מקור של מודל OBJ, FBX או glTF
(*.obj, *.fbx או *.gltf), הערך התואם ב-sceneform.asset() ב-app's build.gradle גורם לפלאגין ליצור באופן אוטומטי קובץ *.sfb מעודכן, על סמך הפרמטרים *.sfa הנוכחיים.
כדי לחזור על הפרמטרים של נכס שכבר יובא:
- משנים את קובץ הטקסט
*.sfaומשתמשים בפורמט בפורמט קובץ SFA כמדריך. - שומרים את השינויים. כתוצאה מכך, מהדור מחדש של הנכס מתעדכן הקובץ
*.sfb. - כדי לפתוח תצוגה מקדימה של הנכס המעודכן, לוחצים לחיצה כפולה על הקובץ
*.sfbכדי לפתוח את חלון הצופה של הנכס.
אם אתם מעדכנים נכס שיובא בעבר ושכולל נתוני אנימציה, עליכם לייבא כל אחד מקובצי ה-*.fbx המעודכנים בנפרד באמצעות סימן הפלוס (+) בקטע קובצי אנימציה בתיבת הדו-שיח של הייבוא.
הגדרות של נכסים
תהליך הייבוא מוסיף קובצי אנימציה של *.fbx בסוף
קובץ ה-build.gradle.
sceneform.asset('sampledata/models/andy_dance.fbx',
'default',
'sampledata/models/andy_dance.sfa',
'src/main/res/raw/andy_dance',
['sampledata/models/andy_wave_r.fbx',
'sampledata/models/andy_wave_l.fbx'])
יצירת רינדור
אחרי שיוצרים את הנכס בפורמט *.sfb, אפשר ליצור ModelRenderable
ולצרף אותו לצומת באופן הבא:
ModelRenderable.builder()
// To load as an asset from the 'assets' folder ('src/main/assets/andy.sfb'):
.setSource(this, Uri.parse("andy.sfb"))
// Instead, load as a resource from the 'res/raw' folder ('src/main/res/raw/andy.sfb'):
//.setSource(this, R.raw.andy)
.build()
.thenAccept(renderable -> andyRenderable = renderable)
.exceptionally(
throwable -> {
Log.e(TAG, "Unable to load Renderable.", throwable);
return null;
});
שימוש בחומרים מותאמים אישית
סצנת ברירת המחדל של חומרים מעוצבים מאפשרת למפתחים לקבל תוצאות נהדרות. תוכלו גם להשתמש בחומרים מותאמים אישית כדי להתאים אישית את המראה של הנכסים.
כדי להקצות חומר מותאם אישית לנכס:
יוצרים קובץ של הגדרת חומר מותאם אישית (
*.mat) באמצעות המדריך [חומרי עזר בהתאמה אישית](/sceneform/deveop/custom-material כמדריך.החלת החומר המותאם אישית על הנכס:
כשמייבאים נכס חדש:
- ציינו את קובץ ה-
*.matהמותאם אישית במהלך תהליך הייבוא.
כדי לעדכן נכס שיובא בעבר:
אם התוכן של
*.sfaלא הותאם אישית, יש למחוק את הקבצים הקיימים של*.sfaו-*.sfbואת הרשומהsceneform.asset()ב-app'sbuild.gradle. לאחר מכן, מייבאים מחדש את הנכס. כך ניתן להבטיח שהמאפיינים והפרמטרים של החומר שנוצר,*.sfa, שנוצרו מחדש, יתאימו לאלו הנתמכים על ידי החומר המותאם אישית שלכם.כדי לשמור את ההתאמות האישיות של
*.sfaשבוצעו, פותחים את הקובץ*.sfaומשנים את המאפייןsourceלנתיב אל הקובץ בהתאמה אישית*.mat, ולאחר מכן מתאימים את המאפיינים והפרמטרים של החומר באופן ידני כך שיתאימו לחומר המותאם אישית.
- ציינו את קובץ ה-

