Sadržaj:
- Korak 1: Pokrenite novi projekat
- Korak 2: Postavimo Vuforiju
- Korak 3: Dodajte novu skriptu
- Korak 4: Dodajmo automobil
- Korak 5: Stavite automobil na nebo
- Korak 6: Lambo vrata
- Korak 7: Reprodukcija videa u AR -u
- Korak 8: Postavite aplikaciju na telefon
Video: Vuforia 7 otkrivanje zemaljske ravni proširene stvarnosti .: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Vuforijin SDK za proširenu stvarnost za Unity 3D koristi ARCore i ARKit za otkrivanje zemaljskih aviona u AR -u. Današnji vodič će koristiti njihovu izvornu integraciju u Unityju za izradu AR aplikacije za Android ili IOS. Auto će s neba pasti na tlo, a vrata mu se automatski otvaraju kad mu se približimo. Također ćemo preći na snimanje videa u AR -u. Za nastavak će vam trebati Unity 3D instaliran na vašem računaru (besplatan je). Ove upute su za početnike pa ćemo sve detaljno proći!
Najbolji dio Vuforijinog SLAM -a je količina IOS i Android uređaja koje podržava. Potpunu listu uređaja možete pronaći ovdje:
library.vuforia.com/articles/Solution/grou…
Korak 1: Pokrenite novi projekat
Preuzmite Unity 3D odavde ako ga već nemate:
Obavezno instalirajte podršku za Vuforia proširenu stvarnost i Android ili IOS, ovisno o tome koji uređaj imate.
Otvorite Unity i pokrenite novi Unity projekt, nazovite ga kako god želite.
Prvo izvadimo aplikaciju postavljenu za izgradnju kako ne bismo zaboravili. Zato sačuvajte scenu i nazovite je "glavna".
Idite na datoteku, postavite postavke i prebacite svoju platformu za izgradnju na Android ili IOS. Idite na postavke XR u postavkama playera i provjerite Vuforia proširena stvarnost podržana.
Ako imate Android, nećete morati raditi ništa drugo, ali na iOS -u idite na druge postavke i obavezno unesite nešto za svoj identifikator paketa. Koristite format "com. YourCompanyName. YourAppName."
Unesite bilo što za opis upotrebe kamere i promijenite ciljnu minimalnu verziju verzije na najmanje 9.0.
Zatvorite to i sada postavimo sve ostalo.
Korak 2: Postavimo Vuforiju
Ajmo sad sve postaviti.
Idite na gameobject u gornjem meniju i kliknite ARCamera. Sada izbrišite glavnu kameru sa scene.
Odaberite ARCameru i s desne strane u inspektoru kliknite Otvori konfiguraciju Vuforie. Kliknite na zbirku skupova podataka i poništite sve jer ovdje ne koristimo nikakve ciljeve slika.
Kliknite na uređaj za praćenje i kliknite na praćenje položaja uređaja. Promijenite praćenje iz rotacijskog u pozicijsko.
Sada se vratite na karticu Objekat igre i kliknite Vuforia, Ground Plane i Plane Finder. Ovo sadrži skripte koje pronalaze našu ravninu tla.
Posljednja stvar koja nam je potrebna je etapa zemaljske ravnine, pa ponovo idite na objekt igre u gornjem izborniku, kliknite Vuforia, Ground Plane i odaberite Ground Plane Stage. Sada će se sve što smo mi od ovoga pojaviti u AR -u.
Korak 3: Dodajte novu skriptu
Zadano ponašanje ove detekcije ravnine zemlje je postavljanje novog objekta svaki put kada pritisnete na ekran. Ono što želimo je samo premjestiti objekt svaki put kada pritisnete na ekran. Zato desnom tipkom miša kliknite u folderu imovine i stvorite novu C# skriptu. Nazovite ga "DeployStageOnce" i zamijenite sve ovim kodom:
pomoću System;
koristeći UnityEngine; koristeći Vuforia; javna klasa DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; privatni PositionalDeviceTracker _deviceTracker; privatni GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage mora biti naveden"); return; } AnchorStage. SetActive (false); } javna void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } javna void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult rezultat) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Test pogodaka je nevažeći ili AnchorStage nije postavljen"); return; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultat); if (sidro! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (true); } if (_previousAnchor! = null) {Uništi (_previousAnchor); } _prethodnoAnchor = sidro; }}
Kako bismo bili sigurni da se ova skripta koristi, moramo pozvati funkciju OnInteractiveHitTest () pa se vratite na Unity i kliknite objekt igre Finder plane. Promijenite način rada iz automatskog u interaktivni. Prevucite skriptu koju smo upravo napravili na objekt igre Finder plane. Uklonite skriptu ContentPositioningBehavior. Na skripti DeployStageOnce vidjet ćete mjesto za objekt igre, povucite tražilicu aviona tamo i pronađite ovu skriptu, odaberite funkciju OnInteractiveHitTest s vrha popisa. Sada će se naša funkcija pozivati kad god korisnik klikne na ekran!
Korak 4: Dodajmo automobil
Preuzmite ovaj besplatni 3D model automobila odavde (obavezno nabavite.obj verziju):
www.turbosquid.com/3d-models/max-exterior-…
Također preuzmite ovaj zvuk jer ćemo ga svirati kada automobil udari o tlo:
freesound.org/people/PaulMorek/sounds/1967…
Raspakirajte obje te datoteke i povucite ih u mapu svojine.
Kliknite na automobil i pogledajte desno, iz padajućeg izbornika na vrhu promijenite opciju Upotreba ugrađenih materijala za upotrebu vanjskih materijala (naslijeđeno). Sada ćemo moći promijeniti boju svih materijala na automobilu.
Odvucite automobil na pozornicu prizemlja čineći ga djetetom. Promijenite skalu u.035 na x, y i z.
Sada prođite kroz svaki od predmeta dječje igre automobila i promijenite njihove materijale u koju god boju želite.
Dodajte osnovnu igračku jedinicu automobila u krutu komponentu i dodajte okvirni sudarač, prilagodite ga tako da pokrije cijeli automobil. U stupanj ravnine tla dodajte i okvirni sudarač i skalirajte ga tako da bude nekoliko puta širi od stupnja ravnine tla. Na ovaj način možemo ispustiti automobil s neba i on će udariti o tlo pomoću Unity -ovog ugrađenog motora za fiziku.
Korak 5: Stavite automobil na nebo
Dodajte komponentu audio izvora izvornom objektu igre u automobilu, prevucite zvuk sudara na mesto audio snimka.
Sada moramo napraviti skriptu koja će podići automobil u zrak kada korisnik pritisne ekran, a zatim reproducirati zvuk sudara kada automobil udari o tlo. Dakle, desnom tipkom miša kliknite u folderu imovine i stvorite novu C# skriptu i nazovite je "CarController".
Zamijenite sav tamošnji kod ovim:
pomoću System. Collections;
pomoću System. Collections. Generic; koristeći UnityEngine; javna klasa CarController: MonoBehaviour {private bool soundPlayed = false; // Ažuriranje se poziva jednom po okviru void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} javna void MoveCar () {transform.localPosition += novi Vector3 (0, 10, 0); transform.eulerAngles += novi Vector3 (5, 20, 5); soundPlayed = false; } IEnumerator DelayPlaySound () {yield return new WaitForSeconds (.2f); GetComponent (). Play (); }}
Dodajte funkciju MoveCar događaju OnInteractiveHitTest kao na gornjoj slici. Sada će biti pozvan kada korisnik klikne na ekran.
Korak 6: Lambo vrata
Dakle, ako proširite objekt igre automobila i pronađete vrata, primijetit ćete da su oba vrata jedna mreža. Ako želimo otvoriti vrata, naša jedina mogućnost bit će Lambo vrata koja se otvaraju okomito. Da bi ovo uspjelo, prvo moramo promijeniti njihovu tačku okretanja.
Napravite prazan predmet igre koji je dijete auta. Uvucite vrata i učinite ih djecom ovog novog objekta igre. Premjestite roditeljski objekt igre tamo gdje bi trebala biti točka okretanja, pomoću šarki vrata. Sada vratite dječja vrata na mjesto. Sada, kada rotiramo nadređena vrata, tačka okretanja je na pravom mjestu.
Napravit ćemo skriptu koja otvara vrata kada se približite automobilu, ali prije nego što to učinimo potreban nam je način da "pokrenemo" događaj. Dodajte okvirni sudarač u roditeljski objekt igre na vratima i povećajte ga tako da ide malo dalje od automobila u oba smjera. Označite "isTrigger". Sada dodajte okvirni sudarač u glavnu kameru i prilagodite ga na odgovarajući način. Također provjerite "isTrigger". Dodajte komponentu Rigid Body u kameru i poništite "useGravity". Kad je vaša kamera odabrana, promijenite oznaku u "MainCamera" na vrhu inspektora.
Dodajte novu skriptu pod nazivom "LamboDoorBehavior" i dodajte donji kod. Prevucite skriptu na roditelja svojih vrata.
pomoću System. Collections;
pomoću System. Collections. Generic; koristeći UnityEngine; javna klasa LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; private float desireAngle = 0; // Ažuriranje se poziva jednom po okviru void Update () {currAngle = Mathf. LerpAngle (currAngle, desireAngle, Time.deltaTime * 3f); transform.localEulerAngles = novi Vector3 (currAngle, 0, 0); } public void OpenDoors () {wishAngle = 60f; } javna void CloseDoors () {željeniAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}
Ova skripta će uzrokovati da se vaša vrata polako otvaraju kada ih zatvorite u AR pomoću funkcije Lerp () u jedinstvu koja interpolira između dvije točke (ili u ovom slučaju dva kuta).
Korak 7: Reprodukcija videa u AR -u
Posljednje što trebamo učiniti je reproducirati video u AR -u.
Desnom tipkom miša kliknite bilo koji objekt igre koji je dijete vašeg automobila i stvorite 3D objekt, Quad. Ovo će osigurati da quad bude dijete vašeg automobila. Postavite i promijenite veličinu ovog kvadrata tako da stane u armaturu vašeg automobila i izgleda kao da bi trebao biti tamo. Ovo je ono na čemu ćemo reproducirati video.
Dodajte komponentu video playera u svoj četverokut. Promijenite izvor u URL i pronađite čvrstu vezu do. MP4 datoteke ili povucite video datoteku u mapu svojine, a zatim povucite taj isječak u prazno mjesto. Ako želite streaming videozapisa s URL -a, Instragram je odličan izvor. Desnom tipkom miša kliknite bilo koji Instagram video zapis u Google Chromeu i kliknite Inspect. Pronađite div koji sadrži video i kopirajte vezu odatle (imam ovu metodu na slici gore).
Obavezno provjerite petlju ako želite da se reproducira više puta. Dodajte komponentu audio izvora ovom objektu igre i promijenite izlazni izvor u audio izvor na video playeru. Prevucite novostvoreni izvor zvuka u taj utor.
Konačno smo gotovi!
Korak 8: Postavite aplikaciju na telefon
Ako gradite za Android, možete jednostavno otići u datoteku i pritisnuti build i run sa priključenim telefonom.
Ako nadograđujete na iPhone ili iPad, svakako preuzmite Xcode iz trgovine aplikacija. Takođe, prijavite se za besplatni Apple developer račun sa www.apple.developer.com. Idite u datoteku i pritisnite build. Otvorite datoteku koja je stvorena iz Xcode -a i priključite telefon. Odaberite svoj razvojni tim i pritisnite dugme za reprodukciju.
Možda ćete morati malo pomaknuti kameru, ali sačekajte trenutak i dodirnite ekran i trebali biste vidjeti kako vam automobil pada s neba na tlo! Sada možete ući unutra i gledati svoj video zapis na nadzornoj ploči!
Zabavite se i javite mi ako imate pitanja u komentarima!
Preporučuje se:
Ojačajte pamćenje Palatom uma proširene stvarnosti: 8 koraka
Ojačajte svoje pamćenje palačom uma s proširenom stvarnošću: Upotrebu palata uma, poput Sherlocka Holmesa, prvaci pamćenja koristili su da se prisjete mnogih informacija, poput redoslijeda karata u promiješanom špilu. Palača uma ili metoda lokusa je tehnika pamćenja u kojoj su vizualne mnemotehnike
GlobalARgallery - Galerija globalne proširene stvarnosti: 16 koraka
#GlobalARgallery - Galerija globalne proširene stvarnosti: #GlobalARgallery prilika je za škole (i druge) da se asinhrono povežu širom svijeta i razmjene iskustva, umjetnička djela, priče, vremenske linije, izložbe, prezentacije i sve ostalo što možete zamisliti. Sve se to pojavljuje u A
Zagonetka proširene stvarnosti: 11 koraka
Puzzle s proširenom stvarnošću: Slagalice su jednostavno divne. Postoje zagonetke svih vrsta, tipična slagalica, labirint s žetonima, pa čak i video igre ovog žanra (na primjer, Captain Toad). Zagonetke zahtijevaju od igrača da osmisli strategiju rješavanja problema
Web pretraživač proširene stvarnosti: 9 koraka
Web preglednik proširene stvarnosti: Danas ćemo proći kroz izradu web preglednika proširene stvarnosti za Android.Ova ideja je započela kada me ExpressVPN zamolio da napravim sponzorirani YouTube video. Budući da mi je ovo prvi, htio sam učiniti nešto što je relevantno za njihov proizvod. Pr
Aplikacija proširene stvarnosti za početnike: 8 koraka
Aplikacija proširene stvarnosti za početnike: Ovaj vodič će vam pokazati kako napraviti aplikaciju proširene stvarnosti za početnike. Koristit ćemo Unity3D i Vuforijino otkrivanje zemaljske ravnine za izradu AR aplikacije bez markera za Android ili IOS. Proći ćemo kroz dodavanje 3D modela u Unity i njegovo premještanje u