Cuprins:
- Pasul 1: Porniți un proiect nou
- Pasul 2: Să configurăm Vuforia
- Pasul 3: Adăugați un nou script
- Pasul 4: Să adăugăm mașina
- Pasul 5: Puneți mașina pe cer
- Pasul 6: Uși Lambo
- Pasul 7: Redarea videoclipului în RA
- Pasul 8: Puneți aplicația pe telefon
Video: Realitate augmentată Vuforia 7 Detectarea planului de sol .: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
SDK-ul de realitate augmentată Vuforia pentru Unity 3D folosește ARCore și ARKit pentru a detecta planurile solului în AR. Tutorialul de astăzi va folosi integrarea lor nativă în Unity pentru a crea o aplicație AR pentru Android sau IOS. Vom face o mașină să cadă din cer pe pământ, iar ușile sale se vor deschide automat când ne apropiem. De asemenea, vom trece la filmări în RA. Pentru a continua, veți avea nevoie de Unity 3D instalat pe computer (este gratuit). Aceste instrucțiuni sunt pentru începători total, așa că vom trece în revistă totul în detaliu!
Cea mai bună parte a SLAM-ului Vuforia este cantitatea de dispozitive IOS și Android pe care le acceptă. O listă completă a dispozitivelor poate fi găsită aici:
library.vuforia.com/articles/Solution/grou…
Pasul 1: Porniți un proiect nou
Descărcați Unity 3D de aici dacă nu îl aveți deja:
Asigurați-vă că instalați suport pentru Vuforia Augmented Reality și Android sau IOS, în funcție de dispozitivul pe care îl aveți.
Deschideți Unity și începeți un nou proiect Unity, numiți-l cum doriți.
Mai întâi permiteți să ieșiți din aplicație configurată pentru a construi, astfel încât să nu uităm. Așadar, salvați scena și numiți-o „principală”.
Accesați fișierul, creați setările și comutați platforma de construire la Android sau IOS. Navigați la setările XR din setările playerului și verificați Realitatea augmentată Vuforia acceptată.
Dacă sunteți pe Android, nu va trebui să faceți altceva, dar pe IOS accesați alte setări și asigurați-vă că introduceți ceva pentru identificatorul dvs. de pachet. Utilizați formatul „com. YourCompanyName. YourAppName”.
Introduceți orice pentru descrierea utilizării camerei și schimbați versiunea de construcție țintă minimă la cel puțin 9.0.
Închideți acest lucru și acum să configurăm orice altceva.
Pasul 2: Să configurăm Vuforia
Acum să pregătim totul.
Accesați gameobject din meniul de sus și faceți clic pe ARCamera. Acum ștergeți camera principală din scena dvs.
Selectați camera ARC și, în partea dreaptă a inspectorului, faceți clic pe Deschidere configurație Vuforia. Faceți clic pe colecția de seturi de date și debifați totul, deoarece aici nu folosim nicio imagine vizată.
Faceți clic pe dispozitivul de urmărire a dispozitivului și faceți clic pe urmărirea poziției dispozitivului. Schimbați urmărirea de la rotație la pozițională.
Acum reveniți la fila obiect de joc și faceți clic pe Vuforia, Ground Plane și Plane finder. Aceasta găzduiește scripturile care găsesc planul nostru de la sol.
Ultimul lucru de care avem nevoie este etapa planului de sol, așa că mergeți din nou la obiectul de joc din meniul de sus și faceți clic pe Vuforia, Ground Plane și alegeți Ground Plane Stage. Acum, tot ceea ce copilul nostru va apărea în AR.
Pasul 3: Adăugați un nou script
Comportamentul implicit al acestei detecții a planului de masă este plasarea unui obiect nou de fiecare dată când apăsați pe ecran. Ceea ce ne dorim este să repoziționăm obiectul de fiecare dată când apăsați pe ecran. Deci, faceți clic dreapta în folderul dvs. de active și creați un nou script C #. Apelați-l „DeployStageOnce” și înlocuiți totul cu acest cod:
utilizarea sistemului;
folosind UnityEngine; folosind Vuforia; public class DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; private GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage trebuie specificat"); întoarcere; } AnchorStage. SetActive (fals); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (rezultatul HitTestResult) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Testul de lovire este nevalid sau AnchorStage nu este setat"); întoarcere; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultat); if (anchor! = nul) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (adevărat); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = ancoră; }}
Pentru a ne asigura că acest script se folosește, trebuie să apelăm la funcția OnInteractiveHitTest (), așa că întoarceți-vă la Unity și faceți clic pe obiectul jocului de căutare plan. Schimbați modul de la Automat la Interactiv. Trageți scriptul pe care tocmai l-am realizat pe obiectul jocului de căutare de avioane. Eliminați scriptul ContentPositionBehavior. Veți vedea un loc pentru un obiect de joc pe scriptul DeployStageOnce, trageți avionul de căutare acolo și găsiți acest script, alegeți funcția OnInteractiveHitTest din partea de sus a listei. Acum funcția noastră va fi apelată ori de câte ori utilizatorul face clic pe ecran!
Pasul 4: Să adăugăm mașina
Descărcați acest model 3D gratuit de mașină de aici (asigurați-vă că obțineți versiunea.obj):
www.turbosquid.com/3d-models/max-exterior-…
De asemenea, descărcați acest sunet, pentru că îl vom reda când mașina lovește pământul:
freesound.org/people/PaulMorek/sounds/1967…
Dezarhivați ambele fișiere și trageți-le în dosarul dvs. de active.
Faceți clic pe mașină și priviți în dreapta, schimbați Utilizați materiale încorporate pentru a utiliza materiale externe (moștenire) din meniul derulant din partea de sus. Acum vom putea schimba culoarea tuturor materialelor de pe mașină.
Trageți mașina pe scena planului de sol, făcându-l copil. Schimbați scara la.035 pe x, y și z.
Acum parcurgeți fiecare dintre obiectele de joc pentru mașini pentru copii și schimbați-le materialele în orice culoare doriți.
Adăugați o componentă rigidă a caroseriei la obiectul de joc rădăcină al mașinii și adăugați, de asemenea, un colizor de cutie, scalați-l astfel încât să acopere întreaga mașină. Adăugați, de asemenea, un colizor de cutie la nivelul planului de masă și scalați-l astfel încât să fie de câteva ori mai lat decât nivelul planului de masă. În acest fel, putem lăsa mașina din cer și va lovi pământul folosind motorul fizic încorporat al Unity.
Pasul 5: Puneți mașina pe cer
Adăugați o componentă sursă audio la obiectul de joc rădăcină al mașinii, trageți sunetul accidentului auto în locul clipului audio.
Acum trebuie să realizăm un script care va pune mașina în aer atunci când utilizatorul apasă pe ecran și apoi redă sunetul de accident când mașina lovește pământul. Deci, faceți clic dreapta în folderul active și creați un nou script C # și numiți-l „CarController”.
Înlocuiți tot codul de acolo cu acesta:
folosind System. Collections;
folosind System. Collections. Generic; folosind UnityEngine; public class CarController: MonoBehaviour {private bool soundPlayed = false; // Actualizarea se numește o dată pe cadru void Actualizare () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} public void MoveCar () {transform.localPosition + = new Vector3 (0, 10, 0); transform.eulerAngles + = new Vector3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {randament returnează WaitForSeconds (.2f); GetComponent (). Play (); }}
Adăugați funcția MoveCar la evenimentul OnInteractiveHitTest ca în imaginea de mai sus. Acum va fi apelat atunci când utilizatorul face clic pe ecran.
Pasul 6: Uși Lambo
Deci, dacă extindeți obiectul jocului mașinii și găsiți ușile, veți observa că ambele uși sunt o singură plasă. Dacă dorim să deschidem ușile, singura noastră opțiune va fi ușile Lambo care se deschid vertical. Pentru a face acest lucru, trebuie mai întâi să le schimbăm punctul de pivot.
Faceți un obiect de joc gol care este un copil al mașinii. Trageți ușile și faceți-le copilul acestui nou obiect de joc. Mutați obiectul de joc părinte unde ar trebui să fie punctul de pivotare, de balamalele ușii. Acum mutați ușile copilului la loc. Acum, când rotim parantele ușilor, punctul de pivotare este în locul potrivit.
Vom realiza un scenariu care deschide ușile când vă apropiați de mașină, dar înainte de a face acest lucru avem nevoie de o modalitate de a „declanșa” evenimentul. Adăugați un colizor cutie la obiectul de joc părinte al ușii și scalați-l, astfel încât să treacă puțin peste mașină în ambele direcții. Bifați „isTrigger”. Acum adăugați un colizor de cutie la camera principală și scalați-l corespunzător. De asemenea, verificați „isTrigger”. Adăugați o componentă de corp rigid la camera dvs. și debifați „useGravity”. Cu camera selectată, schimbați eticheta în „MainCamera” din partea de sus a inspectorului.
Adăugați un nou script numit „LamboDoorBehavior” și adăugați codul de mai jos. Trageți scriptul pe părintele ușii dvs.
folosind System. Collections;
folosind System. Collections. Generic; folosind UnityEngine; public class LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; float privat doritAngle = 0; // Actualizarea se numește o dată pe cadru nul Update () {currAngle = Mathf. LerpAngle (currAngle, doritAngle, Time.deltaTime * 3f); transform.localEulerAngles = new Vector3 (currAngle, 0, 0); } public void OpenDoors () {wantedAngle = 60f; } public void CloseDoors () {wantedAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}
Acest script va face ca ușile să se deschidă încet când le închideți în AR utilizând funcția Lerp () în unitate care interpola între două puncte (sau în acest caz două unghiuri).
Pasul 7: Redarea videoclipului în RA
Ultimul lucru pe care trebuie să-l facem este să redăm videoclipuri în RA.
Faceți clic dreapta pe orice obiect de joc care este un copil al mașinii dvs. și creați un obiect 3D, Quad. Acest lucru vă va asigura că quad-ul este un copil al mașinii dvs. Poziționați și redimensionați acest quad astfel încât să se potrivească în interiorul bordului mașinii dvs. și să pară că ar trebui să fie acolo. Pe asta vom reda videoclipul.
Adăugați o componentă player video la quad. Schimbați sursa la URL și găsiți un link dur către un fișier. MP4 sau trageți un fișier video în folderul dvs. de active și apoi trageți acel clip în slotul gol. Dacă doriți să transmiteți într-un videoclip de pe un URL, Instragram este o sursă excelentă. Faceți clic dreapta pe orice videoclip Instagram din Google Chrome și faceți clic pe inspectare. Găsiți divul care conține videoclipul și copiați linkul de acolo (am această metodă în imaginea de mai sus).
Asigurați-vă că bifați bucla dacă doriți să se redea de mai multe ori. Adăugați o componentă sursă audio la acest obiect de joc și schimbați sursa de ieșire la sursa audio de pe playerul video. Trageți sursa audio nou creată în acel slot.
În cele din urmă am terminat!
Pasul 8: Puneți aplicația pe telefon
Dacă construiți pentru Android, puteți doar să accesați fișierul și să apăsați build și să rulați cu telefonul conectat.
Dacă construiți un iPhone sau un iPad, asigurați-vă că descărcați Xcode din magazinul de aplicații. De asemenea, înscrieți-vă pentru un cont gratuit de dezvoltator Apple de pe www.apple.developer.com. Accesați fișierul și apăsați build. Deschideți fișierul care a fost creat din Xcode și conectați telefonul. Alegeți echipa de dezvoltare și apăsați butonul de redare.
Este posibil să trebuiască să mișcați puțin camera, dar dați-i o secundă și atingeți ecranul și ar trebui să vă vedeți mașina căzând din cer pe pământ! Acum puteți intra și viziona videoclipul redat în tabloul de bord!
Distrează-te și anunță-mă dacă ai întrebări în comentarii!
Recomandat:
GlobalARgallery - Galerie globală de realitate augmentată: 16 pași
#GlobalARgallery - Galerie globală de realitate augmentată: #GlobalARgallery este o oportunitate pentru școli (și alte persoane) de a se conecta asincron pe tot globul și de a împărtăși experiențe, lucrări de artă, povești, cronologii, expoziții, prezentări și orice altceva vă puteți imagina. Toate acestea apar în A
Echipament pentru telefon cu realitate augmentată: 7 pași
Echipament pentru telefon cu realitate augmentată: ieftin, ușor, cool
Puzzle cu realitate augmentată: 11 pași
Puzzle cu realitate augmentată: jocurile puzzle sunt pur și simplu minunate. Există puzzle-uri de tot felul, puzzle-ul tipic, labirintul, cu jetoane și chiar jocuri video de acest gen (de exemplu, Captain Toad). Jocurile puzzle necesită ca jucătorul să proiecteze o strategie de rezolvare a problemelor
Realitate augmentată (AR) pentru Dragonboard410c sau Dragonboard820c folosind OpenCV și Python 3.5: 4 pași
Realitate augmentată (AR) pentru Dragonboard410c sau Dragonboard820c Utilizarea OpenCV și Python 3.5: Acest instructable descrie cum se instalează OpenCV, Python 3.5 și dependențe pentru Python 3.5 pentru a rula aplicația de realitate augmentată
Browser web de realitate augmentată: 9 pași
Augmented Reality Web Browser: Astăzi vom trece la realizarea unui browser web de Realitate Augmentată pentru Android. Această idee a început când ExpressVPN mi-a cerut să fac un videoclip YouTube sponsorizat. Deoarece acesta este primul meu, am vrut să fac ceva care să fie relevant pentru produsul lor. Relatii cu publicul