Table of Contents

Unity AR pusat pelacakan gerakan —— Xr origin

Xr origin adalah konsep inti dari fungsi pelacakan gerakan di Unity. Dalam aplikasi AR modern, pelacakan gerakan secara bertahap menjadi fungsi yang sangat penting. Melalui pelacakan gerakan, aplikasi dapat memahami posisi dan orientasi pengguna di dunia nyata tanpa bantuan penanda lain, sehingga mencapai pengalaman AR yang imersif. Melalui konten berikut, Anda akan memahami konsep dasar, komposisi, dan siklus hidup Xr origin, serta dalam situasi apa Xr origin perlu digunakan.

Sebelum memulai

Apa itu xr origin

Fungsi pelacakan gerakan akan memilih titik referensi sebagai titik asal pelacakan saat diinisialisasi. Titik referensi ini umumnya adalah posisi perangkat saat pengguna memulai aplikasi atau saat layanan AR sistem dimulai. Perwakilan titik referensi ini di scene Unity adalah Xr origin. Dalam kebanyakan kasus, posisi awal Xr origin di scene juga merupakan posisi default kamera.

Video ini menunjukkan scene AR sederhana di mana hanya pelacakan gerakan yang berjalan. Di sebelah kiri adalah tampilan Hierarchy, di tengah adalah tampilan Scene, di sebelah kanan adalah tampilan Game. Video direkam menggunakan data simulasi, dalam mode Play editor Unity. Konten tampilan Game sama dengan yang dilihat pengguna di ponsel di dunia nyata.

Dapat dilihat bahwa dalam video ini, posisi Xr origin (bola biru) di scene tetap, sementara kamera yang mewakili pengguna (ikon kamera) bergerak sesuai pergerakan pengguna di dunia nyata. Kerucut putih menangkap lintasan posisi dan orientasi kamera selama periode waktu sebelumnya, membantu memahami pergerakan kamera di scene. Dapat dilihat bahwa kerucut putih ini dibuat di bawah node Xr origin, yang juga merupakan struktur organisasi khas objek dalam scene semacam ini.

Dalam sistem pelacakan gerakan Unity, kamera umumnya mengikuti Xr origin. Meskipun kamera tidak harus menjadi node anak Xr origin, AR Session akan menghitung posisi kamera berdasarkan posisi Xr origin, sehingga memastikan konten yang dilihat pengguna konsisten dengan dunia nyata.

Video ini menunjukkan scene yang sama, tetapi kali ini kami memindahkan Xr origin (bola biru) saat runtime. Dapat dilihat bahwa setelah Xr origin dipindahkan, kamera akan bergerak mengikuti Xr origin, sementara konten di tampilan Game tidak berubah.

Dalam scene AR aktual, hubungan gerakan ini lebih kompleks.

Perilaku xr origin dalam mode pusat yang berbeda

Di Unity, semua titik referensi pusat pelacakan AR disebut sebagai pusat session, dan aturan yang menentukan pusat ini selama session berjalan disebut mode pusat. Dalam mode pusat yang berbeda, perilaku Xr origin berbeda:

  • Dalam mode pusat SessionOrigin, Xr origin dapat dipindahkan secara bebas.

    Umumnya mode SessionOrigin digunakan dalam scene di mana hanya pelacakan gerakan yang bekerja. Saat fungsi lain berjalan bersamaan, mode SessionOrigin biasanya tidak digunakan.

    Namun saat menggunakan headset, jika produsen tidak mengimplementasikan titik referensi pelacakan gerakan dengan benar di Unity, maka harus menggunakan pusat dunia Unity sehingga memaksa penggunaan mode SessionOrigin. Situasi ini mengharuskan node root konten mengikuti fungsi AR, yang mungkin memengaruhi efek konten, tetapi tidak ada cara lain sampai produsen pihak ketiga membuat perubahan.

  • Dalam mode pusat lain (seperti FirstTarget), Xr origin tidak dapat dipindahkan secara bebas.

    Umumnya mode FirstTarget digunakan dalam scene non-pelacakan gerakan atau saat fungsi AR lain berjalan bersamaan dengan pelacakan gerakan.

    Dalam mode ini, posisi Xr origin ditentukan oleh fungsi AR, sehingga Xr origin tidak dapat dipindahkan secara sembarangan.

Tentang mode pusat dan cara objek bergerak di dalam scene dapat dirujuk secara detail di: Mode pusat.

Bentuk dan komposisi xr origin

EasyAR dapat menggunakan dua bentuk Xr origin yang berbeda:

  • Xr origin yang disediakan EasyAR
  • Xr origin yang disediakan oleh kerangka kerja Unity XR

Xr origin (easyar)

Struktur Xr origin tipikal adalah sebagai berikut:

alt text

Node root Xr origin adalah GameObject kosong, yang dapat memiliki satu atau lebih node anak Xr origin child. Xr origin child berisi komponen XROriginChildController yang digunakan untuk mengelola logika kontrol Xr origin.

Saat session berjalan, jika tidak ada struktur Xr origin yang benar di scene, Xr origin dan satu Xr origin child akan dibuat secara otomatis. Selama runtime, Xr origin child akan dibatasi pada posisi dan orientasi yang sama dengan Xr origin.

Objek yang dihasilkan oleh session, seperti point cloud dari pemetaan peta ruang renggang, atau mesh dari pemetaan ruang padat, akan dibuat di bawah node Xr origin child.

Video ini menunjukkan efek pemetaan ruang padat yang berjalan bersamaan dengan pelacakan gerakan dalam scene yang sama. Dapat dilihat bahwa mesh yang dihasilkan dibuat di bawah node Xr origin child.

Catatan: Untuk memudahkan pemahaman, pembuatan depth map dimatikan dalam video ini, sehingga konten tampilan Scene dalam video akan berbeda dengan yang ditampilkan saat runtime aktual. Efek tampilan Game sama seperti saat transparansi mesh dimatikan.

[Opsional] Xr origin (unity xr)

Jika diperlukan, Anda dapat memilih untuk menggunakan komponen XR Origin yang disediakan oleh kerangka kerja Unity XR.

Saat menggunakan Xr origin yang disediakan oleh kerangka kerja Unity XR, struktur tipikalnya adalah sebagai berikut:

alt text

Dalam scene headset, struktur tipikalnya adalah sebagai berikut:

alt text

Node root Xr origin adalah GameObject yang dibuat dan dikelola oleh kerangka kerja Unity XR, yang dapat memiliki satu atau lebih node anak Xr origin child. Xr origin child berisi komponen XROriginChildController yang digunakan untuk mengelola logika kontrol Xr origin.

Saat session berjalan, jika tidak ada struktur Xr origin child yang benar di scene, Xr origin child akan dibuat secara otomatis. Selama runtime, Xr origin child akan dibatasi pada posisi dan orientasi yang sama dengan Xr origin.

XR Origin yang disediakan oleh kerangka kerja Unity XR terutama memberikan dukungan untuk dua situasi berikut:

  • Anda telah menggunakan AR Foundation di proyek dan ingin bekerja bersama EasyAR atau beralih di antara keduanya berdasarkan dukungan perangkat.
  • SDK headset yang Anda gunakan menggunakan komponen XR Origin yang disediakan oleh kerangka kerja Unity XR.
Catatan

Saat paket inti Unity XR com.unity.xr.core-utils tidak diimpor ke proyek, jika kamera di scene berada dalam struktur hierarki yang sama dengan XR Origin yang disediakan oleh kerangka kerja Unity XR (node induk bernama Camera dan Camera Offset), session akan menganggap struktur ini dibuat oleh kerangka kerja Unity XR dan menggunakannya. Ini dilakukan untuk memberikan kompatibilitas maksimal ke scene, yaitu: scene yang dibuat dengan AR Foundation, saat AR Foundation tidak diimpor ke proyek, AR Foundation tidak akan bekerja tetapi fungsi AR yang tersisa masih dapat berfungsi normal. Kecuali untuk fungsi yang hanya dapat disediakan oleh AR Foundation, ini bahkan tidak memengaruhi fungsionalitas dan kompatibilitas perangkat aplikasi AR secara keseluruhan.

Sebagian besar scene contoh EasyAR menggunakan cara ini untuk memastikan dapat berjalan tanpa AR Foundation, dan saat AR Foundation ada, dapat menunjukkan kemampuan bekerja sama dengan AR Foundation.

Dalam definisi AR Foundation, XR Origin-nya adalah pusat ruang pelacakan di scene XR. Namun perlu diperhatikan bahwa dalam konsep AR Foundation, pelacakan gerakan dianggap sebagai fungsi wajib, dan ruang pelacakan di scene XR yang dijelaskannya adalah pelacakan gerakan.

Dalam sistem EasyAR, pelacakan gerakan adalah fungsi opsional, sehingga Xr origin juga opsional. Xr origin hanya akan dibuat dan digunakan saat fungsi pelacakan gerakan diaktifkan.

Siklus hidup xr origin

Siklus hidup Xr origin bergantung pada session. Saat session dimulai, Xr origin akan dipilih atau dibuat (jika tidak ada struktur Xr origin yang benar di scene). Saat session dihentikan, Xr origin akan tetap di tempatnya hingga digunakan oleh session berikutnya atau dihapus secara manual.

Langkah selanjutnya

Membuat

Mengontrol operasi

Topik terkait