Bagikan melalui


Penguncian dunia dan jangkar spasial di Unity

Gambar hero alat penguncian dunia

Membuat hologram Anda tetap di tempat, bergerak bersama Anda, atau dalam beberapa kasus posisi diri mereka relatif terhadap hologram lain adalah bagian besar dari membuat aplikasi Mixed Reality. Artikel ini akan membawa Anda melalui solusi yang direkomendasikan menggunakan Alat Penguncian Dunia, tetapi kami juga akan membahas pengaturan jangkar spasial secara manual dalam proyek Unity Anda. Sebelum kita melompat ke kode apa pun, penting untuk memahami bagaimana Unity menangani ruang koordinat dan jangkar di mesinnya sendiri.

Sistem koordinat skala dunia

Saat ini, saat menulis game, aplikasi visualisasi data, atau aplikasi realitas virtual, pendekatan umumnya adalah membangun satu sistem koordinat dunia absolut yang dapat dipetakan kembali oleh semua koordinat lainnya. Di lingkungan tersebut, Anda selalu dapat menemukan transformasi stabil yang mendefinisikan hubungan antara dua objek di dunia tersebut. Jika Anda tidak memindahkan objek tersebut, transformasi relatifnya akan selalu tetap sama. Sistem koordinat global semacam ini mudah dipahami ketika merender dunia virtual murni di mana Anda mengetahui semua geometri terlebih dahulu. Aplikasi VR skala kamar saat ini biasanya membangun sistem koordinat skala kamar absolut semacam ini dengan asalnya di lantai.

Sebaliknya, perangkat realitas campuran yang tidak tertambat seperti HoloLens memiliki pemahaman dinamis berbasis sensor tentang dunia, terus menyesuaikan pengetahuannya dari waktu ke waktu lingkungan pengguna saat mereka berjalan banyak meter di seluruh lantai bangunan. Dalam pengalaman skala dunia, jika Anda menempatkan semua hologram Anda dalam sistem koordinat kaku yang naif, hologram tersebut akan berakhir melayang dari waktu ke waktu, baik berdasarkan dunia atau relatif satu sama lain.

Misalnya, headset saat ini mungkin percaya dua lokasi di dunia terpisah 4 meter, dan kemudian memperbaiki pemahaman itu, mempelajari bahwa lokasi sebenarnya terpisah 3,9 meter. Jika hologram tersebut awalnya ditempatkan terpisah 4 meter dalam satu sistem koordinat yang kaku, salah satunya kemudian akan selalu muncul 0,1 meter dari dunia nyata.

Anda dapat menempatkan jangkar spasial secara manual di Unity untuk mempertahankan posisi hologram di dunia fisik saat pengguna bergerak. Namun, ini mengorbankan konsistensi diri dalam dunia virtual. Jangkar yang berbeda terus bergerak dalam kaitannya satu sama lain, dan juga bergerak melalui ruang koordinat global. Dalam skenario ini, tugas sederhana seperti tata letak menjadi sulit. Simulasi fisika juga bisa bermasalah.

World Locking Tools (WLT) memberi Anda yang terbaik dari kedua dunia, menstabilkan sistem koordinat yang kaku tunggal menggunakan pasokan internal jangkar spasial yang tersebar di seluruh adegan virtual saat pengguna bergerak. WLT menganalisis koordinat kamera dan jangkar spasial tersebut setiap bingkai. Alih-alih mengubah koordinat segala sesuatu di dunia untuk mengimbangi koreksi dalam koordinat kepala pengguna, WLT hanya memperbaiki koordinat kepala sebagai gantinya.

Pilih pendekatan penguncian dunia Anda

Jika memungkinkan, gunakan Alat Penguncian Dunia untuk posisi hologram.

Alat Penguncian Dunia menyediakan sistem koordinat stabil yang meminimalkan inkonsistensi yang terlihat antara penanda dunia virtual dan nyata. Alat Penguncian Dunia mengunci seluruh adegan dengan kumpulan jangkar bersama, daripada mengunci setiap grup objek dengan jangkar individual grup sendiri.

Alat Penguncian Dunia secara otomatis menangani pembuatan internal dan manajemen jangkar spasial. Anda tidak perlu berinteraksi dengan ARAnchorManager atau WorldAnchor untuk menjaga hologram Anda tetap terkunci di dunia.

  • Untuk Unity 2019/2020 menggunakan OpenXR atau Plugin Windows XR, gunakan ARAnchorManager.
  • Untuk versi Unity atau proyek WSA yang lebih lama, gunakan WorldAnchor.

Menyiapkan penguncian dunia

Untuk mulai menggunakan World Locking Tools, unduh Mixed Reality Feature Tool. Untuk mempelajari selengkapnya tentang dasar-dasarnya, lihat halaman dokumentasi Alat Penguncian Dunia utama untuk tautan ke Gambaran Umum, Mulai Cepat, dan topik berguna lainnya.

Penyiapan otomatis

Saat proyek Anda siap dijalankan, jalankan utilitas konfigurasi adegan dari Mixed Reality > World Locking Tools:

Editor Unity dengan menu Mixed Reality Toolkit dipilih

Penting

Utilitas Konfigurasi adegan dapat dijalankan ulang kapan saja. Misalnya, harus dijalankan ulang jika target AR telah diubah dari Warisan ke XR SDK. Jika adegan sudah dikonfigurasi dengan benar, menjalankan utilitas tidak berpengaruh.

Visualizer

Selama pengembangan dini, menambahkan visualizer dapat membantu untuk memastikan WLT disiapkan dan berfungsi dengan baik. Mereka dapat dihapus untuk performa produksi, atau jika karena alasan apa pun tidak lagi diperlukan, menggunakan utilitas Hapus visualizer. Detail selengkapnya tentang visualizer dapat ditemukan dalam dokumentasi Alat.

Penguncian dunia persisten

Jangkar spasial menghemat hologram di ruang dunia nyata di antara sesi aplikasi. Setelah disimpan di toko jangkar HoloLens, jangkar spasial dapat ditemukan dan dimuat dalam sesi yang berbeda dan merupakan fallback yang ideal ketika tidak ada konektivitas internet.

Penting

Jangkar lokal disimpan di perangkat, sementara Azure Spatial Anchors disimpan di cloud. Anda dapat memiliki jangkar lokal dan Azure dalam proyek yang sama tanpa konflik. Untuk informasi selengkapnya tentang mengintegrasikan layanan cloud Azure untuk menyimpan jangkar Anda, lihat Azure Spatial Anchors.

Secara default, Alat Penguncian Dunia memulihkan sistem koordinat Unity relatif terhadap dunia fisik di seluruh sesi pada perangkat yang mendukung persistensi jangkar spasial lokal. Agar hologram muncul di tempat yang sama di dunia fisik setelah berhenti dan menjalankan ulang aplikasi, aplikasi hanya perlu memulihkan pose yang sama ke hologram.

Komponen konteks penguncian dunia di inspektur Unity

Jika aplikasi membutuhkan kontrol yang lebih baik, Anda dapat menonaktifkan Simpan Otomatis dan Muat Otomatis di inspektur, dan mengelola persistensi dari skrip. Untuk informasi selengkapnya, lihat Mempertahankan sistem koordinat spasial.

World Locking Tools hanya mendukung persistensi jangkar lokal pada perangkat HoloLens. Untuk perangkat Android, iOS, dan HoloLens, integrasikan dengan Azure Spatial Anchors untuk mendukung kegigihan dan berbagi ruang koordinat di seluruh sesi dan perangkat. Untuk informasi selengkapnya dan sampel menggunakan Alat Penguncian Dunia dengan Azure Spatial Anchors, lihat World Locking Tools (WLT) yang dikombinasikan dengan Azure Spatial Anchors (ASA).

Langkah berikutnya

Bagikan ruang koordinat terkunci dunia:

Pelajari tentang pemetaan spasial:

Kembali ke titik pemeriksaan pengembangan Unity:

Lihat juga