Përmbajtje:
- Hapi 1: Filloni një Projekt të Ri
- Hapi 2: Le të vendosim Vuforia
- Hapi 3: Shtoni një Skript të Ri
- Hapi 4: Le të Shtojmë Makinën
- Hapi 5: Vendoseni Makinën në Qiell
- Hapi 6: Dyert Lambo
- Hapi 7: Luajtja e videos në AR
- Hapi 8: Vendosni aplikacionin në telefonin tuaj
Video: Realiteti i shtuar Vuforia 7 Zbulimi i aeroplanit tokësor .: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Realiteti i shtuar i Vuforia SDK për Unity 3D përdor ARCore dhe ARKit për të zbuluar aeroplanët tokësorë në AR. Udhëzimi i sotëm do të përdorë integrimin e tyre vendas në Unity për të bërë një aplikacion AR për Android ose IOS. Do të kemi një makinë që bie nga qielli në tokë dhe dyert e saj do të hapen automatikisht kur të afrohemi. Ne gjithashtu do të kalojmë duke bërë video në AR. Për të vazhduar, do t'ju duhet Unity 3D i instaluar në kompjuterin tuaj (është falas). Këto udhëzime janë për fillestarët total, kështu që ne do të shqyrtojmë gjithçka në detaje!
Pjesa më e mirë në lidhje me SLAM të Vuforia është sasia e pajisjeve IOS dhe Android që ajo mbështet. Një listë e plotë e pajisjeve mund të gjendet këtu:
library.vuforia.com/articles/Solution/grou…
Hapi 1: Filloni një Projekt të Ri
Shkarkoni Unity 3D nga këtu nëse nuk e keni tashmë:
Sigurohuni që të instaloni mbështetje për Vuforia Augmented Reality dhe Android ose IOS në varësi të pajisjes që keni.
Hapni Unitetin dhe filloni një projekt të ri Unity, quajeni si të doni.
Së pari le të dalim nga aplikacioni i ngritur për të ndërtuar, në mënyrë që të mos harrojmë. Pra, ruani skenën dhe quajeni "kryesore".
Shkoni te skedari, krijoni cilësimet dhe kaloni platformën tuaj të ndërtimit në Android ose IOS. Shkoni te cilësimet XR në cilësimet e luajtësit dhe kontrolloni Vuforia Augmented Reality Supported.
Nëse jeni në Android nuk do të keni nevojë të bëni asgjë tjetër, por në IOS shkoni te cilësimet e tjera dhe sigurohuni që të vendosni diçka për identifikuesin tuaj të paketës. Përdorni formatin "com. YourCompanyName. YourAppName."
Vendosni çdo gjë për përshkrimin e përdorimit të kamerës dhe ndryshoni versionin minimal të synuar të ndërtimit në të paktën 9.0.
Mbylle atë dhe tani le të rregullojmë gjithçka tjetër.
Hapi 2: Le të vendosim Vuforia
Tani le të rregullojmë gjithçka.
Shkoni te gameobject në menunë e sipërme dhe klikoni ARCamera. Tani fshini kamerën kryesore nga skena juaj.
Zgjidhni ARCamera dhe në anën e djathtë të inspektorit klikoni në Open Vuforia Configuration. Klikoni në koleksionin e të dhënave dhe hiqni zgjedhjen e gjithçkaje sepse nuk po përdorim asnjë objektiv të imazhit këtu.
Klikoni në gjurmuesin e pajisjes dhe klikoni në pozën e pajisjes së gjurmimit. Ndryshoni gjurmimin nga rrotullues në pozicionor.
Tani kthehuni në skedën e objekteve të lojës dhe klikoni Vuforia, Ground Plane dhe Plane finder. Këtu gjenden skriptet që gjejnë rrafshin tonë tokësor.
Gjëja e fundit që na nevojitet është faza e rrafshit tokësor, kështu që shkoni përsëri në objektin e lojës në menunë e sipërme dhe klikoni Vuforia, Ground Plane dhe zgjidhni Faza e Aeroplanit Tokësor. Tani çdo gjë që ne i kushtojmë vëmendje kësaj do të shfaqet në AR.
Hapi 3: Shtoni një Skript të Ri
Sjellja e paracaktuar e këtij zbulimi të rrafshit tokësor është të vendosni një objekt të ri sa herë që shtypni në ekran. Ajo që duam është që thjesht të ripozicionojmë objektin sa herë që shtypni në ekran. Pra, klikoni me të djathtën në dosjen tuaj të pasurive dhe krijoni një skenar të ri C#. Thirrni atë "DeployStageOnce" dhe zëvendësoni gjithçka me këtë kod:
duke përdorur Sistemin;
duke përdorur UnityEngine; duke përdorur Vuforia; klasa publike DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; private GameObject _prepareAnchor; zbrazëti publike Fillimi () {if (AnchorStage == null) {Debug. Log ("AnchorStage duhet të specifikohet"); kthim; } AnchorStage. SetActive (false); } public void Zgjohuni () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (rezultati i HitTestResult) {if (rezultati == null || AnchorStage == null) {Debug. LogWarning ("Testi i goditjes është i pavlefshëm ose AnchorStage nuk është vendosur"); kthim; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultati); if (spirancë! = null) {AnchorStage.transform.parent = spirancë.transformoj; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Kuaternion.identiteti; AnchorStage. SetActive (e vërtetë); } if (_prequestAnchor! = null) {Shkatërroni (_prequestAnchor); } _prepareAnchor = spirancë; }}
Në mënyrë që të sigurohemi që ky skrip përdoret, duhet të thërrasim funksionin OnInteractiveHitTest () kështu që kthehuni te Unity dhe klikoni objektin e lojës së aeroplanit. Ndryshoni modalitetin nga Automatic në Interactive. Tërhiqeni skenarin që sapo bëmë mbi objektin e lojës së kërkuesit të aeroplanit. Hiq skriptin ContentPositioningBehavior. Ju do të shihni një vend për një objekt të lojës në skenarin DeployStageOnce, tërhiqeni gjetësin e aeroplanit atje dhe gjeni këtë skenar, zgjidhni funksionin OnInteractiveHitTest nga krye të listës. Tani funksioni ynë do të thirret sa herë që përdoruesi klikon në ekran!
Hapi 4: Le të Shtojmë Makinën
Shkarkoni këtë model 3D të makinës falas nga këtu (Sigurohuni që të merrni versionin.obj):
www.turbosquid.com/3d-models/max-exterior-…
Gjithashtu, shkarkoni këtë tingull sepse ne do ta luajmë kur makina të godasë tokën:
freesound.org/people/PaulMorek/sounds/1967…
Zbërtheni të dy ato skedarë dhe tërhiqini ato në dosjen tuaj të pasurive.
Klikoni në makinë dhe shikoni në të djathtë, ndryshoni Përdorni materiale të integruara për të përdorur materiale të jashtme (Trashëgimia) nga menyja zbritëse në krye. Tani do të jemi në gjendje të ndryshojmë ngjyrën e të gjitha materialeve në makinë.
Zvarriteni makinën në skenën e aeroplanit tuaj tokësor duke e bërë atë një fëmijë. Ndryshoni shkallën në.035 në x, y dhe z.
Tani kaloni nëpër secilën prej objekteve të lojës së makinave të fëmijëve dhe ndryshoni materialet e tyre në çfarëdo ngjyre që dëshironi.
Shtoni një përbërës të ngurtë të trupit në objektin e lojës rrënjësore të makinës dhe gjithashtu shtoni një përplasës kuti, shkallëzojeni atë në mënyrë që të mbulojë të gjithë makinën. Shtoni gjithashtu një përplasës kuti në fazën e rrafshit tokësor dhe shkallëzojeni atë në mënyrë që të jetë disa herë më i gjerë se faza e rrafshit tokësor. Në këtë mënyrë ne mund ta hedhim makinën nga qielli dhe ajo do të godasë tokën duke përdorur motorin e fizikës të ndërtuar nga Unity.
Hapi 5: Vendoseni Makinën në Qiell
Shtoni një përbërës burimi audio në objektin rrënjësor të lojës së makinës, tërhiqni tingullin e përplasjes së makinës në vendin e tij të klipit audio.
Tani ne duhet të bëjmë një skenar që do ta vendosë makinën në ajër kur përdoruesi shtyp në ekran dhe pastaj luan tingullin e përplasjes kur makina bie në tokë. Pra, klikoni me të djathtën në dosjen e aseteve dhe krijoni një skenar të ri C# dhe quajeni "CarController".
Zëvendësoni të gjithë kodin atje me këtë:
duke përdorur System. Collection;
duke përdorur System. Collections. Generic; duke përdorur UnityEngine; klasa publike CarController: MonoBehaviour {private bool soundPlayed = false; // Përditësimi thirret një herë për kuadër të pavlefshëm Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} zbrazëtira publike MoveCar () {transform.localPosition += vektor i ri3 (0, 10, 0); transform.eulerAngles += vektori i ri3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {yield japin kthim të ri WaitForSeconds (.2f); GetComponent (). Luaj (); }}
Shtoni funksionin MoveCar në ngjarjen OnInteractiveHitTest si në foton e mësipërme. Tani do të thirret kur përdoruesi të klikojë në ekran.
Hapi 6: Dyert Lambo
Pra, nëse zgjeroni objektin e lojës së makinës dhe gjeni dyert, do të vini re se të dy dyert janë një rrjetë e vetme. Nëse duam të hapim dyert, opsioni ynë i vetëm do të jetë dyert Lambo që hapen vertikalisht. Për ta bërë këtë punë së pari duhet të ndryshojmë pikën e tyre të boshtit.
Bëni një objekt të zbrazët të lojës që është një fëmijë i makinës. Tërhiqni dyert brenda dhe bëjini ata fëmijë të këtij objekti të ri të lojës. Zhvendoseni objektin e lojës mëmë atje ku duhet të jetë pika e boshtit, nga mentesat e derës. Tani lëvizni dyert e fëmijës përsëri në vend. Tani kur i rrotullojmë prindërit e dyerve, pika e boshtit është në vendin e duhur.
Ne do të bëjmë një skenar që hap dyert kur i afroheni makinës, por para se ta bëjmë këtë ne kemi nevojë për një mënyrë për të "shkaktuar" ngjarjen. Shtoni një përplasës kutie në objektin e lojës prindërore të derës tuaj dhe shkallëzojeni atë në mënyrë që të kalojë pak mbi makinën në të dy drejtimet. Kontrolloni "isTrigger". Tani shtoni një përplasës kuti në kamerën kryesore dhe shkallëzojeni atë në mënyrë të përshtatshme. Gjithashtu kontrolloni "isTrigger". Shtoni një komponent të Trupit të Ngurtë në kamerën tuaj dhe hiqni zgjedhjen "useGravity". Me kamerën tuaj të zgjedhur, ndryshoni etiketën e saj në "Kamera kryesore" në krye të inspektorit.
Shtoni një skenar të ri të quajtur "LamboDoorBehavior" dhe shtoni kodin më poshtë. Zvarriteni skriptin te prindi i derës tuaj.
duke përdorur System. Collection;
duke përdorur System. Collections. Generic; duke përdorur UnityEngine; klasa publike LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; noti privat i dëshiruarAngle = 0; // Përditësimi thirret një herë për kuadër të pavlefshëm Update () {currAngle = Mathf. LerpAngle (currAngle, სასურველიAngle, Time.deltaTime * 3f); transform.localEulerAngles = vektori i ri3 (currAngle, 0, 0); } publiku OpenDoors () void publik () {wishAngle = 60f; } zbrazëtira publike CloseDoors () {wishAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}
Ky skenar do të bëjë që dyert tuaja të hapen ngadalë kur t'i mbyllni ato në AR duke përdorur funksionin Lerp () në unitet i cili interpolon midis dy pikave (ose në këtë rast dy këndeve).
Hapi 7: Luajtja e videos në AR
Gjëja e fundit që duhet të bëjmë është të luajmë video në AR.
Klikoni me të djathtën në çdo objekt të lojës që është fëmijë i makinës tuaj dhe krijoni një objekt 3D, Quad. Kjo do të sigurojë që kuadrati të jetë një fëmijë i makinës tuaj. Vendoseni dhe ndryshoni madhësinë e këtij kuadrati në mënyrë që të përshtatet brenda tabelës së makinës tuaj dhe të duket sikur supozohet të jetë atje. Kjo është ajo për të cilën do të luajmë videon.
Shtoni një përbërës të luajtësit të videos në kuadratin tuaj. Ndryshoni burimin në URL dhe gjeni një lidhje të fortë me një skedar. MP4 ose tërhiqni një skedar video në dosjen tuaj të pasurisë dhe më pas tërhiqeni atë klip në vendin e zbrazët. Nëse doni të transmetoni një video nga një URL, Instragram është një burim i shkëlqyeshëm. Klikoni me të djathtën në çdo video të Instagram në Google Chrome dhe klikoni inspektoni. Gjeni div -in që përmban videon dhe kopjoni lidhjen prej andej (e kam këtë metodë të fotografuar më sipër).
Sigurohuni që të kontrolloni lakun nëse dëshironi që ai të luajë më shumë se një herë. Shtoni një përbërës të burimit audio në këtë objekt të lojës dhe ndryshoni burimin e daljes në burimin audio në luajtësin e videos. Zvarriteni burimin tuaj audio të krijuar rishtas në atë vend.
Më në fund mbaruam!
Hapi 8: Vendosni aplikacionin në telefonin tuaj
Nëse po ndërtoni për Android, thjesht mund të shkoni te skedari dhe të godisni build and run me telefonin tuaj të kyçur.
Nëse po ndërtoni një iPhone ose iPad, sigurohuni që të shkarkoni Xcode nga dyqani i aplikacioneve. Gjithashtu, regjistrohuni për një llogari zhvilluesi falas të mollës nga www.apple.developer.com. Shkoni te skedari dhe goditni build. Hapni skedarin që është krijuar nga Xcode dhe lidhni telefonin tuaj. Zgjidhni ekipin tuaj të zhvillimit dhe shtypni butonin e luajtjes.
Ju mund të keni nevojë të lëvizni kamerën pak, por jepni një sekondë dhe prekni ekranin dhe duhet të shihni që makina juaj të bjerë nga qielli në tokë! Tani mund të hyni brenda dhe të shikoni videon tuaj të luajë në pult!
Argëtohuni dhe më tregoni nëse keni ndonjë pyetje në komente!
Recommended:
Peshkaqeni tokësor: 4 hapa
Peshkaqeni i Tokës: Ky udhëzues u krijua në përmbushje të kërkesës së projektit të Makecourse në Universitetin e Floridës së Jugut (www.makecourse.com) The Land Shark është një robot i kontrolluar nga Arduino me të gjitha aftësitë e terrenit dhe një mekanizëm për marrjen e plehrave
Realiteti Virtual në Raspberry Pi With BeYourHero !: 19 hapa (me fotografi)
Realiteti Virtual në Raspberry Pi With BeYourHero !: Mirë se vini në " Bëhuni Heroi juaj " projekt! Shpresoj se jeni gati për të hyrë në gjeneratën e ardhshme të zhytjes së Realitetit Virtual! Ky projekt do t'ju japë kontroll të plotë të gjesteve të çdo Heroi virtual që ju pëlqen me një grup të thjeshtë pajisjesh të lira duke përdorur se
Makinë RC e kontrolluar nga realiteti virtual: 9 hapa
RC Car e kontrolluar nga Realiteti Virtual: A keni dashur ndonjëherë të zvogëloheni dhe të pilotoni një zanat si Innerspace ose Fantastic Voyage? Epo, unë mendoj se kjo është aq afër sa do të arrini në një njoftim të shkurtër! Këtu është fusha: Një makinë me telekomandë të jetës reale të pilotuar nga një komandë e Realitetit Virtual
Realiteti i Shtuar (AR) për Dragonboard410c ose Dragonboard820c Duke përdorur OpenCV dhe Python 3.5: 4 Hapa
Realiteti i Shtuar (AR) për Dragonboard410c ose Dragonboard820c Duke përdorur OpenCV dhe Python 3.5: Ky udhëzues përshkruan se si të instaloni OpenCV, Python 3.5 dhe varësitë për Python 3.5 për të ekzekutuar aplikacionin e realitetit të shtuar
Rregullimi i lidhjes së aeroplanit tokësor: 3 hapa
Fiksimi i Lidhjes së Aeroplanit Tokësor: Çfarë mund të bëni nëse toka nuk është e lidhur me rrafshin e tokës? Kjo mund të ndodhë nëse modifikoni një qark në EagleCAD dhe fshini një segment teli (rrjeti) në skemën që shkon në tokë. Softueri mund të riemërtojë automatikisht skajin tjetër të wi