Pelajari cara mengimpor model 3D, mengonversinya menjadi format Sceneform, dan melihat pratinjau di Android Studio.
Impor aset 3D baru
Sceneform mendukung aset 3D dalam format berikut:
- OBJ
- glTF (animasi tidak didukung)
- FBX, dengan atau tanpa animasi.
Ikuti langkah-langkah berikut untuk mengimpor aset 3D baru:
Pastikan folder
appproject Anda berisi foldersampledata.Untuk membuat folder tersebut, klik kanan folder
appdi jendela Project, lalu pilih New > Sample Data Directory.Folder
sampledataadalah bagian dari project Android Studio Anda, tetapi kontennya tidak akan disertakan dalam APK Anda.Salin file aset sumber model 3D Anda (
*.obj,*.fbx, atau*.gltf), dan semua dependensinya (*.mtl,*.bin,*.png,*.jpg, dll.) ke dalam foldersampledata.Jangan menyalin file sumber ini ke folder
assetsatauresproject Anda, karena akan menyebabkan file tersebut disertakan dalam APK yang tidak perlu.Klik kanan aset sumber model 3D dan pilih Import Sceneform Asset untuk memulai proses impor.
Nilai digunakan oleh entri
sceneform.asset()dalambuild.gradleaplikasi, dan menentukan tempat file*.sfadan*.sfbakan dibuat dalam project Anda.Jika Anda mengimpor model untuk pertama kalinya, gunakan nilai default.
Kolom Deskripsi Jalur Aset Sumber Nama file aset model 3D OBJ, FBX, atau glTF yang akan diimpor. Jalur Material defaultmemberi tahu Sceneform untuk menggunakan bahan default bawaan atau jalur ke file*.matbahan kustom.
Jalur Output .sfa Gunakan default, atau tentukan jalur lain pada folder sampledata.File .sfa akan dibuat jika tidak ada. Atribut ini dapat diubah untuk mengontrol beberapa aspek proses impor.
Hal ini memastikan bahwa
*.sfatidak disertakan dalam APK Anda secara tidak berurutan.Jalur Output.sfb Secara default, folder src/main/assets/digunakan, yang memungkinkan penggunaan nama file aset arbitrer.Jika nama file (tanpa ekstensi file) adalah ID resource yang valid (misalnya
R.raw.filename), Anda dapat menggunakan foldersrc/main/res/raw/jika mau.Lihat Ringkasan resource aplikasi Android untuk mengetahui informasi selengkapnya tentang penggunaan folder
assets/danres/pada aplikasi Anda.File Animasi Jika Anda mengimpor
*.fbxfile animasi, klik tanda plus (+) dan tambahkan file lainnya satu per satu.Klik Finish untuk memulai proses impor.
Untuk mengimpor aset Anda, plugin akan melakukan hal berikut:
Menambahkan plugin gradle Sceneform ke
build.gradleproject's jika belum ada:dependencies { … classpath 'com.google.ar.sceneform:plugin:1.15.0' }Memperbarui file
build.gradleaplikasi untuk menyertakan barisapply plugin, dan entrisceneform.asset()untuk aset yang baru diimpor: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.Entri baru di
build.gradleaplikasi membuat dua tugas gradle:createAsset-<asset-name>akan membuat file definisi aset (*.sfa) Sceneform jika belum ada.Tugas ini tidak akan menimpa file
*.sfayang ada, yang berarti perubahan apa pun yang Anda buat pada file SFA setelah impor tidak akan ditimpa.File
*.sfaadalah file teks yang berisi deskripsi yang lengkap dan dapat dibaca oleh manusia tentang setelan impor aset. Referensi ini merujuk pada model dan tekstur dalam aset sumber Anda, serta menentukan material dengan menyediakan parameter material untuk material berbasis fisik Sceneform.compileAsset-<asset-name>mengompilasi file*.sfamenjadi file aset biner Sceneform (*.sfb).File
*.sfbini akan di-build pada APK aplikasi Anda dan dimuat pada runtime untuk membuat render.
Untuk informasi selengkapnya, lihat Referensi Plugin Sceneform Gradle.
Membuka
*.sfadi jendela teks dan*.sfbdi jendela Pelihat.
Memperbarui aset 3D yang sebelumnya diimpor
Saat Anda memperbarui file aset sumber model OBJ, FBX, atau glTF yang sebelumnya diimpor
(*.obj, *.fbx, atau *.gltf), entri sceneform.asset() yang sesuai di
aplikasi build.gradle Anda menyebabkan plugin menghasilkan
file *.sfb yang diperbarui secara otomatis, berdasarkan parameter *.sfa saat ini.
Untuk melakukan iterasi pada parameter untuk aset yang sudah diimpor:
- Ubah file teks
*.sfamenggunakan referensi format file SFA sebagai panduan. - Simpan perubahan Anda. Hal ini menyebabkan aset dikompilasi ulang dan
memperbarui file
*.sfb. - Lihat pratinjau aset yang diperbarui dengan mengklik dua kali file
*.sfbuntuk membuka jendela Viewer aset.
Jika Anda memperbarui aset yang sebelumnya diimpor yang menyertakan data animasi, impor setiap file *.fbx yang diperbarui satu per satu menggunakan tanda plus (+) di bagian Animation Files pada dialog impor.
Definisi aset Gradle
Proses impor akan menambahkan file animasi *.fbx di akhir file 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'])
Membuat Renderable
Setelah aset dikompilasi ke dalam format *.sfb, Anda dapat mem-build
ModelRenderable
dan melampirkannya ke node dalam scene sebagai berikut:
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;
});
Menggunakan materi kustom
Materi default Sceneform membuat developer mudah memperoleh hasil yang terlihat bagus. Anda juga dapat menggunakan bahan khusus untuk menyesuaikan tampilan aset secara mendalam.
Untuk menetapkan materi kustom ke aset Anda:
Buat file definisi material kustom (
*.mat), menggunakan [Referensi Material Kustom](/sceneform/Develop/custom-material sebagai panduan.Terapkan materi kustom ke aset:
Saat mengimpor aset baru:
- Tentukan file
*.matmateri kustom selama proses impor.
Untuk memperbarui aset yang diimpor sebelumnya:
Jika konten
*.sfabelum disesuaikan, hapus file*.sfadan*.sfbyang ada dan entrisceneform.asset()dibuild.gradleaplikasi, lalu impor ulang aset. Hal ini memastikan bahwa atribut*.sfadan parameter material yang dibuat ulang akan cocok dengan atribut yang didukung oleh bahan kustom Anda.Untuk mempertahankan penyesuaian
*.sfayang Anda buat, buka file*.sfadan ubah atributsourceke jalur file*.matmateri kustom Anda, lalu sesuaikan atribut*.sfadan parameter material secara manual agar sesuai dengan materi kustom Anda.
- Tentukan file

