Բովանդակություն:
- Քայլ 1: Առաջին բանը `առաջինը:
- Քայլ 2. Խոսքի տեքստին աշխատելը Android- ի համար:
- Քայլ 3: Սովորած դասեր:
- Քայլ 4: Պայքար:
- Քայլ 5: Վերադառնալ գծանկար:
- Քայլ 6: Վերջապես մենք ինչ -որ տեղ ենք հասնում:
- Քայլ 7: Այն աշխատում է:
- Քայլ 8: Ամեն ինչ աշխատեցնելը:
Video: Ընդլայնված իրականության վեբ զննարկիչ. 9 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այսօր մենք պատրաստվում ենք Android- ի համար ընդլայնված իրականության զննարկիչ պատրաստել:
Այս գաղափարը սկսվեց այն ժամանակ, երբ ExpressVPN- ն ինձ խնդրեց հովանավորվող YouTube տեսանյութ պատրաստել: Քանի որ սա իմ առաջինն է, ես ուզում էի անել մի բան, որը համապատասխան էր նրանց արտադրանքին: Բավականին անմիջապես մտածեցի, ախ, ես պարզապես կդարձնեմ ընդլայնված իրականության վեբ զննարկիչ, որպեսզի կարողանանք AR- ով համացանցը դիտել VPN- ով: Չի կարող այդքան դժվար լինել, այնպես չէ՞: Սխալ. Ես ինքս ինձ համար որոշ սահմանափակումներ դրեցի այս նախագծի համար, քանի որ ցանկանում էի այն օգտագործել նոր բաներ սովորելու համար:
Թիվ մեկ, ես ուզում էի, որ այն Android- ի համար լիներ, քանի որ ես միշտ իրեր եմ անում IOS- ով:
Թիվ երկու, ես չէի ուզում օգտագործել որևէ վճարովի API, ես ուզում էի, որ բոլորը կարողանային պարզապես ներբեռնել այս նախագիծը և գործարկել այն ՝ առանց որևէ նյութի առցանց վճարելու: Այսպիսով, ոչ IBM Watson, ոչ Google API և ոչինչ Unity Asset խանութից:
ԵԿԵՔ ՍԿՍԵՆՔ!
Քայլ 1: Առաջին բանը `առաջինը:
Առաջին բանը, որ ես ուզում էի աշխատել, տեքստի խոսքի լավ լուծում էր, որպեսզի մենք կարողանայինք առցանց որոնումներ կատարել մեր ձայնով: Նաև կարծում եմ, որ ձայնը AR- ում փոխգործակցության հիանալի մեթոդ է, գոնե մինչև ձեռքերի հետագծման լավ լուծում ունենալը: Ես գիտեմ, որ Android- ն ունի որոշ տեքստային գործառույթների բնածին խոսք, այնպես որ արագ Google- ի որոնումը կօգնի մեզ գտնել Unity- ի որոշ հավելումներ:
Ես առաջին անգամ հանդիպեցի այս plugin- ի ՝ միասնության համար.
www.google.com/search?rlz=1C5CHFA_enUS816U…
Ես փորձեցի սա, և այն հիանալի աշխատեց: Միակ խնդիրն այն էր, որ երբ այն օգտագործում եք ARCore- ի հետ, այն ստեղծում է հայրենի թռուցիկ տուփ և, կարծես, հետին պլան է մղում Unity- ը, և դուք ի վերջո կորցնում եք հետևելը:
Սա պակաս քան իդեալական էր:
Քայլ 2. Խոսքի տեքստին աշխատելը Android- ի համար:
Այսպիսով, ես սկսեցի որոնել մի քանի կոնտակտներ, որոնք չէին բերում հայրենի թռուցիկ տուփը և շատ բան չէին գտնում, բայց ես ի վերջո գտա այս android գրադարանը.
github.com/maxwellobi/Android-Speech-Recog…
Այժմ ես բառացիորեն ոչինչ չգիտեմ Android- ի զարգացման մասին, բայց ես ուզում էի ինքս ինձ մարտահրավեր նետել, այնպես որ ես մտածեցի, որ ես պարզապես կփորձեմ գրել այս գրադարանի կամուրջի ծածկագիրը և այն դարձնել Android plugin ՝ Unity- ում օգտագործելու համար: Կրկին, սա սխալ էր և առաջատար ժամեր շարունակ հիասթափություն:
Հետո վերջապես աշխատեց…
Քայլ 3: Սովորած դասեր:
Այսպիսով, կա երկու բան, որ ես սովորեցի այս գործընթացում, որոնք ակնհայտորեն ակնհայտ չեն Google- ի միջոցով, թե ինչպես պատրաստել Android plugin- ի միասնության համար:
Թիվ մեկ ՝ ձեզ հավանաբար անհրաժեշտ կլինի հղում ստանալ Android հավելվածի համատեքստին, եթե ձեր plugin- ը հետաքրքիր բան անի: Դուք կարող եք դա անել ՝ ձեր Unity install- ից class.jar ֆայլը ավելացնելով ձեր Android նախագծին որպես գրադարան: Այսպիսով, գնացեք ֆայլի նախագծի կառուցվածքը և այնուհետև ընտրեք հավելվածի մոդուլի կախվածության ներդիրը: Այստեղ դուք կարող եք սեղմել գումարած կոճակը `բանկա ֆայլ ավելացնելու համար: Գնացեք ձեր Unity build, նվագարկիչ շարժիչներ, androidplayer, տատանումներ, մոնո, զարգացում, դասեր և վերջապես դասեր: jjar: Փոխեք շրջանակը միայն կազմելու համար: Այժմ, նոր java ֆայլում կարող եք անել.
UnityPlayer.currentActivity.getApplicationContext ();
և օգտագործիր այդ տեղեկանքը այնտեղ, որտեղ երբևէ դրա կարիքը ունես:
Հաջորդ տարօրինակ խնդիրն այն է, որ ձայնի այս գործառույթը կարող է գործարկվել միայն հիմնական թելի վրա, այլապես սխալներ կստանաք: Unity- ում դա անելու համար դուք պետք է ասեք գործառույթներն ու plugin- ը ՝ UI Thread- ի վրա աշխատելու համար ՝ որպես AndroidJavaRunnable, ինչպես վերը նկարը:
Քայլ 4: Պայքար:
Այս պահին ես մտածում եմ, որ Android- ի փորձագետ եմ, Ես առցանց դիմում եմ android dev աշխատանքի համար, պատվիրում եմ android կպչուն պիտակներ և շապիկներ: Կյանքը լավ է. Այժմ ես պատրաստ եմ անցնել ՝ պարզելու, թե ինչպես կայք պատրաստել Unity- ում: Մի փոքր հետազոտություն կատարելուց հետո ես տեսնում եմ, որ ընդունված լուծումը Android WebView- ի օգտագործումն է: Սա պարզապես Android դաս է, որը թույլ է տալիս մատուցել վեբ կայքեր, որոնք փոխգործունակ են Android հավելվածի ներսում ՝ առանց բրաուզերում ամեն ինչ բեռնելու: Հիմնականում դա այնպես է, որ դուք կարողանաք օգտվողներին պահել ձեր հավելվածում: Բիզնեսի առաջին կարգը պետք է տեսնել, թե արդյոք որևէ մեկը դրա համար բաց կոդով ստեղծել է միասնության հավելում: Ես առաջին հերթին փորձեցի այս հավելումը.
github.com/gree/unity-webview
բայց դա միայն WebView է տալիս Unity GUI շերտին, այնպես որ դա չի աշխատի: Այնուհետև ես գտնում եմ այս plugin- ը VR- ի համար.
github.com/IanPhilips/UnityAndroidVR Թերթել…
սա թույլ է տալիս WebView- ը մատուցել հյուսվածքի և նույնիսկ փոխազդեցության, ինչը հիանալի է: Կարծում էի, որ սա պատասխանն էր, մինչև որ փորձեցի և պարզեցի, որ դա արգելափակում է իմ բոլոր կտտոցները միասնությունից:
Քայլ 5: Վերադառնալ գծանկար:
Ես պարզապես կփորձեմ ստեղծել իմ plugin- ը դրա համար, քանի որ այն, ինչ ինձ իսկապես անհրաժեշտ է, կայքի պատկերը միասնության ուղարկելն է: Որոշակի հետազոտություններ կատարելով ՝ ես պարզում եմ, որ կարող եմ android կտավը պահել bitmap- ում, այնուհետև կոդավորել այն png- ում և պարզապես ուղարկել այդ բայթերը Unity, այնտեղ ստեղծվում է նոր հյուսվածք այդ զանգվածների բայթերի հետ և ես լավ եմ: Հերթական հիասթափությունից և իմ գոյությունը կասկածի տակ դնելուց հետո…
Վերջապես ստացվեց:
Այսպիսով, այժմ ես կարող եմ սքրինշոթ վերցնել վեբ կայքից, այնպես որ եկեք տեսնենք, թե ինչպես է այն աշխատում arcore- ի հետ…
Դա չի անում:
Նկատի ունեմ, որ ես օգտագործում եմ galaxy s7- ը, որն ամենաթարմ հեռախոսը չէ, բայց այս WebView- ի իրերը դեռ սառեցնում են ամբողջ ծրագիրը և հիմնականում անօգտագործելի են: Ենթադրում եմ, որ դա այն պատճառով է, որ WebView- ը և ARCore- ը երկուսն էլ ծանրաբեռնում են հիմնական շարանը, բայց ես իսկապես չգիտեմ: Վերադառնալ գծագրին: Եթե մենք ուզում ենք դա անել, մենք ստիպված կլինենք ծանրաբեռնված բեռը բեռնել ինչ -որ սերվերի վրա: Google- ի որոնումներից հետո պարզվում է, որ կարող եք վերցնել Node.js- ի համար գրադարան ունեցող վեբ կայքի սքրինշոթ, որը կոչվում է WebShot, որն օգտագործում է Phantom JS- ը, որը սկրիպտվող անգլուխ զննարկիչ է:
Քայլ 6: Վերջապես մենք ինչ -որ տեղ ենք հասնում:
Այժմ ես պետք է պարզեմ, թե ինչ դժոխք է օգտագործել Node.js- ը …:
Պարզվում է, որ կարող եք կատարել Node.js սցենար, որը լսում է որոշակի նավահանգստի համարը, և երբ հարված է ստանում այդ նավահանգստում, կարող է վերադարձնել որոշ տեղեկություններ: Մենք կարող ենք դա ստուգել ՝ ստեղծելով մի փոքրիկ բարև, աշխարհի 3000 սցենար, որը լսում է 3000 պորտին: Եթե մենք նավարկենք դեպի մեր IP հասցեն և այնուհետև 3000 -ը նավարկենք մեր դիտարկիչում, ապա կտեսնենք, որ այն վերադարձնում է բարև աշխարհ: Այժմ, երբ ես մի փոքր տիրապետում եմ հանգույցին, կարող եմ այն աշխատել իմ սերվերի վրա, որտեղ ես հյուրընկալում եմ իմ կայքերը, որոնցում կա hawkhost.com: Ես SSH եմ մտնում իմ սերվերի մեջ և փորձում եմ մի քանի բարև աշխարհի node.js սցենարներ գործարկել … և ոչինչ չի աշխատում: Շուրջ մի քանի ժամ խառնվելուց հետո ես պարզում եմ, որ իմ հատուկ հոստինգ սերվերը օգտագործման համար բաց է միայն երկու նավահանգիստ ՝ 3000 և 12001:
Այսպիսով, օգտագործելով այդ նավահանգիստները և իմ հոսթինգ սերվերների IP- ն, ես կարող եմ ստանալ ողջույնի համաշխարհային օրինակ: Հաջորդը ես տեղադրում եմ WebShot մոդուլը և ստեղծում եմ մի փոքր սցենար, որը կարող եմ փոխանցել URL, և այն ինձ կվերադարձնի այդ վեբ հասցեի վեբ կայքի պատկերը: Այժմ ես կարող եմ սկսել այդ հանգույցի սցենարը և ուղարկել http POST հարցում Unity- ից ՝ իմ սերվերի հատուկ IP- ի և պորտի համարին, որն ինձ կվերադարձնի այդ կայքի պատկերի բայթ զանգվածը: Շնորհակալություն Աստծուն: Այժմ մեկ այլ խնդիր է այն, երբ ես փակում եմ իմ տերմինալը, գործընթացը ավարտվում է և դադարում է լսելուց: Ես ևս մի քանի հետազոտություն եմ կատարում և գտնում եմ մոդուլ, որը կոչվում է հավերժ: NPM- ը տեղադրվում է ընդմիշտ, և այժմ ես կարող եմ նավարկել ընդմիշտ և ընդմիշտ սկսել սցենարը, և այն կշարունակի գործել, քանի դեռ մուտք չեմ գործել և նորից դադարեցնել այն:
Քայլ 7: Այն աշխատում է:
Հոյակապ Բայց դա բավական թույն չէ:
Երբ մտածում եմ AR- ում վեբ զննարկման արժեքի մասին, դա գալիս է տարածքի ավելացումից: Մենք այլևս մեկ էկրանով չենք սահմանափակվում, ուստի ես ուզում եմ այնպիսի բան պատրաստել, որը թույլ կտա պատկերացնել իմ որոնման ուղին հենց իմ առջև: Այսպիսով, եկեք բեռնենք առաջին որոնման էջը, այնուհետև սողանք այդ էջը և հանենք որոնման յուրաքանչյուր արդյունք որպես հղում, որը մենք կարող ենք այնուհետև բեռնել որպես հիմնական պատկերից վերև գտնվող պատկեր: Մենք կարող ենք դա անել մեկ այլ Node.js սցենարով, որը քերծում է Google- ի արդյունքների առաջին էջը և այն անընդհատ գործարկում: Դա կարող էր շատ ավելի արդյունավետ կատարվել Google- ի որոնման API- ի միջոցով, սակայն այս նախագծի թիվ 2 կանոնը վճարովի API- ներ չէր, ուստի մենք հիմա դա կանենք այսպես: Այժմ, երբ մենք ունենք պատկերներ յուրաքանչյուր հղման համար, կարող ենք դրանք բեռնել ավելի մեծ էկրանին ամեն անգամ, երբ կտտացնում ենք դրանք և բում, այստեղ մենք ունենք մի գեղեցիկ փոքրիկ զննարկիչ: Այն լիովին ֆունկցիոնալ չէ, բայց ես կվերցնեմ այն: Լավ, եթե ուզում եք ինքներդ գործարկել այս նախագիծը, գնացեք իմ Github և ներբեռնեք expressVPN նախագիծը.
github.com/MatthewHallberg/ARBrowserExpres…
Քայլ 8: Ամեն ինչ աշխատեցնելը:
Բացեք այն Unity- ում և թույլ տվեք, որ ամեն ինչ աշխատի ձեր համակարգչի վրա: Նախ անհրաժեշտ է գտնել ձեր մեքենայի IP հասցեն, այնպես որ, եթե Mac- ում եք, պարզապես պահեք տարբերակը և կտտացրեք wifi խորհրդանիշին ՝ ձեր IP- ն բացահայտելու համար:
Վերադարձեք միասնություն և բացեք զննարկչի վերահսկիչի սցենարը և այնտեղ տեղադրեք ձեր IP հասցեն և պատճենեք այն ձեր սեղմատախտակին: Գտեք nodeScripts թղթապանակը և դրեք այն աշխատասեղանին, բացեք թղթապանակը և երկու ընդարձակումները փոխեք.js- ի: Բացեք յուրաքանչյուր սցենար և փոխեք IP հասցեն ձեր IP- ին: Այժմ բացեք տերմինալը, և մենք պետք է որոշ բաներ տեղադրենք: Տեղադրեք HomeBrew- ը, եթե այն արդեն չունեք:
-Brew տեղադրման հանգույց
-npm տեղադրել վեբ նկարը
-npm տեղադրել flatiron
-npm տեղադրման միություն
-npm տեղադրել cheerio
Այժմ մենք կարող ենք երկու սցենարներն այնպես սկավառակի մեջ դնել nodescripts թղթապանակում և անել node getimage.js Եվ այնուհետև բացել նոր տերմինալի պատուհան և կատարել հանգույց getlinks.js Թողնել երկու տերմինալային պատուհանները գործարկված և վերադառնալ խմբագրին: Եթե մենք սեղմում ենք play- ին, ամեն ինչ պետք է լավ աշխատի: Մենք կարող ենք նաև գնալ ֆայլ, կառուցել կարգավորումներ և սեղմել build և վազել ՝ այն մեր հեռախոսում ստանալու համար: Եթե ցանկանում եք կանգնեցնել սերվերները, պարզապես սեղմեք հսկողության գ կամ հրամանը q ՝ փակելու ամբողջ տերմինալը:
ԱՅՍ Է!
Խորհուրդ ենք տալիս:
Բարձրացրեք ձեր հիշողությունը ընդլայնված իրականության մտքի պալատով `8 քայլ
Բարձրացրեք ձեր հիշողությունը ընդլայնված իրականության մտքի պալատով. Մտքի պալատների օգտագործումը, ինչպես Շերլոկ Հոլմսում, օգտագործվել է հիշողության չեմպիոնների կողմից `բազմաթիվ տեղեկություններ հիշեցնելու համար, ինչպիսիք են խառը քարտեզի տախտակամածի քարտերի հերթականությունը: Մտքի պալատը կամ տեղանքի մեթոդը հիշողության տեխնիկա է, որտեղ տեսողական հիշողությունները
GlobalARgallery - Ընդլայնված իրականության գլոբալ պատկերասրահ. 16 քայլ
#GlobalARgallery - Ընդլայնված իրականության գլոբալ պատկերասրահ. #GlobalARgallery- ը հնարավորություն է տալիս դպրոցներին (և այլոց) անհամաժամ կապ հաստատել ամբողջ աշխարհում և կիսել փորձառություններ, արվեստի գործեր, պատմություններ, ժամանակացույցեր, ցուցահանդեսներ, շնորհանդեսներ և որևէ այլ բան, որ կարող եք պատկերացնել: Այս բոլորը հայտնվում են A
Ընդլայնված իրականության հեռախոսի հանդերձում ՝ 7 քայլ
Ընդլայնված իրականության հեռախոսի հանդերձում. Էժան, հեշտ, զով:
Ընդլայնված իրականության հանելուկ. 11 քայլ
Ընդլայնված իրականության հանելուկ. Հանելուկ խաղերը պարզապես հիանալի են: Կան բոլոր տեսակի հանելուկներ, բնորոշ ոլորահատ սղոց, լաբիրինթոս, այս ժանրի նշաններով և նույնիսկ տեսախաղերով (օրինակ ՝ կապիտան դոդոշ): Հանելուկ խաղերը խաղացողից պահանջում են նախագծել խնդիրների լուծման ռազմավարություն:
Ընդլայնված իրականության Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. 8 քայլ
Ընդլայնված իրականություն Vuforia 7 ցամաքային ինքնաթիռի հայտնաբերում. Այսօրվա ձեռնարկը կօգտագործի իրենց հայրենի ինտեգրումը Unity- ում ՝ Android- ի կամ IOS- ի համար AR ծրագիր ստեղծելու համար: Մենք կունենանք մեքենա, որը երկնքից կընկնի ափին