Table of Contents

Simulasi menjalankan dengan menggunakan file EIF di Unity

Artikel ini memperkenalkan 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 satunya 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 di editor, pilih AR Session (EasyAR), di jendela Inspector ubah opsi yang sesuai di Assemble Options:

alt text

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

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

Video ini menunjukkan efek pemetaan ruang padat gerak 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 secara normal, sehingga sebagian besar pekerjaan pengembangan dapat dilakukan di komputer dan efeknya dapat dilihat secara visual.

Kiat

Efek yang terlihat 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 pada saat itu. Oleh karena itu, saat merekam file EIF, disarankan untuk menggunakan perangkat yang sama atau mendekati perangkat target untuk memastikan efek 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 tidak dapat diaktifkan saat pemutaran, dan fungsionalitas AR yang bergantung pada pelacakan gerak (seperti peta 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, tetapi sebelum diputar, 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 di editor, pilih AR Session (EasyAR), di jendela Inspector ubah opsi yang sesuai di komponen Frame Player:

alt text

Jika file tidak ditentukan, atau jalur file tidak valid, frame player akan gagal memulai saat session dimulai, dan menampilkan 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 di editor, pilih AR Session (EasyAR), di jendela Inspector hapus centang Enabled di komponen Frame Player:

alt text

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

Contoh:

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

Setiap pemanggilan Play() akan menghentikan pemutaran sebelumnya (jika sebelumnya sedang diputar) dan mulai memutar 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 tempat data baru dimulai.

Meskipun ini tidak terlalu berpengaruh pada beberapa fungsi, untuk fungsi yang bergantung pada pelacakan gerak (seperti peta ruang padat, Mega, dll.), hal ini dapat menyebabkan status fungsi 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 lanjutnya pemutaran.

Misalnya, 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 kerja 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.

Misalnya, lompat ke 5 detik kemudian untuk diputar:

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

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

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

Catatan

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

Kontrol kecepatan pemutaran

Gunakan properti Speed untuk mengontrol kecepatan pemutaran.

Misalnya, atur kecepatan pemutaran menjadi 0,1 kali lebih cepat dari semula:

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 secara normal yang mendukung kontrol kecepatan pemutaran. Jika file EIF tidak mendukung kontrol kecepatan pemutaran, mengatur Speed tidak akan berpengaruh.

Topik terkait