Բովանդակություն:
- Քայլ 1. Ստեղծեք IBM Watson SDK- ը Unity- ում:
- Քայլ 2. Փորձարկեք IBM Watson Text to Speech:
- Քայլ 3: Կարգավորեք Google- ի անհատական որոնման API- ն:
- Քայլ 4: Ստեղծեք Vuforia- ն Unity- ում:
- Քայլ 5: Ստեղծեք նկարի նախապատրաստում:
- Քայլ 6. Ստեղծեք սցենար Google API- ի համար:
- Քայլ 7: Ստեղծեք մեր նկարների գործարանը:
- Քայլ 8: Մենք ավարտված ենք:
Video: Թույլ տվեք կատարել հավելյալ իրականության ծրագիր MEMES- ի համար: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այս Instructable- ում մենք պատրաստվում ենք ընդլայնված իրականության ծրագիր Android- ի և IOS- ի համար Unity3D- ում, որն օգտագործում է Google API- ը մեմեր որոնելու համար: Մենք կօգտագործենք Vuforia- ի ցամաքային ինքնաթիռի հայտնաբերումը Unity- ում, այնպես որ այս բջջային ծրագիրը կաշխատի Android և IOS օգտագործողների մեծ մասի համար: Vuforia- ի օգտագործումը թույլ կտա նաև, որ նկարները խարսխվեն մեկ վայրում, որպեսզի մենք կարողանանք քայլել նկարների այս դաշտով, և օբյեկտները կմնան այնտեղ, որտեղ կան:
Մենք նաև փորձարկելու ենք նոր IBM Watson API- ն, որպեսզի կարողանանք կատարել այս որոնումները մեր ձայնով և գործի դնել դրանց բնական լեզվի մշակումը:
Այսպիսով, վատ նորությունն այն է, որ այս API- ներից ոչ մեկը լիովին անվճար չէ, բայց լավ նորությունն այն է, որ երկուսն էլ ազատ են փորձել: Google- ի սովորական որոնման API- ն ձեզ տալիս է օրական 100 անվճար որոնում, իսկ IBM Watson API- ն ՝ առաջին ամիսն անվճար:
Մի խոսքով, այս ծրագիրը կստանա մեր խոսքը Unity- ի խոսափողից, այն կուղարկի IBM Watson սերվերներին, որոնք մեզ կվերադարձնեն տեքստը: Այնուհետև մենք կվերցնենք այդ տեքստը և կուղարկենք Google- ի սերվերներին, որոնք մեզ կվերադարձնեն պատկերի URL- ների ցանկը JSON տեսքով:
Քայլ 1. Ստեղծեք IBM Watson SDK- ը Unity- ում:
Watson API- ն գործարկելու համար հարկավոր է նախ ստանալ ձեր կայքի հավատարմագրերը: Գնացեք Console.bluemix.net, ստեղծեք և հաշիվ ստեղծեք և մուտք գործեք: Գնացեք ձեր IBM հաշիվ և նավարկեք դեպի ամպերի ձուլման օրգաններ և ստեղծեք նոր տարածք: Այժմ գնացեք ձեր վահանակ և կտտացրեք ՝ ծառայությունները դիտելու համար, խոսքը ավելացրեք տեքստային ծառայության մեջ, քանի որ դա այն է, ինչ մենք պատրաստվում ենք օգտագործել: Ընտրեք ձեր տարածաշրջանը, կազմակերպությունը և տարածքը և ստեղծեք նախագիծը: Այժմ դուք կտեսնեք ձեր API- ի հավատարմագրերը ներքևում:
Ներբեռնեք Unity, եթե այն արդեն չունեք և ներմուծեք IBM Watson SDK- ը Unity- ի ակտիվների խանութից: Մենք կարող ենք դա ստուգել ՝ ստեղծելով դատարկ խաղային օբյեկտ և այն անվանում ենք IBM Watson և ավելացնում հոսքային սցենարի օրինակ: Այս սցենարը արդեն տեղադրված է ձայնագրելու միասնությունից և ուղարկելու այն Watson- ի սերվերներին `մշակման համար:
Առայժմ մենք պարզապես կօգտագործենք այս սցենարի օրինակը, քանի որ շատ ավելին ունենք անելու, բայց գուցե հաջորդ անգամ կարող ենք ավելի խորանալ Ուոթսոնի իրերի մեջ, քանի որ ես կցանկանայի ինչ -որ բան անել Vision API- ի հետ:
Քայլ 2. Փորձարկեք IBM Watson Text to Speech:
Այս սցենարը փնտրում է UI տեքստային օբյեկտ, այնպես որ թույլ տվեք ստեղծել նոր UI կոճակ, որը մեզ կտա մեզ անհրաժեշտ տեքստը, և մենք այն հետագայում կօգտագործենք: Կտավը չափեք էկրանի չափսերով և մի փոքր չափափոխեք կոճակը: Խարսխեք այն ներքևի ձախ կողմում: Քաշեք այդ տեքստը դատարկ անցքի մեջ: Բացեք սցենարը և թույլ տվեք ավելացնել մեր IBM Watson- ի հավատարմագրերը, գտեք, թե որտեղ է օգտագործվում «resultsField» տեքստը և դրեք այն միայն «alt.transcript» - ի վրա, քանի որ մենք պատրաստվում ենք այս տեքստը օգտագործել Google- ում որոնման համար: Այժմ, նախքան դա ստուգելը, մենք պետք է դինամիկ դարձնենք տեքստի չափը, այնպես որ այն, ինչ մենք ասում ենք, տեղավորվի տուփի ներսում: Վերադարձեք տեքստին և տեղադրեք այն լավագույնս համապատասխան: Մուտքագրեք տեքստ ՝ այն ստուգելու համար: Այժմ, երբ կտտացնում ենք նվագել, մեր բառերը կփոխանցվեն տեքստին Watson Text to Speech API- ից:
Քայլ 3: Կարգավորեք Google- ի անհատական որոնման API- ն:
Հաջորդ կտորը, որ մենք պետք է անենք, այն է, որ Google- ի անհատական որոնման api- ն ստեղծվի Unity- ում օգտագործելու համար: Բարձր մակարդակով մենք Unity- ից HTTP հարցում ենք անելու Google- ի սերվերներին, ինչը մեզ կպատասխանի JSON ձևաչափով:
Այսպիսով, գնացեք Google Custom Search JSON API- ի կարգաբերման էջ, կտտացրեք ՝ API բանալին ստանալու և նոր ծրագիր ստեղծելու համար: Բաց պահեք սա: Այժմ մենք կարող ենք գնալ կառավարման վահանակ: Տեղադրեք որևէ կայքի որոնման համար, անվանեք այն ինչ էլ որ լինի և կտտացրեք Ստեղծել.
Կտտացրեք կառավարման վահանակին և թույլ տվեք կատարել որոշ փոփոխություններ. Մենք ցանկանում ենք հիմնականում որոնել մեմեր և միացնել պատկերների որոնումը: Որոնման կայքերի տակ այն փոխեք ամբողջ վեբի: Կտտացրեք թարմացում ՝ ամեն ինչ պահելու համար:
Այժմ գտեք google api Explorer- ը և անցեք սովորական որոնման API: Սա թույլ կտա մեզ ձևակերպել Google- ից ստացած JSON պատասխանը: Այսպիսով, ներկայումս տեղադրեք որևէ բան հարցման համար, տեղադրեք ձեր որոնման ID- ում, տեղադրեք 1 -ը ֆիլտրի մեջ, որպեսզի կրկնօրինակներ չստանանք, 10 -ը տեղադրեք համարի տակ, որովհետև դա առավելագույն արդյունքն է, որը մենք կարող ենք միանգամից վերադարձնել, որոնման տիպի համար տեղադրեք պատկեր, քանի որ դա այն ամենն է, ինչ մենք ցանկանում ենք վերադարձնել: Սկսելու համար տեղադրեք 1 -ը, իսկ վերջում «տարրեր/հղում» դաշտերի տակ, քանի որ վերադարձված յուրաքանչյուր նյութի համար մենք ցանկանում ենք միայն պատկերի հղումը: Այժմ, երբ կտտացնում եք կատարել, կտեսնեք, որ մենք ստանում ենք 10 գեղեցիկ պատկերի հղումներ:
Այժմ մենք պետք է այս նկարները մտնենք Unity:
Քայլ 4: Ստեղծեք Vuforia- ն Unity- ում:
Եկեք աշխատենք Vuforia- ի վրա, որպեսզի մենք կարողանանք օգտագործել նրանց ցամաքային ինքնաթիռների հայտնաբերումը: Պահպանեք ձեր ընթացիկ տեսարանը և անցեք կառուցման կարգավորումներ: Անցեք ձեր հարթակը Android- ի կամ IOS- ի, և եթե IOS- ում ինչ -որ բան տեղադրեք փաթեթի նույնացուցիչի համար, ավելացրեք տեսախցիկի և խոսափողի օգտագործման նկարագրությունը: XR- ի պարամետրերում ստուգեք Vuforia- ի ընդլայնված իրականության աջակցությունը:
Այժմ տեսարանում ջնջեք հիմնական տեսախցիկը և ավելացրեք Vuforia ARCamera: Գնացեք կազմաձևման բաժին և հետևման ռեժիմը փոխեք դիրքի: Հեռացրեք բոլոր տվյալների շտեմարանները, քանի որ դրանք մեզ պետք չեն:
Այժմ ավելացրեք ինքնաթիռի որոնիչ, և մենք պետք է անտեսենք դրա կանխադրված պահվածքը, քանի որ մենք ցանկանում ենք տեղակայել գետնի հարթության փուլը միայն մեկ անգամ, այնպես որ թույլ է տալիս գտնել Տեղակայման փուլը մեկ անգամ սցենարը Vuforia կայքում: Այդ սցենարը բերեք Unity և դրեք այն ինքնաթիռի որոնիչում ՝ հեռացնելով այնտեղ եղած հին գրությունը: Փոխեք ռեժիմը ինտերակտիվի և համոզվեք, որ «OnInteractiveHitTest» գործառույթը կանչվի այդ Միասնության իրադարձության ժամանակ: Մինչ մենք այստեղ ենք, եկեք ավելի ակտիվ դարձնենք այն կոճակը, որն ավելի վաղ արել էինք, երբ գտել էինք ստորգետնյա հարթությունը և դրա կանխադրված վիճակը դարձրել անգործուն: Այժմ դրեք ցամաքային ինքնաթիռը դեպքի վայր և փոխեք այն միջին օդի, քանի որ մենք ցանկանում ենք, որ բոլոր նկարները լողան օդում: Քաշեք այս ստորգետնյա ինքնաթիռը ինքնաթիռի որոնիչի դատարկ անցքի մեջ:
Քայլ 5: Ստեղծեք նկարի նախապատրաստում:
Նախքան այս բոլոր կտորները միասին հավաքելը մենք պետք է ստեղծենք հավաքովի խաղային օբյեկտ, որը կարող ենք հաստատել ամեն անգամ, երբ նկարը բեռնվում է: Այսպիսով, ստեղծեք դատարկ խաղային օբյեկտ գետնի հարթության տակ և անվանեք այն «picPrefab»: Որպես դրա երեխա ստեղծեք քառյակ և չափեք այն 2 -ով, պտտեք նրա y- ը 180 աստիճանով այնպես, որ ծնողները դեպի վեկտորը, որը ցույց է տրված որպես կապույտ սլաք, լինի քառանկյունի առջևը:
Ստեղծեք նոր սցենար, որը կոչվում է «PictureBeviori» և ավելացրեք այն մեր picPrefab- ին:
Այժմ քաշեք այս նկարի հավաքածուն ձեր ակտիվների թղթապանակում, և սա այն է, ինչ մենք պատրաստվում ենք տեղադրել յուրաքանչյուր նկար:
Մեր «PictureBeviorior» սցենարը պետք է ունենա այս տեսքը.
օգտագործելով System. Collections;
օգտագործելով System. Collections. Generic; օգտագործելով UnityEngine; հանրային դաս PictureBehavior: MonoBehaviour {public Renderer quadRenderer; մասնավոր Vector3 ցանկալի Դիրք; void Սկիզբ () {// նայեք տեսախցիկի transform. LookAt (Camera.main.transform); Vector3 სასურველიAngle = նոր Vector3 (0, transform.localEulerAngles.y, 0); transform.rotation = Quaternion. Euler (ցանկալի անկյուն); // ուժ օդում სასურველიPosition = transform.localPosition; transform.localPosition += նոր Vector3 (0, 20, 0); } void Update () {transform.localPosition = Vector3. Lerp (transform.localPosition, სასურველიPosition, Time.deltaTime * 4f); } public void LoadImage (տողի url) {StartCoroutine (LoadImageFromURL (url)); } IEnumerator LoadImageFromURL (տողի url) {WWW www = նոր WWW (url); եկամտաբերության վերադարձ www; quadRenderer.material.mainTexture = www.texture; }}
Քայլ 6. Ստեղծեք սցենար Google API- ի համար:
Այժմ եկեք մեր «picPrefab» - ից քաշենք չորս մատուցողի հղումը:
Մեզ մնում է միայն երկու սցենար պատրաստել, այնպես որ եկեք ստեղծենք C# սցենար, որը կոչվում է GoogleService.cs և PictureFactroy.cs:
«GoogleService» - ի ներսում տեղադրեք այս կոդը, որը ներկայացնում է մեր հարցումը.
օգտագործելով System. Collections;
օգտագործելով System. Collections. Generic; օգտագործելով UnityEngine; օգտագործելով UnityEngine. UI; հանրային դաս GoogleService: MonoBehaviour {public PictureFactory pictureFactory; հանրային տեքստ կոճակՏեքստ; private const string API_KEY = "PUT API KEY HERE !!!!!"; public void GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (կեղծ); string query = buttonText.text; հարցում = WWW. EscapeURL (հարցում + «մեմեր»); // ջնջել հին պատկերները pictureFactory. DeleteOldPictures (); // պահպանել տեսախցիկի առաջ վեկտորը, որպեսզի մենք կարողանանք տեղաշարժվել, մինչ օբյեկտները տեղադրվում են Vector3 cameraForward = Camera.main.transform.forward; // մենք կարող ենք միաժամանակ ստանալ միայն 10 արդյունք, այնպես որ մենք պետք է շրջանցենք և պահպանենք մեր առաջընթացը ՝ փոխելով մեկնարկի թիվը յուրաքանչյուր 10 int տողից հետո = 1; համար (int i = 1; i <= 60; i + = 10) {string url = "https://www.googleapis.com/customsearch/v1?q=" + հարցում + "& cx = 011535004225295624669%3Afeb1gwic6bs & filter = 1 & num = 10 & searchType = image & start = " + i +" & դաշտերը = տարրեր%2Flink & key = " + API_KEY; WWW www = նոր WWW (url); եկամտաբերության վերադարձ www; pictureFactory. CreateImages (ParseResponse (www.text), rowNum, cameraForward); rowNum ++; } եկամտաբերության վերադարձ նոր WaitForSeconds (5f); buttonText.transform.parent.gameObject. SetActive (ճշմարիտ); } List ParseResponse (տողային տեքստ) {List urlList = new List (); տող urls = text. Split ('\ n'); foreach (տողի տող urls- ում) {if (line. Contains ("link")) {string url = line. Substring (12, line. Length-13); // png- ի կամ jpg- ի միջոցով զտելը Google- ից չի աշխատում, այնպես որ մենք դա անում ենք այստեղ. }}} վերադարձ urlList; }}
Քայլ 7: Ստեղծեք մեր նկարների գործարանը:
Inside PictureFactory.cs- ը տեղադրում է այս ծածկագիրը `ստեղծելու մեր բոլոր նկարները և բեռնում է դրանց հյուսվածքները URL- ից:
օգտագործելով System. Collections;
օգտագործելով System. Collections. Generic; օգտագործելով UnityEngine; հանրային դաս PictureFactory: MonoBehaviour {public GameObject picPrefab; հանրային GoogleService googleService; public void DeleteOldPictures () {if (transform.childCount> 0) {foreach (Transform child in this.transform) {Destroy (child.gameObject); }}} public void CreateImages (ListurlList, int resultNum, Vector3 camForward) {int picNum = 1; Vector3 կենտրոն = Camera.main.transform.position; foreach (string url urlList- ում) {Vector3 pos = GetPosition (picNum, resultNum, camForward); GameObject pic = Անմիջական (picPrefab, pos, Quaternion.identity, this.transform); նկար. GetComponent (). LoadImage (url); picNum ++; }} Vector3 GetPosition (int picNum, int rowNum, Vector3 camForward) {Vector3 pos = Vector3.zero; եթե (picNum <= 5) {pos = camForward + new Vector3 (picNum * -3, 0, rowNum * 3.5f); } else {pos = camForward + new Vector3 ((picNum % 5) * 3, 0, rowNum * 3.5f); } վերադարձի pos; }}
Քայլ 8: Մենք ավարտված ենք:
Ստեղծեք GoogleService կոչվող դատարկ խաղային օբյեկտ և դրա վրա դրեք «GoogleSerivice» սցենարը:
Քաշեք «PictureFactory» սցենարը գետնի հարթության վրա, քանի որ մեր բոլոր նկարները ստեղծվելու են որպես այս խաղային օբյեկտի երեխաներ:
Քաշեք տեսուչի համապատասխան հղումները, նույնը կատարեք google ծառայության համար:
Վերջին բանը, որ մենք պետք է անենք, համոզվելն է, որ մեր «GetPictures» գործառույթը կանչվի: Այսպիսով, եկեք գնանք մեր կոճակի «onClick» իրադարձությանը և զանգահարեք այն այնտեղից:
Այժմ մենք կարող ենք սեղմել play և ստուգել սա: Համոզվեք, որ միացրել եք ստորգետնյա հարթության փուլը և կոճակը: Մի բառ ասեք և կտտացրեք կոճակին ՝ այդ տեքստի որոնումը կատարելու համար:
Այժմ այս ծրագիրը ձեր հեռախոսում ներբեռնելու համար միացրեք այն և գնացեք Ֆայլ-> Կառավարման կարգավորումներ: Կտտացրեք կառուցել և գործարկել:
Հարցերի դեպքում տեղեկացրեք ինձ մեկնաբանություններում:
Խորհուրդ ենք տալիս:
Haptic կոշիկ թույլ տեսողություն ունեցողների համար `12 քայլ
Haptic կոշիկ տեսողության խնդիրներ ունեցողների համար. Ամբողջ աշխարհում կան ավելի քան 37 միլիոն տեսողության խնդիրներ ունեցող մարդիկ: Այս մարդկանցից շատերն օգտվում են ձեռնափայտից, փայտից կամ կախված են մեկ այլ անձից ՝ ճանապարհորդելու համար: Դա ոչ միայն նվազեցնում է նրանց ինքնուրույն կախվածությունը, այլ նաև որոշ դեպքերում վնասում է նրանց ինքնա
Ուլտրաձայնային սարք ՝ թույլ տեսողություն ունեցողների նավարկությունը բարելավելու համար. 4 քայլ (նկարներով)
Ուլտրաձայնային սարք ՝ տեսողության խնդիրներ ունեցող մարդկանց նավարկությունը բարելավելու համար. Մեր սրտերը խեղճուկրակ են, քանի որ մենք օգտագործում ենք մեր տաղանդները `բարելավելու տեխնոլոգիաներն ու հետազոտական լուծումները` տուժողների կյանքը բարելավելու համար: Այս նախագիծը ստեղծվել է բացառապես այդ նպատակով: Այս էլեկտրոնային ձեռնոցը ուլտրաձայնային հայտնաբերման միջոցով օգտագործում է
Լրացուցիչ իրականության ծրագիր սկսնակների համար. 8 քայլ
Լրացուցիչ իրականության ծրագիր սկսնակների համար. Այս ձեռնարկը ցույց կտա ձեզ, թե ինչպես կատարելագործված իրականության ծրագիր պատրաստել սկսնակների համար: Մենք կօգտագործենք Unity3D- ն և Vuforia- ի ստորերկրյա ինքնաթիռի հայտնաբերումը `Android- ի կամ IOS- ի համար առանց նշիչների AR ծրագիր ստեղծելու համար: Մենք կանցնենք 3D մոդելի ավելացմանը Unity- ին և այն տեղափոխելով
DIY խելացի հավելյալ իրականության ակնոցներ Arduino- ի միջոցով. 7 քայլ
Arduino- ի միջոցով DIY խելացի հավելյալ իրականության ակնոցներ. Քանի որ տեխնոլոգիան արագորեն աճում է և ինտեգրվում մարդկանց կյանքի բոլոր ասպեկտներին, դիզայներներն ու մշակողները փորձեցին մարդկանց տեխնոլոգիայի ավելի հաճելի փորձ տրամադրել: Տեխնոլոգիական միտումներից մեկը, որը նպատակ ունի հեշտացնել կյանքը, հագնելն է
CityCoaster - Կառուցեք ձեր սեփական հավելյալ իրականության ափսե ձեր բիզնեսի համար (TfCD). 6 քայլ (նկարներով)
CityCoaster - Կառուցեք ձեր սեփական հավելյալ իրականության ափսե ձեր բիզնեսի համար (TfCD). Քաղաք ձեր գավաթի տակ: CityCoaster- ը նախագիծ է, որը մտածում է Հաագայի Ռոտերդամի օդանավակայանի արտադրանքի մասին, որը կարող է արտահայտել քաղաքի ինքնությունը ՝ զվարճացնելով լաունջի հաճախորդներին հավելյալ իրականությամբ: Նման միջավայրում