Navigasi yang didukung mata di MRTK — MRTK2
Bayangkan Anda membaca informasi tentang slate dan ketika Anda mencapai akhir teks yang ditampilkan, teks secara otomatis menggulir ke atas untuk mengungkapkan lebih banyak konten. Atau Anda dapat dengan lancar memperbesar tampilan di mana Anda melihat. Peta juga secara otomatis menyesuaikan konten untuk menjaga hal-hal yang menarik dalam bidang pandang Anda. Aplikasi menarik lainnya adalah pengamatan hands-free hologram 3D dengan secara otomatis membawa bagian hologram yang Anda lihat ke depan. Ini adalah beberapa contoh yang dijelaskan di halaman ini dalam konteks navigasi yang didukung mata.
Deskripsi berikut mengasumsikan bahwa Anda sudah terbiasa dengan cara mengatur pelacakan mata di adegan MRTK Anda dan dengan dasar-dasar mengakses data pelacakan mata di MRTK Unity.
Contoh yang dibahas dalam hal berikut adalah semua bagian dari EyeTrackingDemo-03-Navigation
adegan (Aset/MRTK/Contoh/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation).
Ringkasan: Gulir otomatis teks, pan besar yang didukung tatapan mata, dan perbesar tampilan peta virtual, rotasi 3D yang diarahkan tatapan tangan.
Gulir otomatis
Gulir otomatis memungkinkan pengguna untuk menggulir teks tanpa mengangkat jari.
Cukup lanjutkan membaca dan teks akan secara otomatis menggulir ke atas atau ke bawah tergantung di mana pengguna mencari.
Anda dapat memulai dari contoh yang disediakan di EyeTrackingDemo-03-Navigation
(Aset/MRTK/Contoh/Demo/EyeTracking/Adegan).
Contoh ini menggunakan komponen TextMesh untuk memungkinkan pemuatan dan pemformatan teks baru secara fleksibel.
Untuk mengaktifkan gulir otomatis, cukup tambahkan dua skrip berikut ke komponen collider kotak teks Anda:
ScrollRectTransf
Untuk menggulir textMesh atau lebih umum berbicara komponen RectTransform , Anda dapat menggunakan skrip ScrollRectTransf . Jika Anda ingin menggulir tekstur alih-alih RectTransform, gunakan ScrollTexture alih-alih ScrollRectTransf. Dalam hal berikut, parameter ScrollRectTransf yang tersedia di Editor Unity dijelaskan secara lebih rinci:
Parameter | Deskripsi |
---|---|
LimitPanning | Jika diaktifkan, akan menghentikan konten yang dapat digulir pada batasnya. |
RectTransfToNavigate | Referensi ke RectTransform untuk menggulir masuk. |
RefToViewport | Referensi ke RectTransform induk dari konten yang dapat digulir untuk menentukan offset dan batas yang benar. |
AutoGazeScrollIsActive | Jika diaktifkan, teks akan secara otomatis menggulir jika pengguna melihat wilayah aktif (misalnya, bagian atas dan bawah panel gulir Anda jika kecepatan gulir vertikal bukan nol). |
ScrollSpeed_x | Jika diatur ke nilai yang tidak sama dengan nol, gulir horizontal akan diaktifkan. Nilai negatif berarti perubahan arah gulir: Kiri ke kanan vs kanan ke kiri. |
ScrollSpeed_y | Jika diatur ke nilai yang tidak sama dengan nol, gulir vertikal akan diaktifkan. Nilai negatif berarti perubahan arah gulir: Naik ke bawah vs. ke bawah ke atas. |
MinDistFromCenterForAutoScroll | Jarak minimal yang dinormalisasi dalam x dan y dari tengah kotak temuan target (0, 0) untuk menggulir. Dengan demikian, nilai harus berkisar antara 0 (selalu gulir) dan 0,5 (tanpa gulir). |
UseSkimProofing | Jika diaktifkan, ini mencegah gerakan gulir mendadak saat melihat-lihat dengan cepat. Ini mungkin membuat pengguliran terasa kurang responsif. Ini dapat disetel dengan nilai SkimProofUpdateSpeed . |
SkimProofUpdateSpeed | Semakin rendah nilainya, semakin lambat pengguliran akan mempercepat setelah skimming. Nilai yang disarankan: 5. |
EyeTrackingTarget
Memasang komponen EyeTrackingTarget memungkinkan penanganan peristiwa terkait tatapan mata secara fleksibel. Sampel gulir menunjukkan pengguliran teks yang dimulai ketika pengguna melihat panel dan berhenti ketika pengguna menjauh darinya.
Pan dan zoom yang didukung tatapan
Siapa yang belum menggunakan peta virtual sebelumnya untuk mencari rumah mereka atau menjelajahi tempat yang sama sekali baru? Pelacakan mata memungkinkan Anda untuk langsung menyelami bagian-bagian yang Anda minati dan setelah diperbesar, Anda dapat dengan lancar mengikuti jalan untuk menjelajahi lingkungan Anda! Ini tidak hanya berguna untuk menjelajahi peta geografis, tetapi juga untuk memeriksa detail dalam foto, visualisasi data, atau bahkan citra medis streaming langsung. Untuk menggunakan kemampuan ini di aplikasi Anda mudah! Untuk konten yang dirender ke Tekstur (misalnya, foto, data yang dialirkan), cukup tambahkan skrip PanZoomTexture . Untuk RectTransform gunakan PanZoomRectTransf. Memperluas kemampuan Gulir Otomatis , kami pada dasarnya memungkinkan untuk menggulir secara vertikal dan horizontal secara bersamaan dan memperbesar konten tepat di sekitar titik fokus pengguna saat ini.
Parameter | Deskripsi |
---|---|
LimitPanning | Jika diaktifkan, akan menghentikan konten yang dapat digulir pada batasnya. |
HandZoomEnabledOnStartup | Menunjukkan apakah gerakan tangan diaktifkan secara otomatis untuk melakukan gerakan zoom. Anda mungkin ingin menonaktifkannya pada awalnya untuk menghindari pemicu tindakan zoom secara tidak sengaja. |
RendererOfTextureToBeNavigated | Perender yang direferensikan dari tekstur yang akan dinavigasi. |
Zoom_Acceleration | Akselerasi zoom yang menentukan curamnya pemetaan fungsi kecepatan logistik. |
Zoom_SpeedMax | Kecepatan zoom maksimum. |
Zoom_MinScale | Skala minimum tekstur untuk memperbesar - misalnya, 0,5f (setengah ukuran asli). |
Zoom_MaxScale | Skala maksimum tekstur untuk memperkecil - misalnya, 1f (ukuran asli) atau 2,0f (dua kali lipat ukuran asli). |
Zoom_TimeInSecToZoom | Zoom berwaktu: Setelah dipicu, memperbesar/memperkecil akan dilakukan untuk jumlah waktu tertentu dalam hitungan detik. |
Zoom_Gesture | Jenis gerakan tangan yang digunakan untuk memperbesar/memperkecil. |
--- | --- |
Pan_AutoScrollIsActive | Jika diaktifkan, teks akan secara otomatis menggulir jika pengguna melihat wilayah aktif (misalnya, bagian atas dan bawah panel gulir Anda jika kecepatan gulir vertikal bukan nol). |
Pan_Speed_x | Jika diatur ke nilai yang tidak sama dengan nol, gulir horizontal akan diaktifkan. Nilai negatif berarti perubahan arah gulir: Kiri ke kanan vs kanan ke kiri. |
Pan_Speed_y | Jika diatur ke nilai yang tidak sama dengan nol, gulir vertikal akan diaktifkan. Nilai negatif berarti perubahan arah gulir: Naik ke bawah vs. ke bawah ke atas. |
Pan_MinDistFromCenter | Jarak minimal yang dinormalisasi dalam x dan y dari tengah kotak temuan target (0, 0) untuk menggulir. Dengan demikian, nilai harus berkisar antara 0 (selalu gulir) dan 0,5 (tanpa gulir). |
UseSkimProofing | Jika diaktifkan, ini mencegah gerakan gulir mendadak saat melihat-lihat dengan cepat. Ini mungkin membuat pengguliran terasa kurang responsif. Ini dapat disetel dengan nilai SkimProofUpdateSpeed . |
SkimProofUpdateSpeed | Semakin rendah nilainya, semakin lambat pengguliran akan mempercepat setelah skimming. Nilai yang disarankan: 5. |
Rotasi 3D berbasis perhatian
Bayangkan melihat objek 3D dan bagian-bagian yang ingin Anda lihat lebih ajaib beralih ke arah Anda - seolah-olah sistem akan membaca pikiran Anda dan tahu untuk mengubah item ke arah Anda! Itulah ide untuk rotasi 3D berbasis perhatian yang memungkinkan Anda menyelidiki semua sisi hologram tanpa mengangkat jari. Untuk mengaktifkan perilaku ini, cukup tambahkan skrip OnLookAtRotateByEyeGaze ke bagian dari GameObject Anda dengan komponen Collider . Anda dapat mengubah beberapa parameter yang tercantum di bawah ini untuk membatasi seberapa cepat dan ke arah mana hologram akan berubah.
Seperti yang dapat Anda bayangkan, memiliki perilaku ini aktif setiap saat dapat dengan cepat menjadi cukup mengganggu dalam adegan yang ramai.
Inilah sebabnya mengapa Anda mungkin ingin memulai dengan perilaku ini dinonaktifkan lalu mengaktifkannya dengan cepat menggunakan perintah suara.
Atau, kami menambahkan contoh di EyeTrackingDemo-03-Navigation
(Aset/MRTK/Contoh/Demo/EyeTracking/Scenes) untuk menggunakan TargetMoveToCamera tempat Anda dapat memilih target yang berfokus dan terbang di depan Anda - cukup katakan "Datanglah kepada saya".
Setelah dalam mode dekat, mode rotasi otomatis diaktifkan secara otomatis. Dalam mode itu, Anda dapat mengamatinya dari semua sisi baik hanya bersandar dan melihatnya, berjalan di sekitarnya atau menjangkau untuk mengambil dan memutarnya dengan tangan Anda. Saat Anda menutup target (lihat & mencubit atau mengatakan "Kirim kembali"), target akan kembali ke lokasi aslinya dan akan berhenti bereaksi terhadap Anda dari jauh.
Parameter | Deskripsi |
---|---|
SpeedX | Kecepatan rotasi horizontal. |
Cepat | Kecepatan rotasi vertikal. |
InverseX | Untuk membalik arah rotasi horizontal. |
Inversey | Untuk membalikkan arah rotasi vertikal. |
RotasiThreshInDegrees | Jika sudut antara 'Tatapan ke Target' dan 'Kamera ke Target' kurang dari nilai ini, jangan lakukan apa pun. Ini untuk mencegah rotasi jittery kecil.. |
MinRotX | Sudut rotasi horizontal minimum. Ini untuk membatasi rotasi ke arah yang berbeda. |
MaxRotX | Sudut rotasi horizontal maksimum. Ini untuk membatasi rotasi ke arah yang berbeda. |
MinRotY | Sudut rotasi vertikal minimal untuk membatasi rotasi di sekitar sumbu x. |
MaxRotY | Sudut rotasi vertikal maksimum untuk membatasi rotasi di sekitar sumbu y. |
Singkatnya, skrip di atas akan memungkinkan Anda untuk mulai menggunakan tatapan mata untuk berbagai tugas navigasi input seperti menggulir teks, memperbesar dan menggeser tekstur serta memutar menyelidiki hologram 3D.