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
app
project Anda berisi foldersampledata
.Untuk membuat folder tersebut, klik kanan folder
app
di jendela Project, lalu pilih New > Sample Data Directory.Folder
sampledata
adalah 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
assets
ataures
project 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.gradle
aplikasi, dan menentukan tempat file*.sfa
dan*.sfb
akan 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 default
memberi tahu Sceneform untuk menggunakan bahan default bawaan atau jalur ke file*.mat
bahan 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
*.sfa
tidak 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
*.fbx
file 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.gradle
project's jika belum ada:dependencies { … classpath 'com.google.ar.sceneform:plugin:1.15.0' }
Memperbarui file
build.gradle
aplikasi 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.gradle
aplikasi membuat dua tugas gradle:createAsset-<asset-name>
akan membuat file definisi aset (*.sfa
) Sceneform jika belum ada.Tugas ini tidak akan menimpa file
*.sfa
yang ada, yang berarti perubahan apa pun yang Anda buat pada file SFA setelah impor tidak akan ditimpa.File
*.sfa
adalah 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*.sfa
menjadi file aset biner Sceneform (*.sfb
).File
*.sfb
ini akan di-build pada APK aplikasi Anda dan dimuat pada runtime untuk membuat render.
Untuk informasi selengkapnya, lihat Referensi Plugin Sceneform Gradle.
Membuka
*.sfa
di jendela teks dan*.sfb
di 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
*.sfa
menggunakan 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
*.sfb
untuk 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
*.mat
materi kustom selama proses impor.
Untuk memperbarui aset yang diimpor sebelumnya:
Jika konten
*.sfa
belum disesuaikan, hapus file*.sfa
dan*.sfb
yang ada dan entrisceneform.asset()
dibuild.gradle
aplikasi, lalu impor ulang aset. Hal ini memastikan bahwa atribut*.sfa
dan parameter material yang dibuat ulang akan cocok dengan atribut yang didukung oleh bahan kustom Anda.Untuk mempertahankan penyesuaian
*.sfa
yang Anda buat, buka file*.sfa
dan ubah atributsource
ke jalur file*.mat
materi kustom Anda, lalu sesuaikan atribut*.sfa
dan parameter material secara manual agar sesuai dengan materi kustom Anda.
- Tentukan file