Center mode AR Session
Center mode adalah konsep inti Unity AR. Ini menentukan objek mana yang dipilih session sebagai titik referensi, atau center object, untuk semua AR tracking selama runtime, serta objek mana dalam session yang dapat bergerak bebas. Melalui konten berikut, Anda akan memahami konsep dasar center mode dan pengaruhnya terhadap perilaku gerak objek di scene.
Sebelum mulai
- Pelajari konsep dasar, komposisi, dan workflow session melalui Pengenalan AR Session.
- Pelajari peran camera dalam scene AR melalui Camera, serta bagaimana session mengontrol properti camera untuk memastikan pengalaman AR yang benar.
- Pelajari konsep dasar, komposisi, dan lifecycle XR Origin melalui XR Origin.
- Pelajari konsep dasar, status, dan lifecycle target melalui Target.
Center object dan center mode
Dalam satu session, satu atau lebih fitur AR yang berbeda dapat berjalan secara bersamaan. Fitur AR ini dapat melacak objek yang berbeda, dan juga dapat menggunakan motion tracking secara bersamaan untuk melacak posisi dan orientasi perangkat itu sendiri.
Untuk memastikan perilaku gerak objek di scene sesuai dengan ekspektasi, session perlu memilih sebuah titik referensi sebagai pusat semua AR tracking. Representasi titik referensi ini di scene Unity adalah center object (CenterObject). Center mode (CenterMode) adalah aturan yang menentukan objek mana yang menjadi center object ini selama runtime session.
Pusat sebuah session dapat berupa salah satu objek berikut:
- Target yang sedang dilacak
- XR Origin
- Camera
Center mode menentukan objek mana yang dipilih session sebagai center object, dan apakah objek ini dapat bergerak bebas. Objek selain objek ini, termasuk camera, XR Origin, dan target non-center, dikontrol oleh session dan bergerak dengan center object sebagai titik referensi.
Di Unity, session mendukung empat mode pusat berikut:
| Nama | Ilustrasi | Deskripsi |
|---|---|---|
| FirstTarget SpecificTarget |
![]() |
Menggunakan target sebagai pusat, dan target tersebut dapat bergerak bebas. Di antaranya,
|
| SessionOrigin | ![]() |
Menggunakan XR Origin sebagai pusat, dan XR Origin dapat bergerak bebas. camera dan target dalam session dikontrol oleh session dan bergerak dengan XR Origin pusat sebagai titik referensi. |
| Camera | ![]() |
Menggunakan camera sebagai pusat, dan camera dapat bergerak bebas. XR Origin dan target dalam session dikontrol oleh session dan bergerak dengan camera pusat sebagai titik referensi. |
Ada tiga objek pada ilustrasi: bola biru mewakili XR Origin, kerucut biru mewakili camera, dan gambar kuning mewakili target. Dalam mode pusat yang berbeda, session memilih objek yang berbeda sebagai objek pusat. Gambar menampilkan sistem koordinat lokal objek yang sesuai.
Kiat
Jika Anda berpengalaman menggunakan AR Foundation, Anda mungkin memperhatikan bahwa AR Foundation tidak memiliki konsep serupa. Sebenarnya, pola perilaku AR Foundation konsisten dengan mode pusat SessionOrigin.
Dalam session, hubungan gerak relatif antara target dan camera dikontrol oleh session saat ini. Hubungan gerak relatif antara XR Origin dan camera dikontrol oleh session saat ini atau oleh framework pihak ketiga, seperti AR Foundation. Keberadaan mode pusat memastikan bahwa session dapat mengontrol perilaku gerak objek dalam scene dengan benar di berbagai lingkungan runtime.
Misalnya, jika AR Foundation atau SDK headset berbasis Unity XR mengontrol hubungan gerak relatif antara XR Origin dan camera, XR Origin, sebagai desain framework Unity XR, dapat dikontrol dan digerakkan oleh session, sedangkan camera tidak. Pada saat ini session akan membatasi mode pusat ke FirstTarget, SpecificTarget, atau SessionOrigin. Dengan begitu, bagi session pusatnya adalah XR Origin atau suatu target, sedangkan bagi framework Unity XR pusatnya tetap XR Origin, dan seluruh sistem dapat bekerja dengan sempurna.
Peringatan
Dalam Unity AR, objek apa pun yang berada dalam sistem koordinat dunia Unity dan transform-nya tidak disesuaikan menurut komponen session mungkin tidak dapat ditampilkan dengan benar. Karena session menyesuaikan posisi dan orientasi objek lain dalam scene berdasarkan posisi dan orientasi objek pusat, jika ada objek yang tidak dikontrol oleh session, posisi dan orientasinya dapat tidak konsisten dengan posisi dan orientasi yang dihitung oleh session, sehingga menyebabkan perilaku yang tidak terduga.
Misalnya, jika sebuah model panda ditempatkan di sistem koordinat dunia, posisi dan orientasi model panda ini mungkin tidak memiliki hubungan yang sesuai dengan objek apa pun di dunia nyata, sehingga terlihat seperti melayang di udara atau bergerak ke sana kemari.
Praktik yang benar adalah selalu menempatkan konten yang akan ditampilkan di bawah node target tertentu, atau di bawah node XR Origin jika konten perlu mengikuti gerakan XR Origin. Dengan begitu, posisi dan orientasi konten akan disesuaikan menurut hasil perhitungan session, sehingga konten dapat dioverlay dengan benar di dunia nyata.
Menyelaraskan konten dengan posisi dan orientasi target atau XR Origin secara manual dimungkinkan, tetapi harus dilakukan pada waktu yang benar. Lihat memilih mode pusat yang tepat.
Mode pusat yang valid
Tidak semua mode pusat valid dalam segala keadaan. session menentukan mode pusat mana yang valid berdasarkan lingkungan runtime saat ini dan frame source yang dipilih, sehingga dapat mengontrol perilaku gerak objek dalam scene dengan benar. Properti ARSession.AvailableCenterMode dapat digunakan untuk mendapatkan daftar mode pusat yang valid untuk session saat ini.
Berdasarkan perbedaan frame source yang akhirnya dipilih, mode pusat yang valid untuk session memiliki beberapa keadaan berikut:
| frame source | camera dikontrol | memiliki data gerak | memiliki desain origin | mode pusat yang valid |
|---|---|---|---|---|
|
Ya | Tidak | - |
|
|
Ya | Ya | Ya |
camera bukannode anak dari XR Origin |
|
Tidak | Ya | Ya |
|
|
Tidak | Ya | Ya |
|
|
Tidak | Ya | Tidak |
|
Selain saat menggunakan FramePlayer, mode pusat yang valid ditentukan ketika session dirakit. Saat menggunakan FramePlayer, mode pusat yang valid ditentukan secara dinamis berdasarkan apakah data yang dikeluarkan setiap frame selama session berjalan berisi informasi gerak.
Karakteristik berbagai center mode
Selanjutnya, kami akan menggunakan serangkaian video contoh untuk menunjukkan perilaku gerak objek dalam center mode yang berbeda.
Konten video adalah sebagai berikut:
Di dunia nyata, ada dua jenis trackable objects yang berbeda:
- Salah satunya adalah pohon Natal, yang diam. Objek ini dilacak melalui fitur sparse spatial map.
- Yang lain adalah selembar kertas A4, yang sudah dicetak sebuah gambar sebelumnya. Kertas ini dapat bergerak. Objek ini dilacak melalui fitur image tracking.
Saat merekam video, observer, yaitu ponsel, mulai dari sisi kanan belakang pohon Natal dan bergerak mengelilinginya. Kertas A4 berayun ke kiri dan kanan di depan observer.
Untuk memudahkan pengamatan, kami menambahkan beberapa marker pada objek berbeda di scene.
- Pohon Natal: saat berada dalam status tracking, sebuah point cloud biru terang ditumpangkan pada ruang yang ditempatinya. Marker ini akan hilang saat tracking hilang.
- Kertas A4: saat berada dalam status tracking, sebuah panda ditumpangkan tepat di atasnya. View
Gamejuga menampilkan gambar yang sepenuhnya sama dengan konten dan ukuran kertas A4. Marker ini akan hilang saat tracking hilang.- XR Origin: sebuah bola biru ditempatkan pada posisinya
- Camera: sebuah kerucut biru ditempatkan pada posisinya, dan sumbu utama kerucut sejajar dengan arah pandang camera.
Video-video ini direkam menggunakan data runtime simulasi dalam mode Play di Unity editor. Sisi kiri video adalah view Scene, dan sisi kanan adalah view Game. Konten view Game sama dengan apa yang dilihat pengguna pada ponsel di dunia nyata.
Center mode FirstTarget dan SpecificTarget
Mode center FirstTarget dan SpecificTarget adalah mode yang menggunakan suatu target sebagai objek center. Dalam dua mode ini, selain target center, camera, XR Origin, dan target lain dalam session semuanya dikontrol oleh session dan bergerak dengan target center sebagai titik referensi.
Beberapa target dapat bergerak di dunia nyata, misalnya kertas A4 dalam video.
Dalam video di atas, objek center adalah kertas A4 yang dilacak melalui image tracking. Dapat dilihat bahwa karena tidak ada operasi eksternal, kertas A4 (panda) diam, sedangkan camera (kerucut biru), XR Origin (bola biru), dan pohon Natal (point cloud biru terang) semuanya bergerak.
Beberapa target diam di dunia nyata, misalnya pohon Natal dalam video.
Dalam video di atas, objek center adalah pohon Natal yang dilacak melalui sparse spatial map. Dapat dilihat bahwa karena tidak ada operasi eksternal, pohon Natal (point cloud biru terang) diam, sedangkan camera (kerucut biru) dan kertas A4 (panda) bergerak. XR Origin (bola biru) juga tidak bergerak, tetapi ini karena ia diam relatif terhadap pohon Natal.
Dalam dua mode ini, target center sebagai titik referensi dapat bergerak bebas. Saat ini, camera, XR Origin, dan target lain dalam session akan bergerak bersamanya, dan transform mereka tidak dapat dikontrol dari luar.
Dalam video di atas, objek center adalah kertas A4 yang dilacak melalui image tracking. Dapat dilihat bahwa karena kita memindahkan kertas A4 (panda) secara manual, camera (kerucut biru), XR Origin (bola biru), dan pohon Natal (point cloud biru terang) ikut bergerak. Perlu diperhatikan bahwa konten yang ditampilkan di view
Gametidak berubah saat ini, karena posisi dan orientasi camera relatif terhadap kertas A4 dan objek lain tidak berubah.
Perbedaan antara mode FirstTarget dan SpecificTarget adalah bahwa selama runtime, target center mungkin berubah, tetapi metode pemilihan center berbeda saat perubahan terjadi. Untuk menjelaskan hal ini, kita perlu mempertimbangkan proses tracking berhasil dan tracking hilang.
Ketika objek center dalam session berubah, ARSession.CenterObject selalu mencerminkan objek center saat ini, tetapi ARSession.CenterMode tidak berubah.
Perubahan center dalam center mode FirstTarget
Dalam mode pusat FirstTarget, session selalu menggunakan target pertama yang terlacak sebagai pusat. Jika tracking target ini hilang, session akan memilih ulang pusat. Ketika session sedang melacak atau baru melacak target lain, target lain tersebut akan dipilih sebagai objek pusat baru.
Pemilihan ulang pusat terjadi dalam situasi berikut:
Tidak ada
targetyang berada dalam status tracking pada frame saat ini
Pada saat ini, jika mode SessionOrigin valid, session akan turun ke mode SessionOrigin dan memilihXR Originsebagai objek pusat; jika tidak, session akan turun ke mode Camera dan memilihcamerasebagai objek pusat.Ada
targetdalam status tracking pada frame saat ini, dan pada frame sebelumnya tidak adatargetyang berada dalam status tracking
Pada saat ini, session akan memilih salah satutargetyang terlacak sebagai objek pusat.Ada
targetdalam status tracking pada frame saat ini, dantargetpusat pada frame sebelumnya kehilangan tracking pada frame saat ini
Pada saat ini, session akan memilih salah satutargetyang terlacak sebagai objek pusat baru.
Dalam video di atas, objek pusat awal adalah kertas A4 yang dilacak melalui fungsi image tracking. Terlihat bahwa ketika tracking kertas A4 (panda) hilang, session memilih ulang objek pusat. Pada saat ini, pohon Natal (point cloud biru terang) menjadi objek pusat baru. Di akhir video, kertas A4 terlacak kembali, tetapi tidak menjadi objek pusat karena pohon Natal sudah menjadi objek pusat.
Perubahan pusat dalam mode pusat SpecificTarget
Dalam mode pusat SpecificTarget, session selalu menggunakan target yang ditentukan sebagai pusat. Jika tracking target ini hilang, session akan memilih ulang pusat, tetapi tidak akan memilih target lain sebagai objek pusat baru. Ketika session melacak kembali target yang ditentukan ini, target tersebut tetap akan dipilih sebagai objek pusat.
Pemilihan ulang pusat terjadi dalam situasi berikut:
targetyang ditentukan tidak terlacak pada frame saat ini
Pada saat ini, jika mode SessionOrigin valid, session akan turun ke mode SessionOrigin dan memilihXR Originsebagai objek pusat; jika tidak, session akan turun ke mode Camera dan memilihcamerasebagai objek pusat.targetyang ditentukan berada dalam status tracking pada frame saat ini, dantargetyang ditentukan tidak terlacak pada frame sebelumnya
Pada saat ini, session akan memilihtargetyang ditentukan sebagai objek pusat.
Dalam video di atas, objek pusat ditentukan sebagai kertas A4 yang dilacak melalui fungsi image tracking. Terlihat bahwa ketika tracking kertas A4 (panda) hilang, session tidak memilih
targetlain sebagai objek pusat baru. Pada saat ini, pohon Natal (point cloud biru terang) tidak menjadi objek pusat. Di akhir video, kertas A4 terlacak kembali dan kembali menjadi objek pusat.
Mode pusat SessionOrigin
Mode pusat SessionOrigin menggunakan XR Origin sebagai objek pusat. Dalam mode ini, camera dan target dalam session dikontrol oleh session dan bergerak dengan XR Origin pusat sebagai titik referensi.
Dalam video di atas, objek pusat adalah XR Origin. Terlihat bahwa karena tidak ada operasi eksternal, XR Origin (bola biru) diam, sedangkan camera (kerucut biru) dan kertas A4 (panda) bergerak. Pohon Natal (point cloud biru terang) juga tidak bergerak, tetapi ini karena posisinya diam relatif terhadap XR Origin.
Dalam mode ini, XR Origin pusat yang menjadi titik referensi dapat bergerak bebas. Pada saat ini, camera dan target dalam session akan bergerak bersamanya, dan transform keduanya tidak dapat dikontrol dari luar.
Dalam video di atas, objek pusat adalah XR Origin. Terlihat bahwa karena kami memindahkan XR Origin (bola biru) secara manual, camera (kerucut biru), pohon Natal (point cloud biru terang), dan kertas A4 (panda) semuanya ikut bergerak. Perlu diperhatikan bahwa konten yang ditampilkan pada tampilan
Gametidak berubah saat ini, karena posisi dan orientasi camera relatif terhadap XR Origin dan objek lain tidak berubah.
Dalam mode SessionOrigin, XR Origin harus valid, sehingga objek pusat tidak berubah dalam mode ini.
Mode pusat Camera
Mode pusat camera menggunakan camera sebagai objek pusat. Dalam mode ini, XR Origin dan target dalam session dikontrol oleh session dan bergerak dengan camera pusat sebagai titik referensi.
Dalam video di atas, objek pusat adalah camera. Terlihat bahwa karena tidak ada operasi eksternal, camera (kerucut biru) diam, sedangkan XR Origin (bola biru), pohon Natal (point cloud biru terang), dan kertas A4 (panda) bergerak.
Dalam mode ini, camera pusat yang menjadi titik referensi dapat bergerak bebas. Pada saat ini, XR Origin dan target dalam session akan bergerak bersamanya, dan transform keduanya tidak dapat dikontrol dari luar.
Dalam video di atas, objek pusat adalah camera. Terlihat bahwa karena kami memindahkan camera (kerucut biru) secara manual, XR Origin (bola biru), pohon Natal (point cloud biru terang), dan kertas A4 (panda) semuanya ikut bergerak. Perlu diperhatikan bahwa konten yang ditampilkan pada tampilan
Gametidak berubah saat ini, karena posisi dan orientasi camera relatif terhadap XR Origin dan objek lain tidak berubah.
Dalam mode Camera, camera harus valid, sehingga objek pusat tidak berubah dalam mode ini.


