Desain & Implementasi Pelacakan Tangan di Intelijen Data Blockchain 'Myst'. Pencarian Vertikal. Ai.

Desain & Implementasi Pelacakan Tangan di 'Myst'

Menggunakan API Pelacakan Tangan yang ditingkatkan dari Platform Kehadiran, kami memperkenalkan Pelacakan Tangan dengan pembaruan terbaru kami untuk Myst di Platform Meta Quest, berjudul 'Hands & More'. Kami sangat senang akhirnya membiarkan orang-orang bermain Myst di Quest tanpa pengontrol fisik! Dalam posting ini, kita akan membahas evolusi dan iterasi penerapan pelacakan tangan di Myst—dan khususnya, menambahkan lebih banyak dukungan untuknya di Unreal Engine 4.27.2.

Desain & Implementasi Pelacakan Tangan di Intelijen Data Blockchain 'Myst'. Pencarian Vertikal. Ai.Artikel Tamu oleh Hannah Gamiel

Hannah Gamiel adalah Direktur Pengembangan di Cyan—studio di belakang aslinya 'misteri' game—dan membantu mengembangkan yang baru Misteri (2020)' yang mencakup dukungan VR. Awalnya berasal dari latar belakang teknis murni, dia sekarang membantu memimpin produksi di semua judul dan mengelola upaya bisnis & teknologi di Cyan. Dia telah mengerjakan judul-judul seperti 'Myst' (2020), 'The Witness', 'Braid, Anniversary Edition', 'Obduction', 'Firmament' (segera hadir!), dan banyak lagi.

Fase Desain & Pertimbangan

Merancang Navigasi untuk Pelacakan Tangan

Gambar yang menunjukkan ke mana Anda ingin pergi. Anda mungkin berpikir untuk menunjuk, bukan? Itu sebabnya kami memilih untuk menggunakan metode 'menunjuk' untuk gerakan di Myst.

Saat Anda berada dalam mode teleportasi, Anda dapat menunjuk ke mana Anda ingin pergi dan dering teleportasi muncul di tempat tujuan Anda. Saat Anda 'menghapus titik' (dengan merentangkan sisa jari Anda, atau hanya menarik jari telunjuk Anda kembali ke telapak tangan), teleportasi dijalankan.

Saat Anda berada dalam mode gerakan halus, menunjuk dengan tangan dominan gerakan bebas Anda (yang dapat dikonfigurasi dalam pengaturan kontrol kami, tetapi secara default adalah tangan Kiri) akan mulai menggerakkan Anda dengan mulus ke arah yang Anda tunjuk.

Saat menguji gerakan dengan menunjuk, kami menemukan bahwa pelacakan tangan terkadang tidak dapat diandalkan dengan jari telunjuk dan jari tengah Anda saat terhalang oleh sisa tangan Anda. Sistem tidak yakin apakah jari-jari itu sepenuhnya menunjuk atau sepenuhnya 'tertutup' di tangan Anda. Kami menambahkan sedikit faktor 'fudge' ke kode untuk memperhitungkan inisiasi/eksekusi gerakan yang lebih stabil di bagian depan ini—yang akan kita bahas nanti saat membahas perubahan yang dibuat pada Pelacakan Tangan yang sudah ada. dukungan di Unreal Engine.

Putar

Metode 'titik' tidak berfungsi untuk semua penggunaan navigasi. Saat berbelok, kami awalnya menggabungkan penunjukan dengan rotasi pergelangan tangan. Membandingkan pergelangan tangan pemain dan vektor depan kamera akan menunjukkan arah belokan (dan seberapa besar belokan seharusnya). Kami mencoba ini pada awalnya karena tampaknya intuitif untuk mempertahankan tema 'menunjuk' untuk navigasi di antara semua mode.

Namun, komplikasi muncul dalam tes kenyamanan. Dalam pengujian bermain, sebagian besar pemain akan menunjuk ke depan dengan telapak tangan menghadap ke tanah, seperti yang mungkin dilakukan ketika mencoba menunjuk sesuatu di luar permainan juga. Memutar pergelangan tangan Anda ke kiri dan kanan (di sekitar sumbu atas pergelangan tangan Anda) saat telapak tangan menghadap ke tanah merupakan tantangan dan memiliki rentang gerak yang sangat terbatas, terutama jika mencoba untuk berpaling dari dada Anda.

Masalah ini sama bahkan jika Anda meminta pemain untuk menunjuk sesuatu di depan mereka dengan telapak tangan menghadap ke dalam. Anda dapat menekuk pergelangan tangan Anda ke dalam terhadap tubuh Anda sedikit, tetapi Anda tidak akan mendapatkan rentang gerakan yang sama dengan menekuk pergelangan tangan menjauh dari tubuh Anda.

Jadi bagaimana kita memecahkan ini? Kami akhirnya menetapkan untuk beralih ke gerakan 'jempol ke atas' alih-alih gerakan menunjuk dengan jari.

Bayangkan memberikan acungan jempol. Sekarang putar pergelangan tangan Anda ke kanan dan ke kiri. Perhatikan bahwa meskipun Anda tidak memiliki rentang gerak yang besar, itu masih cukup konsisten menunjuk 'kiri' dan 'kanan' dengan ibu jari Anda dalam gerakan ini.

Inilah yang kami tentukan untuk mengaktifkan mode pelacakan tangan. Meskipun menunjuk dengan ibu jari sepertinya bukan cara yang paling intuitif untuk berbalik, itu melakukan akhirnya menjadi cara yang paling nyaman dan konsisten untuk melakukannya.

Dengan putaran jepret, memutar pergelangan tangan Anda ke kiri atau kanan dari posisi jempol ke atas menyebabkan satu putaran jepret dimulai. Anda kemudian harus mengembalikan tangan Anda ke posisi 'tengah' (lurus ke atas) untuk me-reset snap, dan juga menunggu cooldown yang sangat singkat terjadi untuk memulai snap turn lagi.

Dengan putaran yang mulus, memutar pergelangan tangan Anda saat dalam posisi mengacungkan jempol akan mulai memutar Anda ke kiri atau ke kanan—setelah Anda meninggalkan 'zona mati' yang mencegah terjadinya putaran hingga Anda melewati ambang batas.

Menangani Konflik Antara Gerakan & Pose Interaksi Objek

Tentu saja, mengacungkan jari terlalu lebar untuk dianggap sebagai isyarat hanya digunakan untuk navigasi. Orang akan membuat gerakan menunjuk yang sama untuk menekan tombol atau berinteraksi dengan hal-hal lain di dunia hanya karena kebiasaan atau harapan mereka sendiri. Akan sangat menggelegar untuk berjalan ke (tapi tidak .) benar hingga) sebuah tombol, arahkan jari Anda untuk menekannya, dan kemudian tiba-tiba (dan tidak diinginkan) mendekatinya dalam game (atau memulai teleportasi secara tidak sengaja)!

Cara kami mencegah terjadinya gerakan saat pemain sedang berinteraksi dengan sesuatu adalah dengan mencegah kode gerakan ditembakkan saat tangan yang membuat gerakan 'bergerak' berada dalam jarak tertentu dari objek yang dapat berinteraksi. Rentang ini telah di-tweak beberapa kali untuk mendapatkan 'sweet spot' yang bagus berdasarkan playtesting.

Kami telah menemukan bahwa sweet spot ini berjarak sekitar 25 cm dari lokasi ruang dunia dari tulang ujung jari telunjuk. Myst penuh dengan objek interaktif dengan berbagai ukuran (mulai dari kancing kecil hingga tuas yang sangat besar) yang tersusun di ruang terbuka lebar dan lorong sempit, jadi kami membutuhkan sedikit pengujian untuk menetapkan nomor ini. Kami awalnya mencoba 60 cm (sekitar dua kaki), tetapi itu mencegah gerakan terjadi ketika pemain masih perlu mendekati objek. Demikian juga, apa pun di bawah 25 cm menyebabkan gerakan pemain yang tidak diinginkan terpicu ketika pemain mencoba meraih atau menyentuh suatu objek.

Salah satu area pengujian terbaik kami adalah ruang generator di Myst Island, tempat Anda melewati jalan masuk yang sempit dan kemudian langsung disambut oleh panel penuh tombol. Ketika area pengujian interaksi terlalu besar, pemain tidak dapat bergerak melalui entri dan menuju panel karena mendeteksi tombol dalam jangkauan jari telunjuk.

Konon, 25 cm adalah yang bekerja secara khusus untuk Myst. Game lain mungkin perlu menyesuaikan angka ini jika mereka ingin menerapkan sesuatu yang serupa, dengan mempertimbangkan kriteria mereka sendiri.

Merancang Interaksi Objek untuk Pelacakan Tangan

Saat ini, semua interaksi yang dapat diambil di Myst dibuat untuk bekerja dengan pelacakan tangan—memutar katup, membuka pintu, menekan tombol, membalik halaman buku, dan sebagainya.

Interaksi mendukung apa yang telah kita siapkan Myst dengan pengontrol Sentuh. Di sana, menekan tombol grip secara otomatis memadukan representasi mesh dalam game dari tangan Anda menjadi pose 'grabbed', baik mengepalkan tangan (jika kosong) atau meraih objek. Dengan pelacakan tangan, kami telah menambahkan kode yang akan membuat tebakan yang memenuhi syarat ketika Anda telah cukup melengkungkan jari Anda untuk 'mengambil' sesuatu dan memulai logika yang sama seperti yang disebutkan sebelumnya.

Misalnya, saat Anda menggunakan pelacakan tangan dan tangan Anda melayang di atas sesuatu yang dapat diraih, warna tangan Anda berubah menjadi oranye (inilah yang terjadi jika Anda tidak menggunakan pelacakan tangan di Myst VR juga). Saat Anda mengambil objek yang dapat berinteraksi dengan mulai mengepalkan jari-jari Anda, bola oranye menggantikan jala tangan Anda dan menunjukkan di mana tangan melekat pada objek.

Alasan mengapa kami menggunakan metode ini alih-alih membuat jerat poseable khusus untuk tangan Anda—atau membiarkan tangan/jari Anda tampak berinteraksi secara fisik dengan bagian-bagian dari objek ini—adalah karena kami ingin interaksi tersebut setara dengan apa yang kami tawarkan di sisi pengontrol Sentuh untuk saat ini.

Menekan tombol bekerja secara berbeda. Tidak perlu abstraksi karena tombol bukanlah objek yang dapat diambil, dan sebagai gantinya kami mengizinkan Anda untuk menekan tombol menggunakan penumbuk kapsul yang dihasilkan di antara masing-masing sambungan jari pada jaring tangan yang dapat berpose. Anda dapat melakukan berbagai hal aneh dan menyenangkan karena hal ini—seperti hanya menggunakan kelingking atau jari manis Anda untuk berinteraksi dengan setiap tombol dalam game, jika Anda benar-benar menginginkannya.

Implementasi ini sedikit berbeda dari cara pengontrol Sentuh berinteraksi dengan tombol dalam game di mana kami biasanya mengharapkan pemain menggunakan tombol pegangan pada pengontrol mereka untuk mengatur tangan menjadi jala 'menunjuk jari' untuk mendapatkan tombol dalam game yang akurat tekan di ujung mereka. Dengan pelacakan tangan, jelas ada lebih banyak fleksibilitas dalam pose yang dapat Anda buat dengan tangan Anda, dan oleh karena itu lebih banyak cara untuk menekan tombol dengan tingkat akurasi yang sama.

Interaksi Menu/UI

Untuk berinteraksi dengan menu, kami akhirnya menggunakan paradigma interaksi yang sama yang digunakan Meta untuk Platform Quest: cubitan dua jari antara ibu jari dan jari telunjuk, di kedua tangan. Ini dapat digunakan untuk membuka menu dalam game dan berinteraksi dengan elemen dalam menu. Tidak ada gunanya menemukan kembali roda di sini ketika pemain sudah diajarkan untuk melakukan ini di menu tingkat OS ketika mereka pertama kali mengaktifkan pelacakan tangan di Quest!

Mengkomunikasikan Semua Ini kepada Pemain

Karena pelacakan tangan bukanlah input biasa pada Quest seperti pengontrol Sentuh, dan karena mungkin ada beberapa orang yang bermain Myst untuk pertama kalinya (atau bahkan memainkan game VR pertama mereka!), kami mencoba untuk mempertimbangkan bagaimana kami mengomunikasikan semua informasi tentang pelacakan tangan ini kepada pemain. Kami memastikan untuk menyertakan versi lain dari "diagram pengontrol" kami yang dirancang khusus untuk menggambarkan interaksi pelacakan tangan (bila diaktifkan di Myst), dan kami menampilkan pemberitahuan khusus kepada pemain yang memberi tahu mereka cara bergerak dengan tangan mereka.

Selain itu, kami pikir penting untuk mengingatkan pemain bagaimana memiliki pengalaman pelacakan tangan yang mulus, setelah diaktifkan. Pemain diberitahu di Myst's menu stabilitas pelacakan tangan jauh lebih baik jika mereka memastikan mereka berada di ruangan yang cukup terang dan menjaga tangan mereka dalam bidang pandang mereka.

Meta juga memberi tahu pemain bahwa ini adalah kunci untuk lingkungan pelacakan tangan yang dilacak dengan baik, tetapi kami menyadari bahwa beberapa pemain mungkin melompat ke dalam permainan tanpa menguraikan pemberitahuan Meta tentang ini terlebih dahulu, jadi kami telah memilih untuk mengingatkan orang-orang jika mereka lupa.

Lanjutkan di Halaman 2: Modifikasi Mesin Buatan Tidak Nyata »

Stempel Waktu:

Lebih dari Jalan menuju VR