Turinys:
- 1 žingsnis: pradėkite naują projektą
- 2 veiksmas: nustatykime „Vuforia“
- 3 veiksmas: pridėkite naują scenarijų
- 4 žingsnis: pridėkime automobilį
- 5 žingsnis: padėkite automobilį į dangų
- 6 žingsnis: „Lambo“durys
- 7 veiksmas: vaizdo įrašo paleidimas AR
- 8 veiksmas: įdėkite programą į savo telefoną
Video: Išplėstinė realybė „Vuforia 7“antžeminis lėktuvas: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
„Vuforia“išplėstosios realybės SDK, skirtas „Unity 3D“, naudoja ARCore ir ARKit, kad aptiktų AR antžeminius lėktuvus. Šios dienos mokyme bus naudojama jų vietinė integracija į „Unity“, kad būtų sukurta AR programa, skirta „Android“ar „IOS“. Automobilis iškris iš dangaus ant žemės, o jo durys atsidarys automatiškai, kai priartėsime. Mes taip pat apžvelgsime vaizdo įrašų kūrimą AR. Norėdami sekti, jums reikės „Unity 3D“, įdiegto jūsų kompiuteryje (tai nemokama). Šios instrukcijos yra skirtos pradedantiesiems, todėl mes viską išsamiai aptarsime!
Geriausia „Vuforia“SLAM dalis yra palaikomų IOS ir „Android“įrenginių kiekis. Visą įrenginių sąrašą galite rasti čia:
library.vuforia.com/articles/Solution/grou…
1 žingsnis: pradėkite naują projektą
Atsisiųskite „Unity 3D“iš čia, jei to dar neturite:
Būtinai įdiekite „Vuforia“išplėstinės realybės ir „Android“ar „IOS“palaikymą, atsižvelgdami į turimą įrenginį.
Atidarykite „Unity“ir pradėkite naują „Unity“projektą, pavadinkite jį, kaip norite.
Pirmiausia leidžiame sukurti programą, kad ją sukurtume, kad nepamirštume. Taigi, išsaugokite sceną ir pavadinkite ją „pagrindine“.
Eikite į failą, sukurkite nustatymus ir perjunkite kūrimo platformą į „Android“arba „IOS“. Grotuvo nustatymuose eikite į XR nustatymus ir patikrinkite „Vuforia“papildytos realybės palaikymą.
Jei naudojate „Android“, jums nieko daugiau nereikia daryti, bet „IOS“eikite į kitus nustatymus ir būtinai įveskite ką nors savo paketo identifikatoriui. Naudokite formatą „com. YourCompanyName. YourAppName“.
Įveskite viską, kas aprašyta fotoaparate, ir pakeiskite minimalią tikslinę versiją į bent 9.0.
Uždarykite tai ir dabar sutvarkykime visa kita.
2 veiksmas: nustatykime „Vuforia“
Dabar viską sutvarkykime.
Viršutiniame meniu eikite į „gameobject“ir spustelėkite „ARCamera“. Dabar ištrinkite pagrindinę kamerą iš savo scenos.
Pasirinkite „ARCamera“ir dešinėje inspektoriaus pusėje spustelėkite „Open Vuforia Configuration“. Spustelėkite duomenų rinkinį ir atžymėkite viską, nes čia nenaudojame jokių vaizdo taikinių.
Spustelėkite įrenginio stebėjimo priemonę ir spustelėkite sekti įrenginio pozą. Pakeiskite stebėjimą iš sukimosi į pozicinį.
Dabar grįžkite į žaidimo objekto skirtuką ir spustelėkite „Vuforia“, „Ground Plane“ir „Plane Finder“. Čia yra scenarijai, kurie randa mūsų antžeminę plokštumą.
Paskutinis dalykas, kurio mums reikia, yra antžeminė plokštumos stadija, todėl vėl eikite į žaidimo objektą viršutiniame meniu, spustelėkite „Vuforia“, „Ground Plane“ir pasirinkite „Ground Plane Stage“. Dabar viskas, ką mes tai darome, bus rodoma AR.
3 veiksmas: pridėkite naują scenarijų
Numatytoji šio įžeminimo plokštumos aptikimo funkcija yra įdėti naują objektą kiekvieną kartą, kai paspaudžiate ekraną. Mes norime tiesiog pakeisti objekto padėtį kiekvieną kartą, kai paspaudžiate ekrane. Taigi dešiniuoju pelės mygtuku spustelėkite savo išteklių aplanką ir sukurkite naują C# scenarijų. Pavadinkite jį „DeployStageOnce“ir viską pakeiskite šiuo kodu:
naudojant sistemą;
naudojant „UnityEngine“; naudojant „Vuforia“; public class DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; privatus GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage turi būti nurodytas"); grįžti; } AnchorStage. SetActive (klaidinga); } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } private void OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult rezultatas) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Rezultatų testas neteisingas arba nenustatytas" AnchorStage "); grįžti; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultatas); if (inkaras! = nulis) {AnchorStage.transform.parent = inchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (tiesa); } if (_previousAnchor! = null) {Sunaikink (_previousAnchor); } _previousAnchor = inkaras; }}
Norėdami įsitikinti, kad šis scenarijus naudojamas, turime iškviesti funkciją OnInteractiveHitTest (), taigi grįžkite į „Unity“ir spustelėkite lėktuvo ieškiklio žaidimo objektą. Pakeiskite režimą iš automatinio į interaktyvų. Vilkite ką tik sukurtą scenarijų į lėktuvo ieškiklio žaidimo objektą. Pašalinkite „ContentPositioningBehavior“scenarijų. „DeployStageOnce“scenarijuje pamatysite žaidimo objekto vietą, vilkite lėktuvo ieškiklį ten ir suraskite šį scenarijų, sąrašo viršuje pasirinkite funkciją „OnInteractiveHitTest“. Dabar mūsų funkcija bus iškviesta, kai tik vartotojas spustelės ekraną!
4 žingsnis: pridėkime automobilį
Atsisiųskite šį nemokamą automobilio 3D modelį iš čia (būtinai įsigykite.obj versiją):
www.turbosquid.com/3d-models/max-exterior-…
Taip pat atsisiųskite šį garsą, nes mes jį paleisime, kai automobilis atsitrenks į žemę:
freesound.org/people/PaulMorek/sounds/1967…
Išpakuokite abu šiuos failus ir vilkite juos į savo išteklių aplanką.
Spustelėkite automobilį ir žiūrėkite į dešinę, viršuje esančiame išskleidžiamajame meniu pakeiskite Naudoti įterptąsias medžiagas, kad būtų naudojamos išorinės medžiagos (palikimas). Dabar galėsime pakeisti visų automobilio medžiagų spalvą.
Vilkite automobilį ant savo antžeminės plokštumos, kad jis taptų vaiku. Pakeiskite mastelį į.035 x, y ir z.
Dabar eikite per kiekvieno automobilio vaikų žaidimo objektus ir pakeiskite jų medžiagas į bet kokią norimą spalvą.
Prie pagrindinio automobilio žaidimo objekto pridėkite standų kėbulo komponentą, taip pat pridėkite dėžutės greitintuvą, padidinkite mastelį taip, kad jis apimtų visą automobilį. Taip pat pridėkite langelio greitintuvą prie įžeminimo plokštumos pakopos ir sureguliuokite ją taip, kad ji būtų kelis kartus platesnė nei įžeminimo plokštumos pakopa. Tokiu būdu mes galime numesti automobilį iš dangaus ir jis atsitrenks į žemę naudodami „Unity“įmontuotą fizikos variklį.
5 žingsnis: padėkite automobilį į dangų
Pridėkite garso šaltinio komponentą prie pagrindinio automobilio žaidimo objekto, vilkite automobilio avarijos garsą į jo garso įrašo vietą.
Dabar turime sukurti scenarijų, kuris pakeltų automobilį į orą, kai vartotojas paspaudžia ekraną, o tada paleis avarijos garsą, kai automobilis atsitrenks į žemę. Taigi, dešiniuoju pelės mygtuku spustelėkite išteklių aplanką ir sukurkite naują C# scenarijų ir pavadinkite jį „CarController“.
Pakeiskite visą ten esantį kodą taip:
naudojant System. Collections;
naudojant System. Collections. Generic; naudojant „UnityEngine“; public class CarController: MonoBehaviour {private bool soundPlayed = false; // Atnaujinimas iškviečiamas kartą per kadrą void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; „StartCoroutine“(„DelayPlaySound“); }} public void MoveCar () {transform.localPosition += new Vector3 (0, 10, 0); transform.eulerAngles += naujas Vector3 (5, 20, 5); soundPlayed = klaidingas; } IEnumerator DelayPlaySound () {derlius grąžina naują WaitForSeconds (.2f); „GetComponent“(). „Play“(); }}
Pridėkite „MoveCar“funkciją prie įvykio „OnInteractiveHitTest“, kaip parodyta aukščiau esančiame paveikslėlyje. Dabar jis bus vadinamas, kai vartotojas spustelės ekraną.
6 žingsnis: „Lambo“durys
Taigi, jei išplėsite automobilio žaidimo objektą ir surasite duris, pastebėsite, kad abi durys yra viena tinklelis. Jei norime atidaryti duris, mūsų vienintelė galimybė bus vertikaliai atsidarančios „Lambo“durys. Norėdami tai padaryti, pirmiausia turime pakeisti jų posūkio tašką.
Padarykite tuščią žaidimo objektą, kuris yra automobilio vaikas. Vilkite duris ir paverskite juos šio naujo žaidimo objekto vaiku. Perkelkite pagrindinį žaidimo objektą ten, kur turėtų būti sukimosi taškas, prie durų vyrių. Dabar pastumkite vaiko duris atgal į vietą. Dabar, kai pasukame pagrindines duris, pasukimo taškas yra tinkamoje vietoje.
Mes ketiname sukurti scenarijų, kuris atveria duris jums priartėjus prie automobilio, tačiau prieš tai mums reikia būdo „suaktyvinti“įvykį. Prie durų pagrindinio žaidimo objekto pridėkite langelio greitintuvą ir padidinkite mastelį, kad jis šiek tiek peržengtų automobilį į abi puses. Pažymėkite „isTrigger“. Dabar prie pagrindinės kameros pridėkite langelio greitintuvą ir atitinkamai jį sureguliuokite. Taip pat patikrinkite „isTrigger“. Pridėkite standų korpuso komponentą prie fotoaparato ir panaikinkite žymėjimą „useGravity“. Pasirinkę fotoaparatą, inspektoriaus viršuje pakeiskite jo žymą į „MainCamera“.
Pridėkite naują scenarijų „LamboDoorBehavior“ir pridėkite žemiau esantį kodą. Vilkite scenarijų į savo durų tėvą.
naudojant System. Collections;
naudojant System. Collections. Generic; naudojant „UnityEngine“; public class LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; pageidaujama privati plūdėAngle = 0; // Atnaujinimas iškviečiamas kartą per kadrą void Update () {currAngle = Mathf. LerpAngle (currAngle, wantAngle, Time.deltaTime * 3f); transform.localEulerAngles = naujas Vector3 (currAngle, 0, 0); } public void OpenDoors () {noriAngle = 60f; } public void CloseDoors () {noriAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}
Dėl šio scenarijaus jūsų durys lėtai atsidarys, kai uždarysite jas AR, naudodami vienybės funkciją Lerp (), kuri interpoluoja tarp dviejų taškų (arba šiuo atveju dviejų kampų).
7 veiksmas: vaizdo įrašo paleidimas AR
Paskutinis dalykas, kurį turime padaryti, yra vaizdo įrašų leidimas AR.
Dešiniuoju pelės mygtuku spustelėkite bet kurį žaidimo objektą, kuris yra jūsų automobilio vaikas, ir sukurkite 3D objektą „Quad“. Taip įsitikinsite, kad keturratis yra jūsų automobilio vaikas. Padėkite ir pakeiskite šio keturračio dydį taip, kad jis tilptų į jūsų automobilio brūkšnį ir atrodytų taip, kaip turėtų būti. Tai yra tai, ką mes ketiname žaisti vaizdo.
Pridėkite vaizdo grotuvo komponentą prie savo keturkojo. Pakeiskite šaltinį į URL ir raskite kietą nuorodą į. MP4 failą arba vilkite vaizdo įrašo failą į išteklių aplanką, tada vilkite tą įrašą į tuščią angą. Jei norite transliuoti vaizdo įrašą iš URL, „Instragram“yra puikus šaltinis. Dešiniuoju pelės mygtuku spustelėkite bet kurį „Instagram“vaizdo įrašą „Google Chrome“ir spustelėkite „Tikrinti“. Raskite skyrių, kuriame yra vaizdo įrašas, ir nukopijuokite nuorodą iš ten (turiu šį metodą, pavaizduotą aukščiau).
Būtinai patikrinkite kilpą, jei norite, kad jis būtų paleistas daugiau nei vieną kartą. Pridėkite garso šaltinio komponentą prie šio žaidimo objekto ir vaizdo grotuve pakeiskite išvesties šaltinį į garso šaltinį. Įtraukite naujai sukurtą garso šaltinį į tą lizdą.
Pagaliau mes baigėme!
8 veiksmas: įdėkite programą į savo telefoną
Jei kuriate „Android“, galite tiesiog pereiti prie failo ir paspausti kurti ir paleisti prijungtą telefoną.
Jei kuriate „iPhone“ar „iPad“, būtinai atsisiųskite „Xcode“iš programų parduotuvės. Taip pat prisiregistruokite gauti nemokamą „Apple“kūrėjo paskyrą iš www.apple.developer.com. Eikite į failą ir paspauskite „Build“. Atidarykite failą, sukurtą iš „Xcode“, ir prijunkite telefoną. Pasirinkite savo kūrėjų komandą ir paspauskite paleidimo mygtuką.
Jums gali tekti šiek tiek pajudinti fotoaparatą, bet palaukite sekundę ir palieskite ekraną ir pamatysite, kaip jūsų automobilis nukrenta iš dangaus ant žemės! Dabar galite vaikščioti viduje ir žiūrėti vaizdo įrašo grojimą prietaisų skydelyje!
Smagiai ir praneškite man, jei turite klausimų komentaruose!
Rekomenduojamas:
D4E1 Pagalba kairiajai kamerai. Išplėstinė versija: 7 žingsniai
D4E1 Pagalba kairiajai kamerai. Išplėstinė versija: 2012 m. Annelies Rollez, Cesar Vandevelde ir Justin Couturon sukūrė Barts (Grimonprez) skaitmeninio fotoaparato kairiąją rankeną. Mes peržiūrėjome dizainą ir parametravome, kad jį būtų galima pagaminti lanksčiai. Tokiu būdu kairysis apie
Išplėstinė saugos sistema: 7 žingsniai
Išplėstinė apsaugos sistema: ar kada nors norėjote visiškai apsaugoti savo namus ir neleisti įsibrovėliams patekti į jūsų namus? Jei taip, tai yra sprendimas jums! Aš sukūriau išplėstinę apsaugos sistemą, tai sistema, kuri apsaugos jūsų namus iš vidaus ir pašalins
„Pasidaryk pats“vaizdo žaidimas, valdomas galvos judesio (išplėstinė realybė): 4 žingsniai
„Pasidaryk pats“vaizdo žaidimas, valdomas galvos judesio (išplėstinė realybė): noriu parodyti, kaip šiais laikais lengva sukurti savo žaidimą, kurį galima valdyti judinant kūną. Jums reikės tik nešiojamojo kompiuterio su žiniatinklio kamera ir tam tikrų programavimo įgūdžių. Jei neturite nešiojamojo kompiuterio ir žiniatinklio kameros arba jei nežinote, kaip programuoti
Virtuali realybė mobiliesiems naudojant „Android“apdorojimą (TfCD): 7 žingsniai (su paveikslėliais)
Virtuali realybė mobiliesiems naudojant „Android“apdorojimą (TfCD): Virtuali realybė (VR) yra viena iš naujų technologijų, kurios gali būti įdomios, tai būsimi produktai. Jis turi daug galimybių ir jums net nereikia brangių VR akinių („Oculus Rift“). Gali atrodyti, kad labai sunku tai padaryti patiems, bet pagrindai yra
Kaip peržiūrėti išplėstinę realybę kompiuteryje: 3 žingsniai
Kaip peržiūrėti papildytą realybę kompiuteryje: šioje pamokoje parodysiu, kaip kompiuteryje peržiūrėti papildytą realybę naudojant tik internetinę kamerą, popierius ir internetas