Isi kandungan:

Augmented Reality Vuforia 7 Ground Plane Detection .: 8 Langkah
Augmented Reality Vuforia 7 Ground Plane Detection .: 8 Langkah

Video: Augmented Reality Vuforia 7 Ground Plane Detection .: 8 Langkah

Video: Augmented Reality Vuforia 7 Ground Plane Detection .: 8 Langkah
Video: How To Setup Vuforia Ground Planes And Mid Air Placement 2024, Julai
Anonim
Augmented Reality Vuforia 7 Ground Plane Detection
Augmented Reality Vuforia 7 Ground Plane Detection
Augmented Reality Vuforia 7 Ground Plane Detection
Augmented Reality Vuforia 7 Ground Plane Detection

SDK augmented reality Vuforia untuk Unity 3D menggunakan ARCore dan ARKit untuk mengesan permukaan tanah di AR. Tutorial hari ini akan menggunakan integrasi asli mereka di Unity untuk membuat aplikasi AR untuk Android atau IOS. Kami akan membawa kereta jatuh dari langit ke tanah, dan pintu akan terbuka secara automatik apabila kami hampir. Kami juga akan membuat video dalam AR. Untuk mengikuti anda memerlukan Unity 3D yang dipasang di komputer anda (percuma). Arahan ini adalah untuk pemula total jadi kami akan membahas semuanya secara terperinci!

Bahagian terbaik mengenai SLAM Vuforia adalah jumlah peranti iOS dan Android yang disokongnya. Senarai peranti lengkap boleh didapati di sini:

library.vuforia.com/articles/Solution/grou…

Langkah 1: Mulakan Projek Baru

Mulakan Projek Baru
Mulakan Projek Baru

Muat turun Unity 3D dari sini jika anda belum memilikinya:

Pastikan memasang sokongan untuk Vuforia Augmented Reality dan Android atau IOS bergantung pada peranti yang anda miliki.

Buka Unity dan mulakan projek Unity baru, namakan apa sahaja yang anda mahukan.

Mula-mula, mari kita siapkan aplikasi untuk membangun sehingga kita tidak lupa. Jadi, selamatkan tempat kejadian dan panggilnya "utama".

Pergi ke fail, tetapan build, dan alihkan platform build anda ke Android atau IOS. Navigasi ke tetapan XR dalam tetapan pemain dan periksa Vuforia Augmented Reality Disokong.

Sekiranya anda menggunakan Android, anda tidak perlu melakukan apa-apa lagi, tetapi di IOS, pergi ke tetapan lain dan pastikan memasukkan sesuatu untuk pengenal kumpulan anda. Gunakan format "com. YourCompanyName. YourAppName."

Masukkan apa sahaja untuk keterangan penggunaan kamera dan ubah versi build minimum sasaran menjadi sekurang-kurangnya 9.0.

Tutup dari itu dan sekarang mari kita siapkan semua yang lain.

Langkah 2: Mari Sediakan Vuforia

Mari Sediakan Vuforia
Mari Sediakan Vuforia

Sekarang mari kita siapkan semuanya.

Pergi ke gameobject di menu atas dan klik ARCamera. Sekarang padamkan kamera utama dari tempat kejadian anda.

Pilih ARCamera dan di sebelah kanan pada pemeriksa klik pada Open Vuforia Configuration. Klik koleksi set data dan hapus centang semuanya kerana kami tidak menggunakan sasaran gambar di sini.

Klik pada tracker peranti dan klik track device pose. Tukar penjejakan dari putaran ke kedudukan.

Sekarang kembali ke tab objek permainan dan klik Vuforia, Ground Plane, dan Plane finder. Ini memuatkan skrip yang menjumpai bidang tanah kita.

Perkara terakhir yang kita perlukan adalah tahap permukaan tanah, jadi pergi ke objek permainan sekali lagi di menu atas, dan klik Vuforia, Ground Plane, dan pilih Ground Plane Stage. Sekarang apa sahaja yang menjadi anak kita akan ditunjukkan dalam AR.

Langkah 3: Tambahkan Skrip Baru

Tambahkan Skrip Baru
Tambahkan Skrip Baru
Tambahkan Skrip Baru
Tambahkan Skrip Baru

Tingkah laku lalai pengesanan pesawat darat ini adalah meletakkan objek baru setiap kali anda menekan pada skrin. Apa yang kami mahukan hanyalah meletakkan semula objek setiap kali anda menekan pada skrin. Oleh itu, klik kanan di folder aset anda dan buat skrip C # baru. Panggilnya "DeployStageOnce" dan ganti semuanya dengan kod ini:

menggunakan Sistem;

menggunakan UnityEngine; menggunakan Vuforia; kelas awam DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; PositionalDeviceTracker swasta _deviceTracker; GameObject peribadi _previousAnchor; kekosongan awam Mula () {if (AnchorStage == null) {Debug. Log ("AnchorStage mesti ditentukan"); kembali; } AnchorStage. SetActive (palsu); } kekosongan awam Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } kekosongan awam OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } kekosongan peribadi OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } kekosongan awam OnInteractiveHitTest (hasil HitTestResult) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Ujian hit tidak sah atau AnchorStage tidak ditetapkan"); kembali; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), hasil); jika (jangkar! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (benar); } jika (_previousAnchor! = null) {Musnahkan (_previousAnchor); } _previousAnchor = jangkar; }}

Untuk memastikan skrip ini digunakan, kita perlu memanggil fungsi OnInteractiveHitTest () jadi kembali ke Unity dan klik objek permainan pesawat pencari. Tukar mod dari Automatik ke Interaktif. Seret skrip yang baru kita buat ke objek permainan pencari pesawat. Keluarkan skrip ContentPositioningBehavior. Anda akan melihat tempat untuk objek permainan pada skrip DeployStageOnce, seret pencari pesawat ke sana, dan cari skrip ini, pilih fungsi OnInteractiveHitTest dari bahagian atas senarai. Sekarang fungsi kita akan dipanggil setiap kali pengguna mengklik pada skrin!

Langkah 4: Mari Tambah Kereta

Mari Tambah Kereta
Mari Tambah Kereta

Muat turun model 3D kereta percuma ini dari sini (Pastikan untuk mendapatkan versi.obj):

www.turbosquid.com/3d-models/max-exterior-…

Juga, muat turun suara ini kerana kami akan memainkannya ketika kereta melanda tanah:

freesound.org/people/PaulMorek/sounds/1967…

Buka zip kedua fail tersebut dan seret ke dalam folder aset anda.

Klik pada kereta dan lihat ke kanan, ubah Gunakan Bahan Tertanam untuk Menggunakan Bahan Luaran (Warisan) dari menu lungsur di bahagian atas. Sekarang kita akan dapat mengubah warna semua bahan pada kereta.

Seret kereta ke panggung landasan tanah anda menjadikannya anak. Tukar skala menjadi.035 pada x, y, dan z.

Sekarang periksa setiap objek permainan kanak-kanak kereta dan ubah bahannya menjadi warna apa sahaja yang anda mahukan.

Tambahkan komponen badan yang kaku pada objek permainan akar kereta dan juga tambahkan kotak collider, timbangkan sehingga merangkumi keseluruhan kereta. Tambahkan juga collider kotak ke tahap bidang tanah dan skala sehingga beberapa kali lebih lebar daripada tahap permukaan tanah. Dengan cara ini kita dapat menjatuhkan kereta dari langit dan ia akan jatuh ke tanah menggunakan mesin fizik binaan Unity.

Langkah 5: Letakkan Kereta di Langit

Letakkan Kereta di Langit
Letakkan Kereta di Langit

Tambahkan komponen sumber audio ke objek permainan akar kereta, seret bunyi kemalangan kereta ke tempat klip audio.

Sekarang kita perlu membuat skrip yang akan meletakkan kereta ke udara ketika pengguna menekan pada layar dan kemudian memainkan suara kemalangan ketika kereta itu menyentuh tanah. Jadi, klik kanan di folder aset dan buat skrip C # baru dan namakan "CarController."

Ganti semua kod di sana dengan ini:

menggunakan System. Collections;

menggunakan System. Collections. Generic; menggunakan UnityEngine; kelas awam CarController: MonoBehaviour {private bool soundPlayed = false; // Kemas kini dipanggil sekali per bingkai tidak sah Kemas kini () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} kekosongan awam MoveCar () {transform.localPosition + = Vector3 baru (0, 10, 0); transform.eulerAngles + = Vector3 baru (5, 20, 5); soundPlayed = salah; } IEnumerator DelayPlaySound () {menghasilkan pulangan WaitForSeconds baru (.2f); GetComponent (). Main (); }}

Tambahkan fungsi MoveCar ke acara OnInteractiveHitTest seperti dalam gambar di atas. Sekarang ia akan dipanggil apabila pengguna mengklik pada skrin.

Langkah 6: Pintu Lambo

Pintu Lambo
Pintu Lambo

Oleh itu, jika anda memperluas objek permainan kereta dan menemui pintu, anda akan melihat kedua-dua pintu adalah satu mesh tunggal. Sekiranya kita ingin membuka pintu, satu-satunya pilihan kita ialah pintu Lambo yang terbuka secara menegak. Untuk membuat karya ini, kita perlu mengubah titik pangsi mereka terlebih dahulu.

Buat objek permainan kosong yang merupakan anak dari kereta. Tarik pintu masuk dan jadikan mereka anak objek permainan baru ini. Pindahkan objek permainan induk ke tempat titik pangsi, dengan engsel pintu. Sekarang pindahkan kembali pintu anak ke tempatnya. Sekarang apabila kita memutar pintu induk, titik pangsi berada di tempat yang betul.

Kami akan membuat skrip yang membuka pintu ketika anda menghampiri kereta tetapi sebelum kami melakukannya, kami memerlukan cara untuk "mencetuskan" acara tersebut. Tambahkan kotak pelindung ke objek permainan ibu bapa pintu anda dan timbangkan sehingga ia berjalan sedikit ke arah kereta di kedua arah. Tandakan "isTrigger". Sekarang tambahkan kotak collider ke kamera utama dan skala dengan tepat. Periksa juga "isTrigger". Tambahkan komponen Badan Kaku ke kamera anda dan hapus centang "useGravity". Dengan kamera anda dipilih, ubah tagnya menjadi "MainCamera" di bahagian atas pemeriksa.

Tambahkan skrip baru yang disebut "LamboDoorBehavior" dan tambahkan kod di bawah. Seret skrip ke ibu bapa pintu anda.

menggunakan System. Collections;

menggunakan System. Collections. Generic; menggunakan UnityEngine; kelas awam LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; apungan peribadi yang diinginkanAngle = 0; // Kemas kini dipanggil sekali per bingkai tidak sah Kemas kini () {currAngle = Mathf. LerpAngle (currAngle, dikehendakiAngle, Time.deltaTime * 3f); transform.localEulerAngles = Vector3 baru (currAngle, 0, 0); } awam kosong OpenDoors () {dikehendakiAngle = 60f; } awam kosongkan CloseDoors () {dikehendakiAngle = 0; } batal OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} batal OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Skrip ini akan menyebabkan pintu anda terbuka perlahan ketika anda menutupnya dalam AR dengan menggunakan fungsi Lerp () dalam kesatuan yang saling berpasangan antara dua titik (atau dalam hal ini dua sudut).

Langkah 7: Memainkan Video dalam AR

Memainkan Video dalam AR
Memainkan Video dalam AR
Memainkan Video dalam AR
Memainkan Video dalam AR

Perkara terakhir yang perlu kita lakukan ialah membuat video dimainkan dalam AR.

Klik kanan pada mana-mana objek permainan yang merupakan anak dari kereta anda dan buat objek 3D, Quad. Ini akan memastikan quad adalah anak dari kereta anda. Letakkan dan ubah ukuran quad ini sehingga sesuai dengan bahagian dalam kereta anda dan kelihatan seperti di situ. Inilah yang akan kami mainkan video.

Tambahkan komponen pemain video ke quad anda. Ubah sumber ke URL dan cari pautan keras ke fail. MP4 atau seret fail video ke folder aset anda dan kemudian seret klip itu ke slot kosong. Sekiranya anda ingin menstrimkan video dari URL, Instragram adalah sumber yang bagus. Klik kanan pada mana-mana video Instagram di Google Chrome dan klik periksa. Cari div yang mengandungi video dan salin pautan dari sana (saya mempunyai kaedah ini yang digambarkan di atas).

Pastikan untuk memeriksa gelung jika anda mahu ia bermain lebih dari sekali. Tambahkan komponen sumber audio ke objek permainan ini dan ubah sumber output ke sumber audio pada pemain video. Seret sumber audio yang baru anda buat ke slot itu.

Akhirnya kita selesai!

Langkah 8: Pasang Aplikasi di Telefon Anda

Letakkan Aplikasi di Telefon Anda!
Letakkan Aplikasi di Telefon Anda!

Sekiranya anda membuat Android, anda boleh pergi ke fail dan tekan build dan jalankan dengan telefon anda terpasang.

Sekiranya anda menggunakan iPhone atau dan iPad, pastikan untuk memuat turun Xcode dari app store. Juga, daftar untuk akaun pembangun epal percuma dari www.apple.developer.com. Pergi ke fail dan tekan build. Buka fail yang dibuat dari Xcode dan pasangkan telefon anda. Pilih pasukan pengembangan anda dan tekan butang main.

Anda mungkin perlu menggerakkan kamera sedikit tetapi tekan sesaat dan ketuk skrin dan anda akan melihat kereta anda jatuh dari langit ke tanah! Sekarang anda boleh masuk ke dalam dan menonton video anda dimainkan di papan pemuka!

Bersenang-senang dan beritahu saya jika anda mempunyai sebarang pertanyaan dalam komen!

Disyorkan: