Satura rādītājs:

Paplašinātās realitātes Vuforia 7 sauszemes plaknes noteikšana: 8 soļi
Paplašinātās realitātes Vuforia 7 sauszemes plaknes noteikšana: 8 soļi

Video: Paplašinātās realitātes Vuforia 7 sauszemes plaknes noteikšana: 8 soļi

Video: Paplašinātās realitātes Vuforia 7 sauszemes plaknes noteikšana: 8 soļi
Video: Pedro. Paplašināta realitāte. Augmented reality. 2024, Novembris
Anonim
Paplašinātās realitātes Vuforia 7 sauszemes lidmašīnas noteikšana
Paplašinātās realitātes Vuforia 7 sauszemes lidmašīnas noteikšana
Paplašinātās realitātes Vuforia 7 sauszemes lidmašīnas noteikšana
Paplašinātās realitātes Vuforia 7 sauszemes lidmašīnas noteikšana

Vuforia paplašinātās realitātes SDK Unity 3D izmanto ARCore un ARKit, lai noteiktu zemes lidmašīnas AR. Šodienas apmācībā tiks izmantota viņu vietējā integrācija Unity, lai izveidotu AR lietotni Android vai IOS. Automašīna nokritīs no debesīm uz zemes, un tās durvis tiks atvērtas automātiski, kad tuvosimies. Mēs arī aplūkosim video ierakstīšanu AR. Lai turpinātu, jums datorā būs jāinstalē Unity 3D (tas ir bez maksas). Šie norādījumi ir domāti iesācējiem, tāpēc mēs visu sīkāk apskatīsim!

Labākā Vuforia SLAM daļa ir tā atbalstīto IOS un Android ierīču daudzums. Pilnu ierīču sarakstu var atrast šeit:

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

1. darbība: sāciet jaunu projektu

Sāciet jaunu projektu
Sāciet jaunu projektu

Lejupielādējiet Unity 3D no šejienes, ja jums tā vēl nav:

Atkarībā no jūsu ierīces noteikti instalējiet atbalstu Vuforia paplašinātajai realitātei un Android vai IOS.

Atveriet Unity un sāciet jaunu Unity projektu, sauciet to, kā vēlaties.

Vispirms ļaujiet izveidot lietotni, lai to izveidotu, lai mēs neaizmirstu. Tātad, saglabājiet ainu un nosauciet to par "galveno".

Dodieties uz failu, izveidojiet iestatījumus un pārslēdziet būvēšanas platformu uz Android vai IOS. Pārejiet uz XR iestatījumiem atskaņotāja iestatījumos un pārbaudiet Vuforia paplašinātās realitātes atbalstu.

Ja izmantojat operētājsistēmu Android, jums nekas cits nebūs jādara, bet operētājsistēmā IOS dodieties uz citiem iestatījumiem un noteikti ievietojiet kaut ko savam paketes identifikatoram. Izmantojiet formātu "com. YourCompanyName. YourAppName".

Ievadiet visu kameru lietošanas aprakstam un mainiet mērķa minimālās būvēšanas versiju uz vismaz 9.0.

Aizveriet to un tagad sakārtosim visu pārējo.

2. darbība: iestatīsim Vuforia

Uzstādīsim Vuforia
Uzstādīsim Vuforia

Tagad sakārtosim visu.

Augšējā izvēlnē dodieties uz gameobject un noklikšķiniet uz ARCamera. Tagad izdzēsiet galveno ainu no savas ainas.

Atlasiet ARCamera un inspektora labajā pusē noklikšķiniet uz Atvērt Vuforia konfigurāciju. Noklikšķiniet uz datu kopu kolekcijas un noņemiet atzīmi no visa, jo mēs šeit neizmantojam attēla mērķus.

Noklikšķiniet uz ierīces izsekotāja un noklikšķiniet uz izsekot ierīces pozai. Mainiet izsekošanu no rotācijas uz pozicionējošu.

Tagad atgriezieties spēles objekta cilnē un noklikšķiniet uz Vuforia, Ground Plane un Plane Finder. Šeit atrodas skripti, kas atrod mūsu zemes plakni.

Pēdējā lieta, kas mums nepieciešama, ir zemes plaknes posms, tāpēc augšējā izvēlnē vēlreiz dodieties uz spēles objektu un noklikšķiniet uz Vuforia, Ground Plane un izvēlieties Ground Plane Stage. Tagad viss, ko mēs to darām, parādīsies AR.

3. darbība: pievienojiet jaunu skriptu

Pievienot jaunu skriptu
Pievienot jaunu skriptu
Pievienot jaunu skriptu
Pievienot jaunu skriptu

Šīs iezemētās plaknes noteikšanas noklusējuma darbība ir novietot jaunu objektu katru reizi, kad ekrānā nospiežat. Mēs vēlamies vienkārši pārvietot objektu katru reizi, kad nospiežat ekrānu. Tāpēc ar peles labo pogu noklikšķiniet uz aktīvu mapes un izveidojiet jaunu C# skriptu. Nosauciet to par "DeployStageOnce" un nomainiet visu ar šo kodu:

izmantojot sistēmu;

izmantojot UnityEngine; izmantojot Vuforia; publiskā klase DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; private PositionalDeviceTracker _deviceTracker; privāts GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage ir jānorāda"); atgriešanās; } AnchorStage. SetActive (nepatiesa); } 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 rezultāts) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Rezultātu tests nav derīgs vai AnchorStage nav iestatīts"); atgriešanās; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), rezultāts); if (enkurs! = null) {AnchorStage.transform.parent = enkuru.transformācija; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (patiess); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = enkurs; }}

Lai pārliecinātos, ka šis skripts tiek izmantots, mums ir jāizsauc funkcija OnInteractiveHitTest (), tāpēc atgriezieties Unity un noklikšķiniet uz lidmašīnas meklētāja spēles objekta. Mainiet režīmu no Automātisks uz Interaktīvs. Velciet tikko izveidoto skriptu uz lidmašīnas meklētāja spēles objektu. Noņemiet skriptu ContentPositioningBehavior. DeployStageOnce skriptā redzēsit vietu spēles objektam, velciet tur lidmašīnas meklētāju un atrodiet šo skriptu, saraksta augšdaļā izvēlieties funkciju OnInteractiveHitTest. Tagad mūsu funkcija tiks izsaukta ikreiz, kad lietotājs noklikšķinās uz ekrāna!

4. solis: pievienosim automašīnu

Pievienosim automašīnu
Pievienosim automašīnu

Lejupielādējiet šo bezmaksas automašīnas 3D modeli no šejienes (noteikti iegūstiet.obj versiju):

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

Lejupielādējiet arī šo skaņu, jo mēs to atskaņosim, kad automašīna atsitīsies pret zemi:

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

Izsaiņojiet abus šos failus un velciet tos savā aktīvu mapē.

Noklikšķiniet uz automašīnas un skatieties pa labi, nolaižamajā izvēlnē augšpusē mainiet Use Embedded Materials to Use External Materials (Legacy). Tagad mēs varēsim mainīt visu automašīnas materiālu krāsu.

Velciet automašīnu uz savas zemes plaknes, padarot to par bērnu. Mainiet mērogu uz.035 x, y un z.

Tagad ejiet cauri katras automašīnas bērnu spēļu objektiem un mainiet to materiālus uz jebkuru vēlamo krāsu.

Pievienojiet automašīnas saknes spēles objektam stingru virsbūves sastāvdaļu, kā arī pievienojiet kastes sadursmi, mērogojiet to tā, lai tas aptvertu visu automašīnu. Pievienojiet iezemētās plaknes stadijai arī kastes sadursmi un mērogojiet to tā, lai tā būtu dažas reizes platāka par iezemētās plaknes pakāpi. Tādā veidā mēs varam nomest automašīnu no debesīm, un tā atsitīsies pret zemi, izmantojot Unity iebūvēto fizikas dzinēju.

5. solis: novietojiet automašīnu debesīs

Novietojiet automašīnu debesīs
Novietojiet automašīnu debesīs

Pievienojiet audio avota komponentu automašīnas saknes spēles objektam, velciet automašīnas avārijas skaņu tā audio klipa vietā.

Tagad mums jāizveido skripts, kas pacels automašīnu gaisā, kad lietotājs nospiež ekrānu un pēc tam atskaņo avārijas skaņu, kad automašīna nokrīt zemē. Tātad, ar peles labo pogu noklikšķiniet uz aktīvu mapes un izveidojiet jaunu C# skriptu un nosauciet to par "CarController".

Aizstājiet visu kodu tur ar šādu:

izmantojot System. Collections;

izmantojot System. Collections. Generic; izmantojot UnityEngine; publiskās klases CarController: MonoBehaviour {private bool soundPlayed = false; // Atjauninājums tiek izsaukts vienu reizi 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 += jauns Vector3 (5, 20, 5); soundPlayed = nepatiess; } IEnumerator DelayPlaySound () {ienesīgums atgriežas jauns WaitForSeconds (.2f); GetComponent (). Play (); }}

Pievienojiet funkciju MoveCar notikumam OnInteractiveHitTest, kā parādīts attēlā iepriekš. Tagad tas tiks izsaukts, kad lietotājs noklikšķinās uz ekrāna.

6. solis: Lambo durvis

Lambo durvis
Lambo durvis

Tātad, ja izvērsīsit automašīnu spēles objektu un atradīsit durvis, pamanīsit, ka abas durvis ir viena acs. Ja vēlamies atvērt durvis, mūsu vienīgā iespēja būs Lambo durvis, kas atveras vertikāli. Lai veiktu šo darbu, mums vispirms ir jāmaina to pagrieziena punkts.

Izveidojiet tukšu spēles objektu, kas ir automašīnas bērns. Velciet durvis un padariet tās par šī jaunā spēles objekta bērnu. Pārvietojiet vecāku spēles objektu vietā, kur jābūt pagrieziena punktam, pie durvju eņģēm. Tagad pārvietojiet bērnu durvis atpakaļ vietā. Tagad, kad mēs pagriežam durvis, pagrieziena punkts ir īstajā vietā.

Mēs gatavosim skriptu, kas atver durvis, kad jūs tuvojaties automašīnai, bet pirms mēs to darām, mums ir nepieciešams veids, kā "aktivizēt" notikumu. Pievienojiet durvju vecāku spēles objektam kastes sadursmi un mērogojiet to tā, lai tas nedaudz pārsniegtu automašīnu abos virzienos. Pārbaudiet "isTrigger". Tagad pievienojiet galvenajai kamerai kastes sadursmi un attiecīgi mērogojiet to. Pārbaudiet arī "isTrigger". Pievienojiet kamerai stingru korpusa komponentu un noņemiet atzīmi no izvēles rūtiņas “useGravity”. Kad kamera ir atlasīta, mainiet tās tagu uz "MainCamera" inspektora augšdaļā.

Pievienojiet jaunu skriptu ar nosaukumu "LamboDoorBehavior" un pievienojiet zemāk esošo kodu. Velciet skriptu uz durvju vecāku.

izmantojot System. Collections;

izmantojot System. Collections. Generic; izmantojot UnityEngine; publiskās klases LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; vēlamais privātais pludiņšAngle = 0; // Atjauninājums tiek izsaukts vienu reizi kadrā void Update () {currAngle = Mathf. LerpAngle (currAngle, wantAngle, Time.deltaTime * 3f); transform.localEulerAngles = jauns Vector3 (currAngle, 0, 0); } public void OpenDoors () {VēlamaisAnglis = 60f; } public void CloseDoors () {vēlamais leņķis = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Šis skripts liks jūsu durvīm lēnām atvērties, kad tās aizvērsit AR, izmantojot funkciju Lerp () vienotībā, kas interpolē starp diviem punktiem (vai šajā gadījumā diviem leņķiem).

7. darbība. Video atskaņošana AR

Video atskaņošana AR
Video atskaņošana AR
Video atskaņošana AR
Video atskaņošana AR

Pēdējā lieta, kas mums jādara, ir video atskaņošana AR.

Ar peles labo pogu noklikšķiniet uz jebkura spēles objekta, kas ir jūsu automašīnas bērns, un izveidojiet 3D objektu Quad. Tas nodrošinās, ka kvadracikls ir jūsu automašīnas bērns. Novietojiet un mainiet šī kvadracikla izmēru tā, lai tas ietilptu jūsu automašīnas domuzīmē un izskatās, ka tam vajadzētu būt tur. Tas ir tas, par ko mēs atskaņosim videoklipu.

Pievienojiet video atskaņotāja komponentu savam četriniekam. Mainiet avotu uz URL un atrodiet cieto saiti uz. MP4 failu vai velciet video failu uz aktīvu mapi un pēc tam velciet šo klipu tukšajā slotā. Ja vēlaties straumēt videoklipu no URL, Instragram ir lielisks avots. Ar peles labo pogu noklikšķiniet uz jebkura Instagram videoklipa pārlūkā Google Chrome un noklikšķiniet uz pārbaudīt. Atrodiet div, kurā ir videoklips, un nokopējiet saiti no turienes (man ir šī metode, kas attēlota iepriekš).

Pārbaudiet cilpu, ja vēlaties, lai tā tiktu atskaņota vairāk nekā vienu reizi. Pievienojiet šim spēles objektam audio avota komponentu un mainiet video atskaņotāja izejas avotu uz audio avotu. Velciet tajā izveidoto audio avotu.

Beidzot esam pabeiguši!

8. solis: ievietojiet lietotni savā tālrunī

Ievietojiet lietotni savā tālrunī!
Ievietojiet lietotni savā tālrunī!

Ja veidojat operētājsistēmu Android, varat vienkārši doties uz failu un noklikšķināt uz Būvēt un palaist, pievienojot tālruni.

Ja veidojat iPhone vai iPad, noteikti lejupielādējiet Xcode no lietotņu veikala. Reģistrējieties arī bezmaksas ābolu izstrādātāja kontam vietnē www.apple.developer.com. Dodieties uz failu un nospiediet veidot. Atveriet failu, kas izveidots no Xcode, un pievienojiet tālruni. Izvēlieties savu attīstības komandu un nospiediet atskaņošanas pogu.

Jums, iespējams, nāksies nedaudz pārvietot kameru, bet pagaidiet to un pieskarieties ekrānam, un jums vajadzētu redzēt, kā jūsu automašīna nokrīt no debesīm uz zemes! Tagad jūs varat staigāt iekšā un skatīties, kā jūsu videoklips tiek atskaņots informācijas panelī!

Izklaidējieties un dariet man zināmu, ja jums ir kādi jautājumi komentāros!

Ieteicams: