تعرّف على كيفية استيراد نماذج ثلاثية الأبعاد وتحويلها إلى تنسيق Sceneform ومعاينتها في Android Studio.
استيراد مادة عرض جديدة ثلاثية الأبعاد
يدعم Sceneform مواد العرض الثلاثية الأبعاد بالتنسيقات التالية:
- OBJ
- glTF (الصور المتحركة غير متاحة)
- FBX، باستخدام الصور المتحركة أو بدونها
اتّبِع الخطوات التالية لاستيراد مادة عرض جديدة ثلاثية الأبعاد:
تحقق من أن مجلد
app
في مشروعك يحتوي على مجلدsampledata
.لإنشاء المجلد، انقر بزر الماوس الأيمن على المجلد
app
في نافذة المشروع، ثم اختَر جديد >؛ نموذج دليل بيانات.يُعدّ مجلد
sampledata
جزءًا من مشروع"استوديو Android"، ولكن لن يتم تضمين محتواه في حزمة APK.انسخ ملف مادة عرض مصدر النموذج ثلاثي الأبعاد (
*.obj
أو*.fbx
أو*.gltf
) وجميع تبعياته (*.mtl
أو*.bin
أو*.png
أو*.jpg
أو غير ذلك) إلى مجلدsampledata
.لا تنسخ ملفات المصدر هذه إلى مجلد
assets
أوres
لمشروعك، حيث سيؤدي ذلك إلى تضمينها في حزمة APK بدون داعٍ.انقر بزر الماوس الأيمن على مادة عرض مصدر النموذج ثلاثي الأبعاد واختر استيراد مادة عرض Sceneform لبدء عملية الاستيراد.
يتم استخدام القيم من خلال إدخال
sceneform.asset()
في app'sbuild.gradle
، وتحديد مكان إنشاء ملفات*.sfa
و*.sfb
في مشروعك.إذا كنت تستورد نموذجًا للمرة الأولى، استخدِم القيم التلقائية.
الحقل الوصف مسار مادة العرض المصدر اسم ملف مادة العرض الخاصة بنموذج OBJ أو FBX أو glTF الذي سيتم استيراده. المادة الأساسية default
يطلب Sceneform's أن يستخدم المادة المدمجة. أو المسار إلى المادة المخصّصة.*.mat
.sfa إخراج المسار يمكنك استخدام المسار التلقائي أو تحديد مسار آخر ضمن المجلد sampledata
.يتم إنشاء ملف sfa .في حال فقدانه. ويمكن تعديلها للتحكّم في بعض جوانب عملية الاستيراد.
يضمن هذا الإجراء عدم تضمين
*.sfa
في ملف APK الخاص بك بدون ضرورة..sfb إخراج المسار ويتم استخدام المجلد src/main/assets/
تلقائيًا، ما يتيح استخدام أسماء ملفات الأصول العشوائية.إذا كان اسم الملف (بدون امتداد الملف) هو معرّف مورد صالح (مثل
R.raw.filename
)، يمكنك بدلاً من ذلك استخدام المجلدsrc/main/res/raw/
إذا أردت.اطّلِع على نظرة عامة على مراجع التطبيقات في نظام التشغيل Android لمعرفة المزيد من المعلومات عن استخدام المجلدين
assets/
وres/
في تطبيقك.ملفات الصور المتحركة إذا كنت تستورد
*.fbx
ملفات رسوم متحركة، انقر على علامة الجمع (+) وأضِف بقية الملفات بشكل فردي.انقر على Finish (إنهاء) لبدء عملية الاستيراد.
لاستيراد مادة العرض، عليك تنفيذ ما يلي:
تُضيف المكوّن الإضافي Sceneform gradle إلى project's
build.gradle
إذا لم يكن متوفّرًا حاليًا:dependencies { … classpath 'com.google.ar.sceneform:plugin:1.15.0' }
يتم تعديل ملف
build.gradle
app's لتضمين سطر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>
ملف تعريف مادة عرض Sceneform (*.sfa
) إذا لم يكن متوفّرًا بعد.لن تؤدي هذه المهمة إلى استبدال ملف
*.sfa
الحالي، ما يعني أنّه لن يتم استبدال أي تعديلات تُجريها على ملف SFA بعد استيراده.وملف
*.sfa
هو ملف نصي يتضمّن وصفًا كاملاً يمكن للمستخدمين قراءته حول إعدادات استيراد مواد العرض. وهو يشير إلى النماذج والزخارف في مادة عرض المصدر، ويعرّف أيضًا المواد من خلال تقديم معلَمات جوهرية للمواد القائمة على الطراز البيئي.تُجمِّع
compileAsset-<asset-name>
الملف*.sfa
في ملف Syeneform الثنائي (*.sfb
).يتم تضمين ملف
*.sfb
هذا في ملف APK لتطبيقك، ويتم تحميله في وقت التشغيل لإنشاء العرض القابل للعرض.
للحصول على مزيد من المعلومات، يمكنك الاطّلاع على مرجع Syneform Gradle المكوّن الإضافي.
يتم فتح
*.sfa
في نافذة نصية و*.sfb
في نافذة مُشاهد.
تعديل مادة عرض ثلاثية الأبعاد تم استيرادها سابقًا
عند تعديل ملف مصدر مصدر نموذج OBJ أو FBX أو glTF الذي تم استيراده مسبقًا
(*.obj
أو *.fbx
أو *.gltf
)، يؤدي إدخال sceneform.asset()
المقابل في
app's build.gradle
إلى إنشاء المكوّن الإضافي تلقائيًا
لملف *.sfb
محدّث بناءً على معلمات *.sfa
الحالية.
لإعادة ضبط المعلمات على مادة عرض تم استيرادها من قبل:
- يمكنك تعديل ملف
*.sfa
النصي، باستخدام مرجع تنسيق ملف SFA كدليل. - احفظ التغييرات. ويؤدي ذلك إلى إعادة تجميع مادة العرض وتعديل
ملف
*.sfb
. - عايِن مادة العرض المعدَّلة من خلال النقر مرّتين على الملف
*.sfb
لفتح نافذة مُشاهد مادة العرض.
إذا كنت تريد تعديل مادة عرض تم استيرادها سابقًا تتضمّن بيانات الصور المتحركة،
يمكنك استيراد كل ملف من ملفات *.fbx
المعدّلة بشكل فردي باستخدام علامة الإضافة (+) في قسم ملفات الصور المتحركة ضمن مربّع حوار الاستيراد.
تعريفات مواد العرض في Gradle
تضيف عملية الاستيراد أي ملفات صور متحركة بتنسيق *.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;
});
استخدام مواد مخصّصة
Sceneform's المواد التلقائية تسهّل على مطوّري البرامج الحصول على نتائج رائعة. يمكنك أيضًا استخدام المواد المخصّصة لتخصيص شكل مواد العرض بشكل كبير.
لتخصيص مادة مخصّصة لمادة العرض:
يمكنك إنشاء ملف تعريف مادة مخصّصة (
*.mat
) باستخدام [مرجع المواد المخصّصة](/sceneform/develop/custom-material كدليل.تطبيق المادة المخصّصة على مادة العرض:
عند استيراد مادة عرض جديدة:
- حدِّد ملف المادة المخصّصة
*.mat
أثناء عملية الاستيراد.
لتعديل مادة عرض تم استيرادها سابقًا:
إذا لم يتم تخصيص محتوى
*.sfa
، احذف ملفَي*.sfa
و*.sfb
الحاليَين وأدخِلsceneform.asset()
في التطبيقات&39;sbuild.gradle
، ثم إعادة استيراد مادة العرض. يضمن ذلك أن تكون سمات*.sfa
ومعلّمات المواد المُعاد إنشاؤها مطابقة للسمات التي تدعمها المادة المخصّصة الخاصة بك.للحفاظ على أي عمليات تخصيص أجريتها على
*.sfa
، افتح ملف*.sfa
وغيِّر سمةsource
إلى المسار إلى ملف المادة المخصّصة*.mat
، ثم عدِّل سمات*.sfa
ومعلّمات المواد يدويًا لتتطابق مع المادة المخصّصة.
- حدِّد ملف المادة المخصّصة