Բովանդակություն:

Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. 8 քայլ
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. 8 քայլ

Video: Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. 8 քայլ

Video: Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. 8 քայլ
Video: 12. USU - Augmented reality 2024, Հուլիսի
Anonim
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում

Vuforia- ի ընդլայնված իրականության SDK- ն Unity 3D- ի համար օգտագործում է ARCore և ARKit ՝ AR- ում ցամաքային ինքնաթիռներ հայտնաբերելու համար: Այսօրվա ձեռնարկը կօգտագործի իրենց հայրենի ինտեգրումը Unity- ում ՝ Android- ի կամ IOS- ի համար AR ծրագիր ստեղծելու համար: Մենք կունենանք մեքենա, որը երկնքից կընկնի գետնին, և նրա դռները ինքնաբերաբար կբացվեն, երբ մոտենանք: Մենք կանդրադառնանք նաև AR- ում տեսանկարահանում կատարելուն: Հետևելու համար ձեզ հարկավոր կլինի ձեր համակարգչում տեղադրված Unity 3D- ը (անվճար է): Այս հրահանգները լիովին սկսնակների համար են, այնպես որ մենք ամեն ինչ մանրամասն կքննարկենք:

Vuforia- ի SLAM- ի լավագույն մասը IOS և Android սարքերի քանակն է, որոնք այն ապահովում է: Սարքերի ամբողջական ցանկը կարելի է գտնել այստեղ ՝

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

Քայլ 1: Սկսեք նոր նախագիծ:

Սկսեք նոր նախագիծ
Սկսեք նոր նախագիծ

Ներբեռնեք Unity 3D- ը այստեղից, եթե այն արդեն չունեք ՝

Համոզվեք, որ տեղադրեք աջակցություն Vuforia Augmented Reality- ի և Android- ի կամ IOS- ի համար `կախված ձեր սարքից:

Բացեք Unity- ը և սկսեք Unity- ի նոր նախագիծ, անվանեք այն ինչ ուզում եք:

Նախ եկեք դուրս գանք կառուցված ծրագրից, որպեսզի չմոռանանք: Այսպիսով, պահպանեք տեսարանը և անվանեք այն «հիմնական»:

Գնացեք ֆայլ, կառուցեք կարգավորումներ և անցեք ձեր կառուցման հարթակը Android- ի կամ IOS- ի: Գնացեք դեպի նվագարկիչի կարգավորումների XR կարգավորումներ և ստուգեք Vuforia Augmented Reality Supported:

Եթե Android- ի վրա եք, ստիպված չեք լինի որևէ այլ բան անել, բայց IOS- ով անցեք այլ կարգավորումներ և համոզվեք, որ ինչ -որ բան տեղադրեք ձեր փաթեթի նույնացուցիչի համար: Օգտագործեք «com. YourCompanyName. YourAppName» ձևաչափը:

Տեղադրեք տեսախցիկի օգտագործման նկարագրության որևէ բան և փոխեք կառուցման նպատակային նվազագույն տարբերակը առնվազն 9.0 -ի:

Փակեք դրանից և հիմա եկեք կարգավորենք մնացած ամեն ինչ:

Քայլ 2: Եկեք կարգավորենք Vuforia- ն:

Եկեք կարգավորենք Vuforia- ն
Եկեք կարգավորենք Vuforia- ն

Հիմա եկեք ամեն ինչ կարգի բերենք:

Գնացեք gameobject վերևի ընտրացանկում և կտտացրեք ARCamera: Այժմ ջնջեք հիմնական տեսախցիկը ձեր տեսարանից:

Ընտրեք ARCamera- ը և տեսուչի աջ կողմում կտտացրեք Open Vuforia Configuration- ը: Կտտացրեք տվյալների հավաքածուի հավաքածուն և հեռացրեք ամեն ինչ, քանի որ մենք այստեղ չենք օգտագործում որևէ պատկերի թիրախ:

Կտտացրեք սարքի որոնիչին և կտտացրեք սարքի հետևել: Փոխեք հետևումը պտտվողից դեպի դիրքային:

Այժմ վերադարձեք խաղի օբյեկտի ներդիր և կտտացրեք Vuforia, Ground Plane և Plane finder: Այստեղ տեղակայված են սցենարները, որոնք գտնում են մեր հիմքի հարթությունը:

Վերջին բանը, որ մեզ պետք է, ստորգետնյա հարթության փուլն է, այնպես որ վերևի ընտրացանկում նորից գնացեք խաղի օբյեկտ և կտտացրեք Vuforia, Ground Plane և ընտրեք Ground Plane Stage: Այժմ այն, ինչ մենք դրանով ենք վերաբերվում, կհայտնվի AR- ում:

Քայլ 3: Ավելացրեք նոր սցենար:

Ավելացնել նոր սցենար
Ավելացնել նոր սցենար
Ավելացնել նոր սցենար
Ավելացնել նոր սցենար

Այս ստորգետնյա հարթության հայտնաբերման կանխադրված վարքագիծն այն է, որ ամեն անգամ էկրանին սեղմելիս նոր օբյեկտ տեղադրեք: Այն, ինչ մենք ուզում ենք, այն է, որ օբյեկտը ամեն անգամ էկրանին սեղմելիս տեղափոխվի: Այսպիսով, աջ սեղմեք ձեր ակտիվների թղթապանակում և ստեղծեք նոր C# սցենար: Անվանեք այն «DeployStageOnce» և ամեն ինչ փոխարինեք այս ծածկագրով.

օգտագործելով համակարգ;

օգտագործելով UnityEngine; օգտագործելով Vuforia; հանրային դաս DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; մասնավոր PositionalDeviceTracker _deviceTracker; մասնավոր GameObject _previousAnchor; public void Սկիզբ () {if (AnchorStage == null) {Debug. Log («AnchorStage- ը պետք է նշվի»); վերադարձ; } AnchorStage. SetActive (կեղծ); } 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 result) {if (result == null || AnchorStage == null) {Debug. LogWarning («Հարվածի թեստը անվավեր է կամ AnchorStage- ը սահմանված չէ»); վերադարձ; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString (), արդյունք); if (anchor! = null) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (ճշմարիտ); } if (_previousAnchor! = null) {Destroy (_previousAnchor); } _previousAnchor = խարիսխ; }}

Որպեսզի համոզվեք, որ այս սցենարը օգտագործվում է, մենք պետք է կանչենք OnInteractiveHitTest () գործառույթը, ուստի վերադառնանք Unity և կտտացրեք հարթակի որոնիչ խաղի օբյեկտին: Փոխեք ռեժիմը ավտոմատից ինտերակտիվ: Քաշեք մեր պատրաստած սցենարը ինքնաթիռի որոնիչ խաղի օբյեկտի վրա: Հեռացրեք ContentPositioningBehavior սցենարը: DeployStageOnce սցենարի վրա կտեսնեք խաղային օբյեկտի տեղ, քաշեք ինքնաթիռի որոնիչը այնտեղ և գտեք այս սցենարը, ցանկի վերևից ընտրեք OnInteractiveHitTest գործառույթը: Այժմ մեր գործառույթը կկոչվի, երբ օգտագործողը կտտացնի էկրանին:

Քայլ 4: Եկեք ավելացնենք մեքենան:

Եկեք ավելացնենք մեքենան
Եկեք ավելացնենք մեքենան

Ներբեռնեք մեքենայի այս անվճար 3D մոդելը այստեղից (Համոզվեք, որ ձեռք եք բերում.obj տարբերակը).

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

Ներբեռնեք նաև այս ձայնը, որովհետև մենք այն նվագելու ենք, երբ մեքենան ընկնի գետնին.

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

Բացեք այդ երկու ֆայլերը և դրանք քաշեք ձեր ակտիվների պանակում:

Սեղմեք մեքենայի վրա և նայեք դեպի աջ, վերևի բացվող ընտրացանկից փոխեք Օգտագործեք ներկառուցված նյութեր ՝ արտաքին նյութեր (ժառանգություն) օգտագործելու համար: Այժմ մենք կկարողանանք փոխել մեքենայի բոլոր նյութերի գույնը:

Քաշեք մեքենան ձեր գետնի հարթության վրա ՝ դարձնելով այն երեխա: Փոխեք սանդղակը մինչև 0,035 x, y և z վրա:

Այժմ անցեք մեքենաների մանկական խաղերի առարկաներից յուրաքանչյուրով և փոխեք դրանց նյութերը ՝ ինչ գույնի եք ցանկանում:

Մեքենայի արմատային խաղի օբյեկտին ավելացրեք կոշտ մարմնի բաղադրիչ, ինչպես նաև ավելացրեք տուփի բախիչ, մասշտաբավորեք այն այնպես, որ այն ընդգրկում է ամբողջ մեքենան: Ավելացրեք նաև տուփի բախիչ `գետնի հարթության վրա և չափեք այն այնքան, որ այն մի քանի անգամ ավելի լայն լինի, քան ստորերկրյա հարթությունը: Այս կերպ մենք կարող ենք մեքենան գցել երկնքից, և այն կհարվածի գետնին ՝ օգտագործելով Unity- ի ներկառուցված ֆիզիկայի շարժիչը:

Քայլ 5: Մեքենան դրեք երկնքում:

Մեքենան դրեք երկնքում
Մեքենան դրեք երկնքում

Ավելացրեք աուդիո աղբյուրի բաղադրիչ մեքենայի հիմնական խաղային օբյեկտին, քաշեք մեքենայի վթարի ձայնը դրա ձայնային հոլովակի տեղում:

Այժմ մենք պետք է այնպիսի սցենար պատրաստենք, որը մեքենան օդ կդնի, երբ օգտագործողը սեղմում է էկրանին, իսկ հետո մեքենայի գետնին հարվածելիս վթարի ձայնը նվագարկում: Այսպիսով, աջ սեղմեք ակտիվների թղթապանակում և ստեղծեք նոր C# սցենար և այն անվանեք «CarController»:

Այնտեղ գտնվող ամբողջ ծածկագիրը փոխարինեք հետևյալով.

օգտագործելով System. Collections;

օգտագործելով System. Collections. Generic; օգտագործելով UnityEngine; հանրային դաս CarController: MonoBehaviour {private bool soundPlayed = false; // Թարմացումը կոչվում է մեկ անգամ մեկ շրջանակի համար անվավեր Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} public void MoveCar () {transform.localPosition += new Vector3 (0, 10, 0); transform.eulerAngles += նոր Վեկտոր 3 (5, 20, 5); soundPlayed = կեղծ; } IEnumerator DelayPlaySound () {եկամտաբերությունը վերադարձնում է նոր WaitForSeconds (.2f); GetComponent (). Խաղալ (); }}

Ավելացրեք MoveCar գործառույթը OnInteractiveHitTest իրադարձությանը, ինչպես վերը նկարում: Այժմ այն կկոչվի, երբ օգտագործողը կտտացնի էկրանին:

Քայլ 6: Lambo դռներ:

Լամբո դռներ
Լամբո դռներ

Այսպիսով, եթե դուք ընդարձակեք մեքենայի խաղի օբյեկտը և գտնեք դռները, կնկատեք, որ երկու դռներն էլ մեկ ցանց են: Եթե մենք ուզում ենք բացել դռները, մեր միակ տարբերակը կլինի Lambo դռները, որոնք բացվում են ուղղահայաց: Այս աշխատանքը կատարելու համար մենք նախ պետք է փոխենք նրանց առանցքային կետը:

Պատրաստեք խաղի դատարկ օբյեկտ, որը մեքենայի երեխա է: Քաշեք դռները և նրանց դարձրեք այս նոր խաղային օբյեկտի երեխան: Տեղափոխեք ծնողական խաղի օբյեկտը այնտեղ, որտեղ պետք է լինի առանցքային կետը `դռան ծխնիներով: Այժմ տեղափոխեք երեխայի դռները իրենց տեղը: Այժմ, երբ մենք պտտում ենք դռների ծնողը, առանցքային կետը ճիշտ տեղում է:

Մենք պատրաստվում ենք սցենար պատրաստել, որը կբացի դռները, երբ մոտենաք մեքենային, բայց մինչ դա անելը մեզ միջոց է անհրաժեշտ իրադարձությունը «հրահրելու» համար: Ձեր դռան մայր խաղի օբյեկտին ավելացրեք տուփի բախիչ և չափեք այն այնպես, որ այն մի փոքր անցնի մեքենայի վրայով երկու ուղղություններով: Ստուգեք «isTrigger»: Այժմ ավելացրեք տուփի բախիչ հիմնական տեսախցիկին և համապատասխան չափեք այն: Ստուգեք նաև «isTrigger»: Ավելացրեք Rigid Body բաղադրիչ ձեր տեսախցիկին և հեռացրեք «useGravity» նշումը: Ընտրված տեսախցիկով ՝ տեսչի վերևում փոխեք դրա պիտակը «MainCamera» - ի:

Ավելացրեք նոր սցենար, որը կոչվում է «LamboDoorBehavior» և ավելացրեք ներքևի ծածկագիրը: Քաշեք սցենարը ձեր դռան ծնողի վրա:

օգտագործելով System. Collections;

օգտագործելով System. Collections. Generic; օգտագործելով UnityEngine; հանրային դաս LamboDoorBehavior: MonoBehaviour {private float currAngle = 0; մասնավոր բոց ցանկալի անկյուն = 0; // Թարմացումը կոչվում է մեկ անգամ մեկ շրջանակի համար անվավեր Update () {currAngle = Mathf. LerpAngle (currAngle, სასურველიAngle, Time.deltaTime * 3f); transform.localEulerAngles = նոր Վեկտոր 3 (currAngle, 0, 0); } public void OpenDoors () {wishAngle = 60f; } public void CloseDoors () {სასურველიAngle = 0; } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

Այս սցենարը կհանգեցնի ձեր դռների դանդաղ բացմանը, երբ դրանք փակեք AR- ում ՝ օգտագործելով Lerp () գործառույթը միասնության մեջ, որը միջակետ է դնում երկու կետերի (կամ այս դեպքում երկու անկյունների) միջև:

Քայլ 7: Տեսանյութի նվագարկում AR- ում:

Տեսանյութի նվագարկում AR- ում
Տեսանյութի նվագարկում AR- ում
Տեսանյութի նվագարկում AR- ում
Տեսանյութի նվագարկում AR- ում

Վերջին բանը, որ մենք պետք է անենք, AR- ում տեսանյութերի նվագարկումն է:

Աջ սեղմեք ցանկացած խաղային օբյեկտի վրա, որը ձեր մեքենայի երեխան է և ստեղծեք եռաչափ օբյեկտ ՝ Quad: Սա կհամոզվի, որ քառանկյունը ձեր մեքենայի երեխան է: Տեղադրեք և չափափոխեք այս քառակուսին այնպես, որ այն տեղավորվի ձեր մեքենայի գծի ներսում և կարծես այն այնտեղ լինի: Սա այն է, ինչի վրա մենք պատրաստվում ենք տեսանյութը խաղալ:

Ավելացրեք վիդեո նվագարկիչի բաղադրիչ ձեր չորսին: Փոխեք աղբյուրը URL- ի և գտեք. MP4 ֆայլի կոշտ հղում կամ տեսաֆայլը քաշեք ձեր ակտիվների թղթապանակ, այնուհետև քաշեք այդ հոլովակը դատարկ անցքի մեջ: Եթե ցանկանում եք տեսանյութում URL- ից հոսել, Instragram- ը հիանալի աղբյուր է: Աջ սեղմեք Google Chrome- ի Instagram- ի ցանկացած տեսանյութի վրա և կտտացրեք ստուգել: Գտեք տեսանյութը պարունակող բաժինը և պատճենեք հղումը այնտեղից (ես այս մեթոդը պատկերում եմ վերևում):

Համոզվեք, որ ստուգեք հանգույցը, եթե ցանկանում եք, որ այն խաղա մեկից ավելի անգամ: Այս խաղի օբյեկտին ավելացրեք աուդիո աղբյուրի բաղադրիչ և փոխեք ելքային աղբյուրը տեսաձայնագրիչի նվագարկիչի ձայնային աղբյուրի: Ձեր նորաստեղծ ձայնային աղբյուրը քաշեք այդ անցքի մեջ:

Վերջապես մենք ավարտեցինք:

Քայլ 8: Putրագիրը տեղադրեք ձեր հեռախոսի վրա:

Տեղադրեք ծրագիրը ձեր հեռախոսի վրա
Տեղադրեք ծրագիրը ձեր հեռախոսի վրա

Եթե դուք Android- ի համար եք կառուցում, կարող եք պարզապես գնալ ֆայլ և սեղմել կառուցել և գործարկել ձեր հեռախոսը միացված:

Եթե դուք կառուցում եք iPhone կամ iPad, համոզվեք, որ ներբեռնեք Xcode հավելվածների խանութից: Նաև գրանցվեք խնձորի մշակողի անվճար հաշվին ՝ www.apple.developer.com կայքից: Գնացեք ֆայլ և կտտացրեք կառուցել: Բացեք Xcode- ից ստեղծված ֆայլը և միացրեք հեռախոսը: Ընտրեք ձեր զարգացման թիմը և սեղմեք խաղի կոճակը:

Հնարավոր է, որ ստիպված լինեք մի փոքր շարժել տեսախցիկը, բայց մի վայրկյան տվեք և դիպչեք էկրանին, և տեսեք, որ ձեր մեքենան երկնքից ընկնում է գետնին: Այժմ կարող եք ներս մտնել և դիտել ձեր տեսանյութի նվագարկումը վահանակում:

Haveվարճացեք և մեկնաբանությունների դեպքում ինձ տեղեկացրեք, եթե հարցեր ունեք:

Խորհուրդ ենք տալիս: