Mengontrol Proses Pelacakan Mega Go
Dokumen ini menjelaskan cara mengontrol berbagai fitur dan parameter dalam proses pelacakan Mega Go untuk memenuhi kebutuhan berbagai skenario aplikasi.
Sebelum Memulai
- Periksa Apakah fitur lokalisasi saya sudah dapat digunakan? untuk memastikan Anda telah mengunduh peta yang benar.
Alur Kerja tracker
Alur kerja tracker adalah sebagai berikut:
flowchart LR
subgraph startup_graph[Memulai]
direction TB
sstart((Mulai sesi))
create[Pembuatan asli]
load(Muat target)
verify[Verifikasi uji coba]
init_g[[Inisialisasi]]
end
subgraph init_graph[Inisialisasi]
direction TB
init_{Inisialisasi 6DoF berhasil<br>atau bukan 6DoF}
init[[Proses inisialisasi pelacakan lokal]]
detecting[[Pendeteksian]]
tracking_g[[Pelacakan]]
end
subgraph tracking_graph[Pelacakan]
direction TB
tracking[[Pelacakan terus menerus]]
end
subgraph stopping_graph[Berhenti]
direction TB
unload(Muat ulang target)
dispose[Pemusnahan asli]
sstop([Sesi berhenti])
end
sstart --> create --> load --> verify --> init_g
init --> init_ --> |Ya| detecting --> tracking_g
unload --> dispose --> sstop
init_ --> |Tidak| init
startup_graph --> init_graph
init_graph --> tracking_graph
tracking_graph --> stopping_graph
Alur tersebut secara umum terbagi menjadi beberapa tahap:
- Memulai:
- Setelah sesi dimulai, tracker di lapisan asli akan dibuat.
- Setelah Start() target sendiri, target akan dimuat ke tracker yang sesuai.
- Untuk data uji coba, Anda perlu melakukan verifikasi kualifikasi uji coba melalui jaringan. Setelah verifikasi berhasil, Anda akan masuk ke tahap berikutnya.
- Inisialisasi:
- Saat menggunakan sumber bingkai 6DoF, akan masuk ke proses inisialisasi pelacakan lokal.
- Inisialisasi pelacakan lokal mungkin memakan waktu, tergantung pada kompleksitas skenario dan kemampuan perangkat, serta biasanya terkait dengan algoritma yang digunakan di lapisan bawah sumber bingkai.
- Saat menggunakan sumber bingkai bukan 6DoF, tahap inisialisasi pelacakan lokal akan dilewati dan langsung mulai deteksi.
- Proses deteksi mungkin memakan waktu, tergantung pada tingkat kemudahan lokalisasi skenario dan kualitas pemetaan pengumpulan data.
- Dalam konfigurasi default, konten tahap ini tidak akan ditampilkan. Anda dapat mengontrol perilaku ini melalui opsi komponen ActiveController.
- Saat menggunakan sumber bingkai 6DoF, akan masuk ke proses inisialisasi pelacakan lokal.
- Pelacakan:
- Tracker akan terus melacak blok saat ini.
- Dalam konfigurasi default, hanya konten di bawah node target yang sedang dalam status pelacakan (TargetController.IsTracked ==
true) yang akan ditampilkan. Anda dapat mengontrol perilaku ini melalui opsi komponen ActiveController.
- Berhenti:
- Setelah sesi berhenti, target akan diunload dan tracker di lapisan asli akan dihancurkan.
Menyesuaikan Tingkat Dukungan Perangkat
Properti MegaGoTrackerFrameFilter.MinInputFrameLevel dari MegaGoTrackerFrameFilter digunakan untuk menentukan tingkat perangkat minimum yang didukung oleh Mega.
![]()
Mega Go dapat berjalan di hampir semua jenis sumber bingkai, tetapi sumber bingkai yang berbeda memiliki pengaruh yang berbeda terhadap efek pelacakan.
Secara default, Mega akan memilih sumber bingkai tingkat tertinggi yang didukung oleh perangkat untuk pelacakan. Sesi yang mendukung Mega Go dalam konfigurasi default telah dikonfigurasi dengan sumber bingkai yang mendukung 6DoF dan 5DoF.
Untuk mendukung sumber bingkai tingkat tertentu saat Mega berjalan, diperlukan dua syarat:
- Sumber bingkai yang diperlukan ada dalam grup sumber bingkai opsional sesi.
- MegaGoTrackerFrameFilter.MinInputFrameLevel lebih besar atau sama dengan tingkat CameraTransformType dari sumber bingkai yang diperlukan.
Misalnya, untuk mendukung pelacakan 3DoF dalam sesi default, Anda perlu:
- Menambahkan ThreeDofCameraDeviceFrameSource ke grup sumber bingkai sesi.
- Mengubah MegaGoTrackerFrameFilter.MinInputFrameLevel menjadi ThreeDof.
Sebagai contoh lain, untuk menghapus dukungan pelacakan 5DoF dalam sesi default, Anda perlu:
- Menghapus InertialCameraDeviceFrameSource dari grup sumber bingkai sesi.
- Mengubah MegaGoTrackerFrameFilter.MinInputFrameLevel menjadi SixDof (bahkan jika tidak diubah, karena tidak ada sumber bingkai 5DoF, 5DoF tidak akan digunakan).
Jika tidak ada sumber bingkai yang memenuhi syarat yang tersedia, pengumpulan sesi akan gagal.
Memahami Status Sistem Saat Ini
Dalam konfigurasi sesi default, Pesan UI akan ditampilkan di layar, yang berisi informasi status Mega Go.
Status Tracker akan ditampilkan di sebelah Mega Go: , seperti Tracking, VerifyingTrial, dan sebagainya. Selama proses deteksi dan pelacakan, pembaruan lokalisasi juga akan ditampilkan di bawah.
![]()
Status pelacakan blok yang sedang dimuat akan ditampilkan di bawah Mega Go: , ditampilkan sebagai Block (<trackingStatus>): <name> (<id>). Di mana <name> adalah nama blok, <id> adalah ID blok. trackingStatus mungkin Tracking atau NotTracking, yang masing-masing menunjukkan apakah blok saat ini sedang dilacak.

Anda dapat menggunakan properti MegaGoTrackerFrameFilter.Status untuk mendapatkan status saat ini, sehingga Anda dapat memahami kondisi operasi tracker. Saat terjadi status kesalahan, Anda dapat menggunakan MegaGoTrackerFrameFilter.Error untuk mendapatkan status kesalahan dan melakukan pemrosesan yang sesuai.
Kode berikut menunjukkan cara menggunakan properti ini, serta metode pemrosesan status pengecualian umum yang perlu diperhatikan oleh aplikasi:
void HandleTrackerStatus()
{
if (tracker.Status == MegaGoTrackerStatus.Error)
{
if (tracker.Error == MegaGoTrackerError.ServiceVerificationFailed)
{
// Verifikasi layanan gagal. Disarankan untuk memeriksa apakah data telah kedaluwarsa atau tidak valid (setelah versi uji coba diubah menjadi versi resmi, data versi uji coba akan menjadi tidak valid).
}
else if (tracker.Error == MegaGoTrackerError.LocalVerificationFailed)
{
// Verifikasi lokal gagal. Disarankan untuk memeriksa apakah file target lengkap.
}
else
{
// Kesalahan lainnya.
}
}
else if (tracker.Status == MegaGoTrackerStatus.VerifyingTrial)
{
// Verifikasi target uji coba sedang berlangsung. Jika verifikasi tidak dapat selesai dalam waktu lama, disarankan untuk memeriksa koneksi jaringan.
}
else if (tracker.Status == MegaGoTrackerStatus.VIOInitializing)
{
// Inisialisasi input VIO sedang berlangsung. Jika inisialisasi tidak dapat selesai dalam waktu lama, disarankan untuk memberi tahu pengguna untuk mengoptimalkan cara penggunaan.
// Misalnya: "Cobalah arahkan kamera ke depan miring, dan gerakkan tubuh sambil membawa perangkat ke kiri dan kanan sebanyak 5 kali."
}
}
Anda dapat menggunakan event MegaGoTrackerFrameFilter.LocalizationRespond untuk mendapatkan pembaruan lokalisasi.
Jeda dan Lanjutkan
Anda dapat mengatur MegaGoTrackerFrameFilter.enabled menjadi false untuk menjeda pelacakan.
Secara default, setelah pelacakan dijeda, semua konten di bawah node blok akan disembunyikan.
Topik Terkait
- Praktik Terbaik AR Session untuk Mega Go menjelaskan cara membuat dan mengkonfigurasi AR Session untuk Mega Go
- Menambahkan Target Pelacakan Mega Go menjelaskan cara menambahkan blok target pelacakan Mega Go dan cara memuat model blok di editor Unity untuk membantu pengembangan
- Menambahkan Satu Set Sumber Bingkai menjelaskan cara mengubah grup sumber bingkai sesi
- Mendapatkan Hasil Operasi Sesi menjelaskan cara mendapatkan hasil pelacakan komponen sesi
- Pesan UI menjelaskan cara menggunakan pesan UI untuk menampilkan status sesi