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.

Profil konfigurasi MRTK

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:

Adegan konfigurasi MRTK

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 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 kedaluwarsa

Pengaturan kamera

Pengaturan kamera menentukan bagaimana kamera akan disiapkan untuk proyek Mixed Reality Anda, menentukan pengaturan kliping, kualitas, dan transparansi generik.

Profil Kamera

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.

Pengaturan Sistem Input 1

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.

Pengaturan Sistem Input 2

Masing-masing profil individu dirinci di bawah ini:


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.

Pengaturan Visualisasi Batas

Pemilihan sistem teleportasi

Proyek Mixed Reality menyediakan sistem Teleportasi berfungsi lengkap untuk mengelola peristiwa teleportasi dalam proyek yang dipilih secara default.

Pengaturan Sistem Teleport

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.

Pengaturan Kesadaran Spasial 1

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 Kesadaran Spasial 2

Pengaturan diagnostik

Fitur opsional tetapi sangat berguna dari MRTK adalah fungsionalitas diagnostik plugin.

Pengaturan diagnostik

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 diagnostik Pengaturan sistem 2

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 Sistem Adegan 1

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 Sistem tambahan

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.

Profil Konfigurasi

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.

Profil aturan tindakan input


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.

Profil Penunjuk Input
  • 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).

Konfigurasi gerakan

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:

  1. 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
  2. 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).

Layar Profil Konfigurasi

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.

Pemetaan Pengontrol

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:

Layar konfigurasi pengontrol

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).

Profil visualisasi

Utilitas editor

Utilitas berikut hanya berfungsi di editor dan berguna untuk meningkatkan produktivitas pengembangan.

Utilitas Konfigurasi Editor MRTK

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.

Pemeriksa 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.

Utilitas Buffer Kedalaman RenderSilinder 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:

  1. 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.
  2. 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.

Lihat juga