Table of Contents

Membuat headset mendukung EasyAR

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

Sebelum memulai

Sebelum masuk ke pengembangan, perlu terlebih dahulu memahami cara menggunakan EasyAR Sense Unity Plugin.

  • Mulai cepat
  • Jalankan contoh AR Session, contoh pelacakan gambar ImageTracking_Targets, dan contoh peta ruang padat SpatialMap_Dense_BallGame; hasilnya di ponsel dan headset serupa.

Pengembangan plugin headset akan melibatkan fungsi dasar, jadi perlu memahami hal-hal berikut terlebih dahulu:

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

Mempersiapkan perangkat untuk AR/MR

  • Mempersiapkan sistem pelacakan gerak/VIO

    Pastikan error pelacakan perangkat terkendali. Beberapa fitur EasyAR seperti Mega dapat sampai batas tertentu mengurangi error akumulasi perangkat, tetapi error lokal yang besar juga akan membuat algoritma EasyAR menjadi tidak stabil. Secara umum, kami berharap drift VIO berada dalam 1‰.

  • Mempersiapkan sistem tampilan

    Pastikan saat sebuah objek virtual dengan ukuran dan kontur yang sama seperti objek nyata ditempatkan di dunia virtual, dan hubungan transformasi relatifnya dengan kamera virtual sama dengan hubungan transformasi antara objek nyata dan perangkat di dunia nyata, objek virtual dapat tampil menempel pada objek nyata dan perpindahan perangkat atau putaran kepala tidak merusak efek tampilan. Anda 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 dua dan hanya dua titik waktu di dalam sistem, dan perlu memastikan tidak ada situasi data tidak dapat disejajarkan.

Menggunakan templat paket ekstensi headset

Impor EasyAR Sense Unity Plugin (package com.easyar.sense) melalui jendela Package Manager di Unity dengan instalasi dari file tarball lokal. Ekstrak templat ekstensi headset (package com.easyar.sense.ext.hmdtemplate) ke direktori Packages pada proyek Unity, lalu ubah nama folder Samples~ menjadi Samples.

Saat itu Anda akan 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 perlu, Anda dapat menggunakan cara apa pun yang diizinkan Unity untuk mengimpor EasyAR Sense Unity Plugin dan menyimpan templat ekstensi headset.

Jika tidak menggunakan templat, Anda juga dapat merujuk ke panduan Unity untuk membuat package kustom untuk membuat package baru.

Jika SDK perangkat tidak diorganisasi sebagai package Unity, Anda harus mengekstrak templat ekstensi headset ke folder Assets proyek Unity, lalu menghapus file package.json serta file apa pun dengan akhiran .asmdef dari hasil ekstraksi. Harap diperhatikan bahwa dalam cara penggunaan ini, pengguna yang memakai SDK perangkat bersama EasyAR tidak akan memperoleh dependensi versi yang memadai.

Menyelesaikan ekstensi input runtime

Ikuti metode membuat ekstensi input untuk data gerak perangkat dan gambar, ubah Runtime/HMDTemplateFrameSource.cs, dan selesaikan ekstensi input yang cocok untuk headset. Inilah pekerjaan pengembangan utama paket ekstensi.

Menyelesaikan menu editor

Ubah string "HMD Template" di kelas MenuItems menjadi nama perangkat. Jika Anda memerlukan fungsi editor kustom lainnya, Anda juga dapat menambahkan skrip lain.

Saat pengembang memilih AR Session (EasyAR) di tampilan Hierarchy dan mengeklik kanan, menu berikut akan muncul:

  • EasyAR Sense > Extensions > Frame Source : [Device Name]: menambahkan sumber frame perangkat tersebut ke session saat ini.
  • EasyAR Sense > Extensions > Frame Source : [Device Name (keep it only)]: menambahkan sumber frame perangkat tersebut ke session saat ini dan hanya mempertahankan satu.

alt text

Menyelesaikan contoh aplikasi

Contoh berada di Samples/Combination_BasedOn_HMD. Demi kesederhanaan, templat contoh tidak memiliki kode; semua fungsi AR dapat diselesaikan hanya melalui konten scene dan konfigurasi.

  1. Tambahkan konten yang mendukung berjalan di perangkat ke dalam scene.

    Kiat

    Jika perlu, Anda juga dapat melakukannya sebaliknya: gunakan scene yang bisa berjalan di perangkat, lalu tambahkan komponen EasyAR dan objek lain dari scene contoh ke scene tersebut.

  2. Ubah objek yang dirancang untuk diletakkan di bawah origin session.

    Jika scene mendefinisikan origin session, pindahkan EasyARPanda dan UI ke bawah node origin.

    alt text

    EasyARPanda akan memberikan referensi perilaku pelacakan gerak perangkat, yang membantu menentukan penyebab saat pelacakan tidak stabil.

    Teks di dalam tanda kurung pada nama objek ini ditujukan sebagai petunjuk bagi pengembang ekstensi dan dapat dihapus:

    • (Move into Origin if there is any)
    • (Move into Origin if there is any, set constraint source to your rendering camera)
  3. Konfigurasikan perilaku tombol HUD.

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

    alt text

  4. Konfigurasikan fungsi raycast Canvas.

    Ubah Canvas di bawah node UI untuk memastikan raycast berfungsi dan semua tombol serta sakelar UI berjalan seperti yang diharapkan.

    Templat sudah menambahkan Tracked Device Graphic Raycaster dari XR Interaction Toolkit pada node Canvas; setelah paket terkait diimpor, Anda akan dapat melihatnya.

    alt text

    Jika saat berjalan di perangkat Anda tidak menggunakan XR Interaction Toolkit, Anda akan melihat petunjuk skrip hilang seperti di bawah ini; Anda dapat menghapusnya dan menambahkan komponen raycaster yang dibutuhkan perangkat.

    alt text

Langkah berikutnya

Topik terkait