Panduan konfigurasi profil MRTK2
Mixed Reality Toolkit memusatkan sebanyak mungkin konfigurasi yang diperlukan untuk mengelola toolkit (kecuali untuk "hal-hal" runtime sejati).
Panduan ini adalah panduan sederhana untuk setiap layar profil konfigurasi yang saat ini tersedia untuk toolkit.
Profil konfigurasi toolkit Mixed Reality utama
Profil konfigurasi utama, yang dilampirkan ke MixedRealityToolkit GameObject di Adegan Anda, menyediakan titik masuk utama untuk Toolkit dalam proyek Anda.
Catatan
Mixed Reality Toolkit "mengunci" layar konfigurasi default untuk memastikan Anda selalu memiliki titik awal umum untuk proyek Anda dan dianjurkan untuk mulai menentukan pengaturan Anda sendiri saat proyek Anda berkembang. Konfigurasi MRTK tidak dapat diedit selama mode putar.
Semua profil "default" untuk Mixed Reality Toolkit dapat ditemukan di proyek SDK di folder Aset/MRTK/SDK/Profil.
Penting
DefaultHoloLens2ConfigurationProfile dioptimalkan untuk HoloLens 2. Lihat Profil untuk detailnya.
Saat membuka Profil Konfigurasi Toolkit Mixed Reality utama, Anda akan melihat layar berikut di inspektur:
Jika Anda memilih aset MixedRealityToolkitConfigurationProfile tanpa MixedRealityToolkit di adegan, itu akan meminta Anda apakah Anda ingin MRTK secara otomatis menyiapkan adegan untuk Anda. Ini bersifat opsional; namun, harus ada objek MixedRealityToolkit aktif di adegan untuk mengakses semua layar konfigurasi.
Ini menampung konfigurasi runtime aktif saat ini untuk proyek.
Dari sini Anda dapat menavigasi ke semua profil konfigurasi untuk MRTK, termasuk:
- Profil konfigurasi toolkit Mixed Reality utama
- Pengaturan pengalaman
- Pengaturan kamera
- Pengaturan sistem input
- Pengaturan visualisasi batas
- Pemilihan sistem teleportasi
- Pengaturan kesadaran spasial
- Pengaturan diagnostik
- Pengaturan sistem adegan
- Pengaturan layanan tambahan
- Pengaturan tindakan input
- Aturan tindakan input
- Konfigurasi penunjuk
- Konfigurasi gerakan
- Perintah ucapan
- Konfigurasi pemetaan pengontrol
- Pengaturan visualisasi pengontrol
- Utilitas editor
- Mengubah profil saat runtime
- Lihat juga
Profil konfigurasi ini dirinci di bawah ini di bagian yang relevan:
Pengaturan pengalaman
Terletak di halaman konfigurasi toolkit Mixed Reality utama, pengaturan ini menentukan operasi default skala lingkungan Mixed Reality untuk proyek Anda.
Pengaturan kamera
Pengaturan kamera menentukan bagaimana kamera akan disiapkan untuk proyek Mixed Reality Anda, menentukan pengaturan kliping, kualitas, dan transparansi generik.
Pengaturan sistem input
Proyek Mixed Reality menyediakan sistem input yang kuat dan terlatih untuk merutekan semua peristiwa input di sekitar proyek yang dipilih secara default.
Di balik Sistem Input yang disediakan oleh MRTK adalah beberapa sistem lain, ini membantu mendorong dan mengelola tenunan kompleks yang diperlukan untuk mengabstraksi kompleksitas kerangka kerja realitas multi-platform / campuran.
Masing-masing profil individu dirinci di bawah ini:
- Pengaturan Fokus
- Pengaturan tindakan input
- Aturan tindakan input
- Konfigurasi penunjuk
- Konfigurasi gerakan
- Perintah ucapan
- Konfigurasi pemetaan pengontrol
- Pengaturan visualisasi pengontrol
Pengaturan visualisasi batas
Sistem batas menerjemahkan batas yang dirasakan yang dilaporkan oleh sistem batas/wali platform yang mendasarinya. Konfigurasi visualizer Batas memberi Anda kemampuan untuk secara otomatis menampilkan batas yang direkam dalam adegan Anda relatif terhadap posisi pengguna. Batas juga akan bereaksi/memperbarui berdasarkan tempat pengguna melakukan teleportasi dalam adegan.
Pemilihan sistem teleportasi
Proyek Mixed Reality menyediakan sistem Teleportasi berfungsi lengkap untuk mengelola peristiwa teleportasi dalam proyek yang dipilih secara default.
Pengaturan kesadaran spasial
Proyek Mixed Reality menyediakan sistem kesadaran spasial yang dibangun kembali untuk bekerja dengan sistem pemindaian spasial dalam proyek yang dipilih secara default.
Mixed Reality konfigurasi kesadaran spasial Toolkit memungkinkan Anda menyesuaikan bagaimana sistem dimulai, baik secara otomatis ketika aplikasi dimulai atau nanti secara terprogram serta mengatur jangkauan untuk bidang tampilan.
Ini juga memungkinkan Anda mengonfigurasi pengaturan jala dan permukaan, menyesuaikan lebih lanjut bagaimana proyek Anda memahami lingkungan di sekitar Anda.
Ini hanya berlaku untuk perangkat yang dapat menyediakan lingkungan yang dipindai.
Pengaturan diagnostik
Fitur opsional tetapi sangat berguna dari MRTK adalah fungsionalitas diagnostik plugin.
Profil diagnostik menyediakan beberapa sistem sederhana untuk dipantau saat proyek berjalan, termasuk sakelar Aktif/Nonaktif yang berguna untuk mengaktifkan/menonaktifkan panel tampilan di adegan.
Pengaturan sistem adegan
MRTK menyediakan layanan opsional ini untuk membantu Anda mengelola pemuatan/bongkar adegan aditif yang kompleks. Untuk memutuskan apakah Sistem Adegan akan cocok untuk proyek Anda, baca Panduan Memulai Sistem Adegan.
Pengaturan layanan tambahan
Salah satu area yang lebih canggih dari Mixed Reality Toolkit adalah implementasi pola pencari layanannya yang memungkinkan pendaftaran "Layanan" apa pun dengan kerangka kerja. Ini memungkinkan kerangka kerja untuk diperluas dengan fitur / sistem baru dengan mudah tetapi juga memungkinkan proyek untuk memanfaatkan kemampuan ini untuk mendaftarkan komponen runtime mereka sendiri.
Setiap layanan terdaftar masih mendapatkan keuntungan penuh dari semua peristiwa Unity, tanpa overhead dan biaya penerapan pola singleton MonoBehaviour atau clunky. Ini memungkinkan komponen C# murni tanpa overhead adegan untuk menjalankan proses latar depan dan latar belakang, misalnya sistem pemijahan, logika permainan runtime, atau hampir apa pun.
Pengaturan tindakan input
Tindakan input menyediakan cara untuk mengabstraksi interaksi fisik dan input apa pun dari proyek runtime. Semua input fisik (dari pengontrol / tangan / mouse / dll) diterjemahkan ke tindakan input logis untuk digunakan dalam proyek runtime Anda. Ini memastikan dari mana pun input berasal, proyek Anda hanya menerapkan tindakan ini sebagai "Hal yang harus dilakukan" atau "Berinteraksi dengan" di adegan Anda.
Untuk membuat tindakan input baru, cukup klik tombol "Tambahkan Tindakan baru" dan masukkan nama teks yang mudah diingat untuk apa yang diwakilinya. Anda kemudian hanya perlu memilih sumbu (jenis data) tindakan dimaksudkan untuk menyampaikan, atau dalam kasus pengontrol fisik, jenis input fisik yang dapat dilampirkan, misalnya:
Batasan Sumbu | Jenis Data | Deskripsi | Contoh penggunaan |
---|---|---|---|
Tidak ada | Tidak ada data | Digunakan untuk tindakan atau peristiwa kosong | Pemicu Peristiwa |
Mentah (dicadangkan) | objek | Disiapkan untuk penggunaan di masa mendatang | T/A |
Digital | bool | Data jenis boolean aktif atau nonaktif | Tombol pengontrol |
Sumbu Tunggal | float | Nilai data presisi tunggal | Input berkisar, misalnya pemicu |
Sumbu Ganda | Vektor2 | Tanggal jenis float ganda untuk beberapa sumbu | Dpad atau Thumbstick |
Posisi Tiga Dof | Vektor3 | Data jenis posisi dari dengan sumbu float 3 | Pengontrol gaya posisi 3D saja |
Rotasi Tiga Dof | Quaternion | Hanya input rotasi dengan sumbu 4 float | Pengontrol gaya Tiga derajat, misalnya pengontrol Oculus Go |
Enam Dof | pose Mixed Reality (Vektor3, Quaternion) | Input gaya posisi dan rotasi dengan komponen Vector3 dan Quaternion | Pengontrol gerakan atau Pointer |
Peristiwa yang menggunakan tindakan input tidak terbatas pada pengontrol fisik dan masih dapat digunakan dalam proyek untuk memiliki efek runtime menghasilkan tindakan baru.
Catatan
Tindakan input adalah salah satu dari beberapa komponen yang tidak dapat diedit saat runtime, hanya merupakan konfigurasi waktu desain. Profil ini tidak boleh ditukar saat proyek berjalan karena dependensi kerangka kerja (dan proyek Anda) pada ID yang dihasilkan untuk setiap tindakan.
Aturan tindakan input
Aturan tindakan input menyediakan cara untuk menerjemahkan peristiwa yang dinaikkan secara otomatis untuk satu tindakan input ke tindakan yang berbeda berdasarkan nilai datanya. Ini dikelola dengan mulus dalam kerangka kerja dan tidak dikenakan biaya performa apa pun.
Misalnya, mengonversi peristiwa input sumbu ganda tunggal dari DPad ke tindakan "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" yang sesuai (seperti yang ditunjukkan pada gambar di bawah).
Ini juga dapat dilakukan dalam kode Anda sendiri. Namun, melihat bahwa ini adalah pola yang sangat umum, kerangka kerja menyediakan mekanisme untuk melakukan "out of the box" ini
Aturan tindakan input dapat dikonfigurasi untuk sumbu input yang tersedia. Namun, tindakan input dari satu jenis sumbu dapat diterjemahkan ke tindakan input lain dari jenis sumbu yang sama. Anda dapat memetakan tindakan sumbu ganda ke tindakan sumbu ganda lainnya, tetapi tidak ke tindakan digital atau tidak ada.
Konfigurasi penunjuk
Pointer digunakan untuk mendorong interaktivitas dalam adegan dari perangkat input apa pun, memberikan arah dan menekan pengujian dengan objek apa pun dalam adegan (yang memiliki collider terpasang, atau merupakan komponen UI). Pointer secara default dikonfigurasi secara otomatis untuk pengontrol, headset (tatapan/fokus) dan input mouse/sentuh.
Pointer juga dapat divisualisasikan dalam adegan aktif menggunakan salah satu dari banyak komponen baris yang disediakan oleh Mixed Reality Toolkit, atau milik Anda sendiri jika mereka mengimplementasikan antarmuka MRTK IMixedRealityPointer.
- Jangkauan Penunjuk: Menentukan tingkat penunjuk global untuk semua penunjuk, termasuk tatapan.
- Menunjuk Masker Lapisan Raycast: Menentukan penunjuk lapisan mana yang akan dipancarkan.
- Debug Draw Pointing Rays: Pembantu debug untuk memvisualisasikan sinar yang digunakan untuk raycasting.
- Debug Gambar Warna Sinar Penunjuk: Sekumpulan warna yang digunakan untuk memvisualisasikan.
- Tatap prefab kursor: Memudahkan untuk menentukan kursor tatapan global untuk adegan apa pun.
Ada tombol pembantu tambahan untuk melompat dengan cepat ke Penyedia Tatapan untuk mengambil alih beberapa nilai spesifik untuk Tatapan jika diperlukan.
Konfigurasi gerakan
Gerakan adalah implementasi khusus sistem yang memungkinkan Anda menetapkan tindakan input ke berbagai metode input "Gesture" yang disediakan oleh berbagai SDK (misalnya HoloLens).
Catatan
Implementasi Gestures saat ini hanya untuk HoloLens dan akan ditingkatkan untuk sistem lain karena ditambahkan ke Toolkit di masa mendatang (belum ada tanggal).
Perintah ucapan
Seperti gerakan, beberapa platform runtime juga menyediakan fungsionalitas "Ucapan ke Teks" cerdas dengan kemampuan untuk menghasilkan perintah yang dapat diterima oleh proyek Unity. Profil konfigurasi ini memungkinkan Anda untuk mengonfigurasi hal berikut:
- Pengaturan Umum - "Perilaku Mulai" diatur ke Mulai Otomatis atau Mulai Manual menentukan apakah akan menginisialisasi KeywordRecognizer saat memulai sistem input atau membiarkan proyek memutuskan kapan harus menginisialisasi KeywordRecognizer. "Tingkat Keyakinan Pengenalan" digunakan untuk menginisialisasi Api KeywordRecognizer Unity
- Perintah Ucapan - Mendaftarkan "kata" dan menerjemahkannya ke tindakan input yang dapat diterima oleh proyek Anda. Mereka juga dapat dilampirkan ke tindakan keyboard jika diperlukan.
Penting
Sistem saat ini hanya mendukung ucapan saat berjalan pada platform Windows 10, misalnya HoloLens dan desktop Windows 10 dan akan ditingkatkan untuk sistem lain saat ditambahkan ke MRTK di masa mendatang (belum ada tanggal).
Konfigurasi pemetaan pengontrol
Salah satu layar konfigurasi inti untuk Mixed Reality Toolkit adalah kemampuan untuk mengonfigurasi dan memetakan berbagai jenis pengontrol yang dapat digunakan oleh proyek Anda.
Layar konfigurasi di bawah ini memungkinkan Anda mengonfigurasi salah satu pengontrol yang saat ini dikenali oleh toolkit.
MRTK menyediakan konfigurasi default untuk pengontrol /sistem berikut:
- Mouse (termasuk dukungan mouse spasial 3D)
- Layar Sentuh
- Pengontrol Xbox
- Windows Mixed Reality pengontrol
- Gerakan HoloLens
- Pengontrol tongkat sihir HTC Vive
- Pengontrol Oculus Touch
- Pengontrol Jarak Jauh Oculus
- Perangkat OpenVR generik (hanya pengguna tingkat lanjut)
Mengklik Gambar untuk salah satu sistem pengontrol bawaan memungkinkan Anda mengonfigurasi satu tindakan input untuk semua input yang sesuai, misalnya, lihat layar konfigurasi pengontrol Oculus Touch di bawah ini:
Ada juga layar tingkat lanjut untuk mengonfigurasi pengontrol input OpenVR atau Unity lainnya yang tidak diidentifikasi di atas.
Pengaturan visualisasi pengontrol
Selain pemetaan pengontrol, profil konfigurasi terpisah disediakan untuk menyesuaikan bagaimana pengontrol Anda disajikan dalam adegan Anda.
Ini dapat dikonfigurasi pada "Global" (semua instans pengontrol untuk tangan tertentu) atau khusus untuk jenis / tangan pengontrol individu.
MRTK juga mendukung model pengontrol SDK asli untuk Windows Mixed Reality dan OpenVR. Ini dimuat sebagai GameObjects di adegan Anda dan diposisikan menggunakan pelacakan pengontrol platform.
Jika representasi pengontrol Anda di adegan perlu diimbangi dari posisi pengontrol fisik, maka cukup atur offset tersebut terhadap prefab model pengontrol (misalnya mengatur posisi transformasi prefab pengontrol dengan posisi offset).
Utilitas editor
Utilitas berikut hanya berfungsi di editor dan berguna untuk meningkatkan produktivitas pengembangan.
Pemeriksa layanan
Pemeriksa Layanan adalah fitur khusus editor yang menghasilkan objek dalam adegan yang mewakili layanan aktif. Memilih objek ini menampilkan pemeriksa yang menawarkan tautan dokumentasi, kontrol atas visualisasi editor, dan wawasan tentang status layanan.
Anda dapat mengaktifkan pemeriksa layanan dengan mencentang Gunakan Pemeriksa Layanan di bawah Pengaturan Editor di Profil Konfigurasi.
Perender buffer kedalaman
Berbagi buffer kedalaman dengan beberapa platform realitas campuran dapat meningkatkan stabilisasi hologram. Misalnya, platform Windows Mixed Reality dapat memodifikasi adegan yang dirender per piksel untuk memperkirakan pergerakan kepala yang halus selama waktu yang diperlukan untuk merender bingkai. Namun, teknik ini memerlukan buffer kedalaman dengan data yang akurat untuk mengetahui di mana dan seberapa jauh geometri berasal dari pengguna.
Untuk memastikan adegan merender semua data yang diperlukan ke buffer kedalaman, pengembang dapat mengalihkan fitur Buffer Kedalaman Render di bawah Pengaturan Editor di Profil Konfigurasi. Ini akan mengambil buffer kedalaman saat ini dan merendernya sebagai warna ke tampilan adegan dengan menerapkan efek pasca-pemrosesan, DepthBufferRenderer
, ke kamera utama.
Silinder biru di adegan memiliki bahan dengan ZWrite off sehingga tidak ada data kedalaman yang ditulis
Mengubah profil saat runtime
Dimungkinkan untuk memperbarui profil pada runtime, dan umumnya ada dua skenario dan waktu yang berbeda di mana dalam hal ini berguna:
- Sakelar profil inisialisasi PRA MRTK: Saat startup, sebelum MRTK diinisialisasi dan profil menjadi aktif, mengganti profil yang belum digunakan untuk mengaktifkan/menonaktifkan fitur yang berbeda berdasarkan kemampuan perangkat. Misalnya, jika pengalaman berjalan di VR yang tidak memiliki perangkat keras pemetaan spasial, mungkin tidak masuk akal untuk mengaktifkan komponen pemetaan spasial.
- Pengalihan profil aktif: Setelah startup, setelah MRTK diinisialisasi dan profil telah menjadi aktif, menukar profil yang saat ini digunakan untuk mengubah cara fitur tertentu beraktivitas. Misalnya, mungkin ada sub-pengalaman tertentu dalam aplikasi yang ingin pointer tangan jauh dihapus sepenuhnya.
Sakelar profil inisialisasi Pra MRTK
Ini dapat dicapai dengan melampirkan MonoBehaviour (contoh di bawah) yang berjalan sebelum inisialisasi MRTK (yaitu Awake()). Perhatikan skrip (yaitu panggilan ke SetProfileBeforeInitialization
) harus dijalankan lebih awal dari MixedRealityToolkit
skrip, yang dapat dicapai dengan mengatur pengaturan Urutan Eksekusi Skrip.
using Microsoft.MixedReality.Toolkit;
using UnityEngine;
/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{
[SerializeField]
private MixedRealityToolkitConfigurationProfile profileToUse = null;
private void Awake()
{
// Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
// add some platform checking code here to determine which profile to load).
MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
}
}
Alih-alih "profileToUse", dimungkinkan untuk memiliki beberapa kumpulan profil arbitrer yang berlaku untuk platform tertentu (misalnya, satu untuk HoloLens 1, satu untuk VR, satu untuk HoloLens 2, dll). Dimungkinkan untuk menggunakan berbagai indikator lain (misalnya https://docs.unity3d.com/ScriptReference/SystemInfo.html, atau apakah kamera buram/transparan), untuk mencari tahu profil mana yang akan dimuat.
Sakelar profil aktif
Ini dapat dicapai dengan mengatur MixedRealityToolkit.Instance.ActiveProfile
properti ke profil baru yang menggantikan profil aktif.
MixedRealityToolkit.Instance.ActiveProfile = profileToUse;
Perhatikan saat mengatur ActiveProfile
selama runtime, penghancurkan layanan yang sedang berjalan akan terjadi setelah LateUpdate() terakhir dari semua layanan, dan instansiasi dan inisialisasi layanan yang terkait dengan profil baru akan terjadi sebelum Update() pertama dari semua layanan.
Keragaman aplikasi yang terlihat dapat terjadi selama proses ini. Skrip apa pun dengan prioritas lebih tinggi daripada MixedRealityToolkit
skrip dapat memasukkan Pembaruan sebelum profil baru disiapkan dengan benar. Lihat Pengaturan Urutan Eksekusi Skrip untuk informasi selengkapnya tentang prioritas skrip.
Dalam proses peralihan profil, kamera UI yang ada akan tetap tidak berubah, memastikan komponen UI Unity yang memerlukan kanvas masih berfungsi setelah sakelar.