Table of Contents

Menggunakan file EIF untuk simulasi di Unity

Artikel ini menjelaskan cara menggunakan file EIF untuk simulasi di Unity, sehingga sebagian besar pekerjaan pengembangan dapat dilakukan di komputer dan efeknya dapat dilihat secara visual.

Sebelum memulai

Simulasi menggunakan file EIF sebagai input, jadi sebelum memulai, Anda perlu merekam file EIF terlebih dahulu:

Anda juga perlu memahami:

Mengaktifkan frame player di session

ARSession.AssembleOptions menyediakan berbagai cara untuk mengonfigurasi kombinasi komponen session. Salah satu caranya adalah dengan mengatur AssembleOptions.FrameSource menjadi FramePlayer untuk mengaktifkan komponen frame player, sehingga file EIF dapat digunakan untuk simulasi.

Contoh:

Session.AssembleOptions.FrameSource = AssembleOptions.FrameSourceSelection.FramePlayer;

Anda juga dapat melakukannya di editor, pilih AR Session (EasyAR), dan ubah opsi yang sesuai di Assemble Options di jendela Inspector:

alt text

Dengan ini, saat session dimulai, komponen frame player akan diaktifkan, dan tidak akan memilih komponen frame source lainnya.

Efek penggunaan frame player untuk memutar file EIF ditunjukkan dalam video berikut:

Video ini menunjukkan efek pemetaan ruang padat menggunakan frame player di komputer. Di sebelah kiri adalah tampilan Hierarchy, di tengah adalah tampilan Scene, dan di sebelah kanan adalah tampilan Game. Konten tampilan Game sama dengan yang dilihat pengguna di dunia nyata melalui ponsel.

Selama pemutaran file EIF, semua komponen fungsionalitas AR di session dapat bekerja secara normal, konten dan logika interaksi di scene juga dapat bekerja dengan baik, sehingga sebagian besar pekerjaan pengembangan dapat dilakukan di komputer dan efeknya dapat dilihat secara visual.

Kiat

Efek yang dilihat saat memutar EIF di komputer menggunakan frame player, pada dasarnya konsisten dengan efek di ponsel saat merekam file EIF.

Penting

Efek operasi saat memutar EIF di scene terkait dengan perangkat yang digunakan saat perekaman dan frame source yang dipilih di perangkat saat itu. Oleh karena itu, saat merekam file EIF, disarankan untuk menggunakan perangkat yang sama atau mendekati perangkat target untuk merekam, sehingga memastikan efek saat pemutaran konsisten dengan efek di perangkat target. Selain itu, perlu diperhatikan apakah fungsi pelacakan gerak diaktifkan di scene perekaman. Jika fungsi pelacakan gerak tidak diaktifkan saat perekaman, maka fungsi tersebut juga tidak dapat diaktifkan saat pemutaran, dan fungsionalitas AR yang bergantung pada pelacakan gerak (seperti pemetaan ruang padat, Mega, dll.) juga tidak akan bekerja konsisten seperti di perangkat.

Memutar saat session dimulai

Secara default, saat session dimulai, frame player akan secara otomatis mulai memutar file EIF. Namun, sebelum memutar, jalur file EIF perlu ditentukan. Ini dapat diatur melalui properti FramePlayer.FilePathType dan FramePlayer.FilePath.

Contoh:

var player = Session.GetComponent<FramePlayer>();
player.FilePathType = WritablePathType.Absolute;
player.FilePath = path;

Anda juga dapat melakukannya di editor, pilih AR Session (EasyAR), dan ubah opsi yang sesuai di komponen Frame Player di jendela Inspector:

alt text

Jika file tidak ditentukan, atau jalur file tidak valid, frame player akan gagal memulai saat session dimulai dan mencatat log kesalahan:

File not found:

Memutar secara manual

Jika Anda ingin mengontrol waktu pemutaran secara manual, Anda dapat menonaktifkan FramePlayer.enabled menjadi false sebelum session dimulai,

Session.GetComponent<FramePlayer>().enabled = false;

Anda juga dapat melakukannya di editor, pilih AR Session (EasyAR), dan hapus centang Enabled pada komponen Frame Player di jendela Inspector:

alt text

Saat perlu memutar, gunakan Play() untuk memulai pemutaran.

Contoh:

if (Session.Assembly.FrameSource is FramePlayer player)
{
    player.Play();
}

Setiap kali Play() dipanggil, pemutaran sebelumnya akan dihentikan (jika ada) dan pemutaran akan dimulai dari awal.

Hati-Hati

Saat memutar data baru, data asli di scene tidak akan dihapus. Status komponen AR juga tidak akan diatur ulang. Mereka akan berperilaku seolah-olah data kamera tiba-tiba melompat dari tempat data sebelumnya berhenti ke awal data baru.

Meskipun ini tidak terlalu memengaruhi beberapa fungsionalitas, untuk fungsionalitas yang bergantung pada pelacakan gerak (seperti pemetaan ruang padat, Mega, dll.), hal ini dapat menyebabkan status fungsionalitas tidak normal, sehingga memengaruhi efek operasi. Oleh karena itu, disarankan untuk memulai ulang session sebelum memutar data baru untuk mengatur ulang status semua komponen AR.

Jeda dan lanjutkan

Gunakan FramePlayer.enabled untuk mengontrol jeda dan kelanjutan pemutaran.

Contoh, atur FramePlayer.enabled = false untuk menjeda pemutaran:

player.enabled = false;

Setelah pemutaran dijeda, semua komponen fungsionalitas AR akan berhenti bekerja. Konten dan logika interaksi di scene tidak selalu berhenti, tergantung pada konten itu sendiri. Setelah pemutaran dilanjutkan, komponen fungsionalitas AR akan melanjutkan pekerjaan dari posisi jeda.

Menghentikan pemutaran

Gunakan Stop() untuk menghentikan pemutaran.

player.Stop();

Setelah pemutaran dihentikan, semua komponen fungsionalitas AR akan berhenti bekerja. Konten dan logika interaksi di scene tidak selalu berhenti, tergantung pada konten itu sendiri.

Melompat ke titik waktu tertentu untuk diputar (seek)

Gunakan Seek(double) untuk melompat ke titik waktu tertentu untuk diputar.

Contoh, lompat ke 5 detik kemudian untuk diputar:

player.Seek(player.Time + 5);
Catatan

Setelah lompatan, pemutaran mungkin tidak dimulai dari titik waktu yang tepat, tergantung pada metode pengkodean file EIF dan interval frame kunci.

Tidak semua file EIF mendukung pemutaran lompat. Anda dapat menggunakan properti IsSeekable untuk memeriksa apakah file EIF yang sedang diputar mendukung pemutaran lompat.

Catatan

Hanya file EIF yang direkam menggunakan format H264 dan berhenti direkam dengan benar yang mendukung pemutaran lompat. Jika file EIF tidak mendukung pemutaran lompat, memanggil Seek(double) tidak akan berpengaruh.

Kontrol kecepatan pemutaran

Gunakan properti Speed untuk mengontrol kecepatan pemutaran.

Contoh, atur kecepatan pemutaran menjadi 0,1 kali lebih cepat dari sebelumnya:

player.Speed += 0.1;

Tidak semua file EIF mendukung kontrol kecepatan pemutaran. Anda dapat menggunakan properti IsSpeedChangeable untuk memeriksa apakah file EIF yang sedang diputar mendukung kontrol kecepatan pemutaran.

Catatan

Hanya file EIF yang direkam menggunakan format H264 dan berhenti direkam dengan benar yang mendukung kontrol kecepatan pemutaran. Jika file EIF tidak mendukung kontrol kecepatan pemutaran, mengatur Speed tidak akan berpengaruh.

Topik terkait