با نحوه وارد کردن مدل های سه بعدی، تبدیل آنها به فرمت Sceneform و پیش نمایش آنها در Android Studio آشنا شوید.
یک دارایی سه بعدی جدید وارد کنید
Sceneform دارایی های سه بعدی را در قالب های زیر پشتیبانی می کند:
- 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 شما گنجانده شوند.روی دارایی منبع مدل سه بعدی کلیک راست کرده و Import Sceneform Asset را انتخاب کنید تا فرآیند واردات آغاز شود.
مقادیر توسط ورودی
sceneform.asset()
درbuild.gradle
برنامه استفاده میشوند و تعیین میکنند که*.sfa
و*.sfb
در پروژه شما تولید میشوند.اگر برای اولین بار مدلی را وارد میکنید، از مقادیر پیشفرض استفاده کنید.
رشته شرح مسیر دارایی منبع نام فایل دارایی مدل سه بعدی OBJ، FBX یا glTF برای وارد کردن. مسیر مادی default
به Sceneform میگوید که از متریال پیشفرض داخلی یا مسیر فایل سفارشی*.mat
استفاده کند.مسیر خروجی .sfa از پیش فرض استفاده کنید یا مسیر دیگری را در پوشه sampledata
کنید.در صورت عدم وجود فایل .sfa ایجاد می شود. می توان آن را برای کنترل برخی از جنبه های فرآیند واردات تغییر داد.
این تضمین می کند که
*.sfa
بی جهت در APK شما گنجانده نشده است.مسیر خروجی .sfb به طور پیش فرض از src/main/ assets /
folder استفاده می شود که امکان استفاده از نام فایل دارایی دلخواه را فراهم می کند.اگر نام فایل (بدون پسوند فایل) یک شناسه منبع معتبر است (مثلا
R.raw.filename
)، در صورت تمایل میتوانید از پوشهsrc/main/ res/raw /
استفاده کنید.برای اطلاعات بیشتر در مورد استفاده از پوشههای
assets/
وres/
در برنامه ، مرور کلی منابع برنامه Android را ببینید.فایل های انیمیشن اگر فایلهای انیمیشن
*.fbx
را وارد میکنید، روی علامت مثبت (+) کلیک کنید و بقیه فایلها را جداگانه اضافه کنید.برای شروع فرآیند واردات، روی Finish کلیک کنید.
برای وارد کردن دارایی شما، افزونه موارد زیر را انجام می دهد:
اگر افزونه Sceneform gradle وجود نداشته باشد به
build.gradle
پروژه شما اضافه می کند:dependencies { … classpath 'com.google.ar.sceneform:plugin:1.15.0' }
فایل
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.
این ورودی های جدید در build.gradle برنامه دو وظیفه
build.gradle
ایجاد می کنند:createAsset-<asset-name>
یک فایل تعریف دارایی Sceneform (*.sfa
) را ایجاد می کند اگر هنوز وجود نداشته باشد.این کار یک فایل
*.sfa
موجود را بازنویسی نمی کند، به این معنی که هرگونه تغییری که پس از وارد کردن در فایل SFA ایجاد می کنید، بازنویسی نمی شود.فایل
*.sfa
یک فایل متنی است که حاوی توضیحات کامل و قابل خواندن برای انسان از تنظیمات واردات دارایی است. به مدلها و بافتهای موجود در دارایی منبع شما اشاره میکند، و همچنین مواد را با ارائه پارامترهای مواد برای مواد مبتنی بر فیزیکی Sceneform تعریف میکند.compileAsset-<asset-name>
فایل*.sfa
را در یک فایل دارایی باینری Sceneform (*.sfb
) کامپایل می کند.این فایل
*.sfb
در APK برنامه شما ساخته می شود و در زمان اجرا برای ایجاد فایل قابل رندر بارگذاری می شود.
برای اطلاعات بیشتر، به مرجع پلاگین Sceneform Gradle مراجعه کنید.
*.sfa
در یک پنجره متنی و*.sfb
در یک پنجره Viewer باز می کند.
دارایی سه بعدی وارد شده قبلی را به روز کنید
هنگامی که فایل دارایی منبع مدل OBJ، FBX، یا glTF قبلا وارد شده ( *.obj
، *.fbx
، یا *.gltf
) را به روز می کنید، ورودی مربوط به sceneform.asset()
در build.gradle
برنامه شما باعث می شود که افزونه به طور خودکار عمل کند. یک فایل *.sfb
به روز شده، بر اساس پارامترهای *.sfa
فعلی ایجاد کنید.
برای تکرار پارامترهای یک دارایی از قبل وارد شده:
- فایل متنی
*.sfa
را با استفاده از مرجع فرمت فایل SFA به عنوان راهنما تغییر دهید. - تغییرات خود را ذخیره کنید این باعث می شود که دارایی دوباره کامپایل شود و فایل
*.sfb
به روز شود. - پیش نمایش دارایی به روز شده را با دوبار کلیک کردن روی فایل
*.sfb
کنید تا پنجره Viewer باز شود.
اگر دارایی قبلاً وارد شده را که شامل دادههای انیمیشن است، بهروزرسانی میکنید، هر یک از فایلهای *.fbx
بهروزرسانیشده را بهصورت جداگانه با استفاده از علامت مثبت (+) در بخش Animation Files در گفتگوی واردات وارد کنید.
تعاریف دارایی Gradle
فرآیند import هر فایل انیمیشن *.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'])
Renderable را ایجاد کنید
هنگامی که دارایی به فرمت *.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، دستیابی به نتایج عالی را برای توسعهدهندگان آسان میکند. همچنین می توانید از مواد سفارشی برای شخصی سازی عمیق ظاهر دارایی های خود استفاده کنید.
برای اختصاص یک ماده سفارشی به دارایی خود:
با استفاده از [Custom Material Reference](/sceneform/develop/custom-material به عنوان راهنما، یک فایل تعریف مواد سفارشی (
*.mat
) ایجاد کنید.مواد سفارشی را روی دارایی اعمال کنید:
هنگام وارد کردن دارایی جدید :
- فایل سفارشی
*.mat
را در طی فرآیند واردات مشخص کنید.
برای به روز رسانی دارایی وارد شده قبلی :
اگر محتوای
*.sfa
سفارشی نشده است، فایلهای*.sfa
و*.sfb
موجود وsceneform.asset()
را درbuild.gradle
برنامه حذف کنید، سپس دارایی را دوباره وارد کنید. این تضمین میکند که ویژگیهای*.sfa
و پارامترهای مواد بازسازیشده با مواردی که توسط مواد سفارشی شما پشتیبانی میشوند مطابقت دارند.برای حفظ هرگونه سفارشی سازی
*.sfa
که انجام داده اید، فایل*.sfa
را باز کنید و ویژگیsource
را به مسیر فایل*.mat
مواد سفارشی خود تغییر دهید، سپس به صورت دستی ویژگی های*.sfa
و پارامترهای متریال را تنظیم کنید تا با سفارشی خود مطابقت داشته باشد. مواد
- فایل سفارشی