Table of Contents

Membuat headset mendukung EasyAR

Artikel ini menjelaskan cara menggunakan template paket ekstensi headset dari EasyAR Sense Unity Plugin untuk mengembangkan paket ekstensi EasyAR yang mendukung perangkat headset.

Sebelum memulai

Sebelum memulai pengembangan, perlu memahami cara menggunakan EasyAR Sense Unity Plugin.

  • Memulai cepat
  • Jalankan contoh AR Session, contoh pelacakan gambar ImageTracking_Targets dan contoh peta ruang padat SpatialMap_Dense_BallGame, efek operasinya serupa di ponsel dan headset.

Pengembangan plugin headset akan melibatkan beberapa fungsi dasar, perlu memahami konten ini terlebih dahulu:

Selain itu, perlu juga familiar dengan cara mengembangkan package Unity.

Mempersiapkan perangkat untuk AR/MR

  • Mempersiapkan sistem pelacakan gerak/VIO

    Pastikan kesalahan pelacakan perangkat terkendali. Beberapa fungsi EasyAR seperti Mega dapat mengurangi kesalahan akumulasi perangkat hingga batas tertentu, tetapi kesalahan lokal yang besar juga akan membuat algoritma EasyAR menjadi tidak stabil. Secara umum, kami berharap drift VIO berada di bawah 1‰.

  • Mempersiapkan sistem tampilan

    Pastikan ketika objek virtual dengan ukuran dan kontur yang sama dengan objek nyata ditempatkan di dunia virtual, dan hubungan transformasi relatifnya terhadap kamera virtual sama dengan hubungan transformasi objek nyata yang sesuai terhadap perangkat, objek virtual dapat ditampilkan dengan tepat pada objek nyata, dan menggerakkan perangkat atau memutar kepala tidak akan merusak efek tampilan. Dapat merujuk pada efek Vision Pro.

  • Mempersiapkan SDK perangkat

    Pastikan sudah ada API yang dapat menyediakan data frame input eksternal. Data ini harus dihasilkan oleh sistem pada dua dan hanya dua titik waktu, perlu memastikan tidak ada ketidakselarasan data.

Menggunakan template paket ekstensi headset

Gunakan Package Manager window Unity untuk menginstal plugin menggunakan file tarball lokal untuk mengimpor EasyAR Sense Unity Plugin (package com.easyar.sense). Ekstrak template ekstensi headset (package com.easyar.sense.ext.hmdtemplate) ke direktori Packages proyek Unity, dan ubah nama folder Samples~ menjadi Samples.

Saat ini seharusnya melihat struktur direktori seperti ini:

.
├── Assets
└── Packages
    └── com.easyar.sense.ext.hmdtemplate
        ├── CHANGELOG.md
        ├── Documentation~
        ├── Editor
        ├── LICENSE.md
        ├── package.json
        ├── Runtime
        └── Samples
            └── Combination_BasedOn_HMD
Kiat

Jika diperlukan, dapat menggunakan cara apa pun yang diizinkan Unity untuk mengimpor EasyAR Sense Unity Plugin dan menyimpan template ekstensi headset.

Jika tidak menggunakan template, dapat merujuk ke panduan Unity untuk membuat package kustom untuk membuat package baru.

Jika SDK perangkat tidak menggunakan package Unity untuk pengorganisasian, perlu mengekstrak template ekstensi headset ke folder Assets Unity, lalu menghapus package.json dan semua file dengan akhiran .asmdef dari file yang diekstrak. Harap diperhatikan bahwa dalam mode penggunaan ini, pengguna yang menggunakan SDK perangkat dan EasyAR secara bersamaan tidak akan mendapatkan ketergantungan versi yang wajar.

Menyelesaikan ekstensi input runtime

Ikuti metode membuat ekstensi input gambar dan data gerak perangkat, modifikasi Runtime/HMDTemplateFrameSource.cs dan selesaikan ekstensi input yang sesuai untuk headset. Ini adalah pekerjaan pengembangan utama paket ekstensi.

Menyelesaikan menu editor

Modifikasi string "HMD Template" di kelas MenuItems menjadi nama yang mewakili perangkat. Jika membutuhkan fungsi editor kustom lainnya, juga dapat menambahkan skrip lain.

Saat pengembang memilih AR Session (EasyAR) di tampilan Hierarchy dan klik kanan, item menu ini akan muncul:

  • EasyAR Sense > Extensions > Frame Source : [Nama Perangkat]: Menambahkan sumber data frame perangkat ini ke session saat ini.
  • EasyAR Sense > Extensions > Frame Source : [Nama Perangkat (hanya simpan ini)]: Menambahkan dan hanya menyimpan satu sumber data frame perangkat ini di session saat ini.

alt text

Menyelesaikan contoh aplikasi

Contoh berada di Samples/Combination_BasedOn_HMD. Untuk kesederhanaan, template contoh tidak memiliki kode, semua fungsi AR diselesaikan hanya dengan konten dan konfigurasi scene.

  1. Tambahkan konten yang mendukung operasi perangkat ke scene.

    Kiat

    Jika diperlukan, juga dapat melakukan sebaliknya, menggunakan scene yang dapat berjalan di perangkat, lalu menambahkan komponen EasyAR dan objek lain dari sample scene ke scene.

  2. Modifikasi objek yang dirancang untuk ditempatkan di bawah origin session.

    Jika ada origin session yang didefinisikan di scene, pindahkan EasyARPanda dan UI ke bawah node origin.

    alt text

    EasyARPanda akan menyediakan referensi untuk perilaku pelacakan gerak perangkat, yang akan membantu menentukan penyebab ketika pelacakan tidak stabil.

    Teks dalam tanda kurung pada nama objek ini adalah petunjuk untuk pengembang ekstensi, dapat dihapus:

    • (Pindahkan ke Origin jika ada)
    • (Pindahkan ke Origin jika ada, atur sumber constraint ke rendering kamera Anda)
  3. Konfigurasikan perilaku tombol HUD.

    Atur constraint source UI ke kamera virtual, untuk memastikan tombol HUD dapat bekerja seperti yang diharapkan.

    alt text

  4. Konfigurasikan fungsi raycast Canvas.

    Modifikasi Canvas di bawah node UI, pastikan raycast dapat bekerja, untuk memastikan semua tombol dan sakelar UI berfungsi seperti yang diharapkan.

    Di template, sudah ditambahkan sebelumnya Tracked Device Graphic Raycaster dari XR Interaction Toolkit di bawah node Canvas, setelah mengimpor package yang sesuai dapat dilihat.

    alt text

    Jika tidak menggunakan XR Interaction Toolkit saat menjalankan di perangkat, akan melihat peringatan skrip hilang seperti di bawah, dapat dihapus, dan tambahkan komponen raycaster yang diperlukan perangkat.

    alt text

Langkah selanjutnya

Topik terkait