Агуулгын хүснэгт:
- Алхам 1: IBM Watson SDK -ийг Unity дээр тохируулна уу
- Алхам 2: IBM Watson -ийн текстийг ярианд туршиж үзээрэй
- Алхам 3: Google Custom Search API -ийг тохируулна уу
- Алхам 4: Vuforia -ийг Unity дээр тохируулна уу
- Алхам 5: Урьдчилан бэлтгэсэн зураг үүсгэх
- Алхам 6: Google API -д зориулсан скрипт үүсгэх
- Алхам 7: Манай зургийн үйлдвэрийг бий болго
- Алхам 8: Бид дууссан
Видео: MEMES -д зориулсан бодит байдлын бодит програмыг хийцгээе! 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэхүү зааварчилгаанд бид Google API ашиглан мемен хайхад зориулагдсан Unity3D дахь Android болон IOS -д зориулж сайжруулсан реалити апп хийх гэж байна. Бид Юнитид Vuforia -ийн газрын онгоцны илрүүлэлтийг ашиглах тул энэхүү гар утасны аппликейшн нь ихэнх Android болон IOS хэрэглэгчдэд ажиллах болно. Vuforia -ийг ашигласнаар бид зургуудыг нэг газарт бэхлэх боломжтой бөгөөд ингэснээр бид энэ зургийн талбараар алхаж, объектууд байгаа газраа үлдэх болно.
Бид мөн IBM Watson -ийн шинэ API -ийг турших гэж байгаа тул эдгээр хайлтыг өөрсдийн дуу хоолойгоор хийж, байгалийн хэлний боловсруулалтыг ашиглах боломжтой болно.
Муу мэдээ бол эдгээр API -ийн аль нь ч үнэ төлбөргүй байдаггүй, гэхдээ сайн мэдээ бол хоёулаа үнэгүй туршиж үзэх боломжтой юм. Google -ийн захиалгат хайлтын API нь өдөрт 100 үнэгүй хайлт хийх боломжийг олгодог бөгөөд IBM Watson API нь эхний сарыг үнэгүй өгдөг.
Товчоор хэлбэл, энэ апп нь Unity дахь микрофоноос бидний яриаг авах бөгөөд үүнийг IBM Watson сервер рүү илгээх бөгөөд энэ нь бидэнд текстийг буцааж өгөх болно. Дараа нь бид энэ текстийг аваад Google сервер рүү илгээх бөгөөд энэ нь бидэнд JSON хэлбэрээр зургийн URL -ийн жагсаалтыг буцааж өгөх болно.
Алхам 1: IBM Watson SDK -ийг Unity дээр тохируулна уу
Watson API -ийг ашиглахын тулд та эхлээд тэдний сайтаас итгэмжлэлээ авах хэрэгтэй. Console.bluemix.net руу ороод бүртгэл үүсгээд нэвтэрнэ үү. IBM данс руугаа ороод cloud castry Orgs руу ороод шинэ орон зай үүсгээрэй. Одоо хяналтын самбарт очиж үйлчилгээ үзэхийн тулд дарна уу, яриаг текст үйлчилгээнд нэмээрэй, учир нь үүнийг бид ашиглах болно. Бүс нутаг, байгууллага, орон зайгаа сонгоод төслийг үүсгэнэ үү. Одоо та өөрийн API итгэмжлэлийг доод талд харах болно.
Хэрэв танд Unity байхгүй бол Unity програмыг татаж аваад IBM Watson SDK -ийг Unity дахь хөрөнгийн дэлгүүрээс импортлоорой. Бид үүнийг хоосон тоглоомын объект үүсгэж, IBM Watson гэж нэрлэж, дамжуулах скриптийн жишээг нэмж туршиж үзэх боломжтой. Энэ скриптийг эв нэгдлээс аудио бичиж, Ватсоны сервер рүү илгээж боловсруулдаг.
Одоогоор бид энэ жишээ скриптийг ашиглах гэж байна, учир нь бидэнд хийх зүйл маш их байгаа боловч дараагийн удаа бид Vatson -ийн талаар илүү гүнзгий судалж магадгүй, учир нь би Vision API -тай ямар нэгэн зүйл хийхийг хүсч байна.
Алхам 2: IBM Watson -ийн текстийг ярианд туршиж үзээрэй
Энэ скрипт нь UI текст объект хайж байгаа тул шинэ UI товчлуур үүсгэх боломжийг бидэнд олгоно, энэ нь бидэнд хэрэгтэй текстийг өгөх болно, бид дараа нь товчлуурыг ашиглах болно. Зургийг дэлгэцийн хэмжээгээр масштабтай болгож товчлуурын хэмжээг бага зэрэг өөрчил. Үүнийг зүүн доод талд бэхлээрэй. Энэ текстийг хоосон үүр рүү чирнэ үү. Скриптийг нээгээд IBM Watson -ийн итгэмжлэлээ нэмж, "resultsField" текст хаана ашиглагдаж байгааг олж мэдээд зөвхөн "alt.transcript" болгож тохируулаарай, учир нь бид энэ текстийг google дээр хайх болно. Үүнийг туршиж үзэхээсээ өмнө бид текстийн хэмжээг динамикаар хийх ёстой бөгөөд ингэснээр бидний хэлсэн бүхэн хайрцагт багтах болно. Текст рүү буцаж очоод хамгийн сайн тохируулаарай. Үүнийг шалгахын тулд хэдэн текст оруулна уу. Одоо бид тоглох товчлуурыг дарахад бидний үгс Ватсоны текстээс ярианы API -аас текст рүү хөрвүүлэгдэх болно.
Алхам 3: Google Custom Search API -ийг тохируулна уу
Дараагийн хийх ёстой зүйл бол Google -ийн тусгай хайлтын API -ийг Unity -д ашиглахаар тохируулах явдал юм. Өндөр түвшинд бид Unity -аас Google серверүүд рүү HTTP хүсэлт гаргах бөгөөд энэ нь бидэнд JSON форматаар хариу өгөх болно.
Тиймээс Google Custom Search JSON API -ийн тохиргооны хуудас руу очоод API түлхүүрийг олж аваад шинэ апп үүсгээрэй. Үүнийг нээлттэй байлга. Одоо бид хяналтын самбар руу очиж болно. Сайтуудаас хайхыг хүссэн бүх зүйлээ оруулаад, нэрлээд, үүсгэх товчийг дарна уу.
Хяналтын самбар дээр дарж зарим өөрчлөлтийг хийх боломжийг танд олгоно: бид ихэвчлэн меменүүдийг хайх, зураг хайхыг асаахыг хүсдэг. Хайлт хийх сайтуудын доор үүнийг бүх вэб рүү шилжүүлнэ үү. Бүгдийг хадгалахын тулд шинэчлэх дээр дарна уу.
Одоо google api explorer -ийг олж, захиалгат хайлтын API руу очно уу. Энэ нь бидэнд Google -ээс авсан JSON хариултыг форматлах боломжийг олгоно. Тиймээс одоогоор асуулгад зориулж ямар нэгэн зүйл оруулаад, хайлтын системийн ID -аа оруулаад, давталт хийхгүйн тулд шүүлтүүрт 1 -ийг оруулаад, тоогоор нь 10 -ийн доор оруулна уу, учир нь энэ нь бидний нэг удаа буцааж өгч болох хамгийн их үр дүн юм. Хайлтын төрөлд зориулж зураг оруулаарай, учир нь энэ бол бидний буцааж өгөхийг хүссэн зүйл юм. Эхлэхийн тулд 1 -ийг оруулаад эцэст нь талбаруудын доор "items/link" гэж оруулна, учир нь буцааж өгсөн зүйл бүрийн хувьд бид зөвхөн зургийн холбоосыг л хүсдэг. Одоо та гүйцэтгэх товчийг дарахад бид 10 сайхан зургийн линкийг буцааж авах болно.
Одоо бид эдгээр зургийг Unity рүү оруулах ёстой.
Алхам 4: Vuforia -ийг Unity дээр тохируулна уу
Vuforia -г ажиллуулцгаая, ингэснээр бид тэдний газрын гадаргуугийн илрүүлэлтийг ашиглах боломжтой болно. Одоогийн үзэгдлээ хадгалаад бүтцийн тохиргоо руу орно уу. Платформоо Андройд эсвэл IOS руу шилжүүлж, хэрэв таны IOS дээр багцын таниулагчид ямар нэгэн зүйл оруулсан бол камер, микрофоны хэрэглээний тайлбарыг нэмнэ үү. XR тохиргооноос Vuforia -ийн сайжруулсан бодит байдлыг дэмжиж байгаа эсэхийг шалгаарай.
Одоо дүр зураг дээр үндсэн камераа устгаад Vuforia ARCamera -г нэмээрэй. Тохиргооны хэсэг рүү очоод хянах горимыг байрлал руу өөрчилнө үү. Бүх өгөгдлийн сан бидэнд хэрэггүй тул сонголтыг арилгана уу.
Одоо онгоц хайгчийг нэмж оруулаарай, учир нь бид газрын гадаргуугийн үе шатыг ганцхан удаа байрлуулахыг хүсч байгаа тул Vuforia вэбсайтаас нэг удаа Deploy Stage скриптийг хайж олохыг хүсч байна. Тэр скриптийг Юнитид авчраад онгоц хайгч дээр тавиад хуучин скриптийг устга. Горимыг интерактив болгон өөрчилж, "OnInteractiveHitTest" функц нь Unity Event дээр дуудагдсан эсэхийг шалгаарай. Бид энд байхдаа газрын хавтгайг олсоныхоо өмнө хийсэн товчлуураа идэвхжүүлж, түүний анхны төлөвийг идэвхгүй болгож тохируулцгаая. Одоо газрын бүхээг агаарт хөвөхийг хүсч байгаа тул газар дээр нь онгоц тавьж, түүнийгээ агаарт шилжүүлээрэй. Энэ газрын онгоцыг онгоц хайгчийн хоосон үүр рүү чирнэ үү.
Алхам 5: Урьдчилан бэлтгэсэн зураг үүсгэх
Эдгээр бүх хэсгүүдийг нэгтгэж эхлэхээсээ өмнө бид зураг ачаалах бүрдээ хийж болох угсармал тоглоомын объект бий болгох хэрэгтэй. Тиймээс газрын гадаргуугийн доор хоосон тоглоомын объект үүсгээд "picPrefab" гэж нэрлэнэ үү. Хүүхэд байхдаа дөрвөлжин бүтээж, 2 -оор хэмжиж, y -ийг 180 градус эргүүлээрэй, ингэснээр цэнхэр сумаар харуулсан эцэг эхийн урагшлах вектор нь дөрвөлжингийн урд талд байх болно.
"PictureBehavior" нэртэй шинэ скрипт үүсгээд манай picPrefab дээр нэмээрэй.
Одоо энэ зургийн угтварыг өөрийн хөрөнгийн фолдер руу чирнэ үү, бид үүнийг зураг тус бүр дээр тавих болно.
Манай "PictureBehavior" скрипт дараах байдлаар харагдах ёстой.
System. Collections ашиглах;
System. Collections. Generic ашиглах; UnityEngine ашиглах; public class PictureBehavior: MonoBehaviour {public Renderer quadRenderer; хувийн Vector3 хүссэн байрлал; void Start () {// камерын хувиргалтыг харна уу. 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); } нийтийн хоосон LoadImage (string url) {StartCoroutine (LoadImageFromURL (url))); } IEnumerator LoadImageFromURL (мөрийн URL) {WWW www = шинэ WWW (url); өгөөжийн өгөөж www; quadRenderer.material.mainTexture = www.texture; }}
Алхам 6: Google API -д зориулсан скрипт үүсгэх
Одоо манай "picPrefab" -аас дөрвөлжин рендерчийн лавлагааг чирж үзье.
Бидэнд ердөө хоёр скрипт үлдсэн тул GoogleService.cs ба PictureFactroy.cs гэсэн C# скрипт үүсгэцгээе.
"GoogleService" дотор бидний хүсэлтийг хийдэг энэ кодыг буулгана уу.
System. Collections ашиглах;
System. Collections. Generic ашиглах; UnityEngine ашиглах; UnityEngine. UI ашиглах; нийтийн үйлчилгээ GoogleService: MonoBehaviour {public PictureFactory pictureFactory; нийтийн текст товчлуур текст; private const string API_KEY = "API түлхүүрийг энд оруулна уу !!!!!"; public void GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (худал); мөр асуулга = buttonText.text; query = WWW. EscapeURL (асуулга + "меменүүд"); // хуучин зургуудыг устгах pictureFactory. DeleteOldPictures (); // камерыг урагш чиглүүлэх векторыг хадгалах, ингэснээр объектуудыг байрлуулах үед бид хөдөлж чадна Vector3 cameraForward = Camera.main.transform.forward; // бид нэг удаад зөвхөн 10 үр дүн авах боломжтой тул 10 int rowNum = 1 бүрийн дараа эхлэх дугаарыг өөрчилж, ахиц дэвшлээ хадгалах хэрэгтэй. for (int i = 1; i <= 60; i + = 10) {string url = "https://www.googleapis.com/customsearch/v1?q=" + query + "& cx = 011535004225295624669%3Afeb1gwic6bs & filter = 1 & num = 10 & searchType = image & start = " + i +" & field = items%2Flink & key = " + API_KEY; WWW www = шинэ WWW (url); өгөөжийн өгөөж www; pictureFactory. CreateImages (ParseResponse (www.text), rowNum, cameraForward); rowNum ++; } өгөөжийн өгөөж шинэ WaitForSeconds (5f); buttonText.transform.parent.gameObject. SetActive (үнэн); } ParseResponse жагсаалт (string text) {List urlList = new List (); string urls = text. Split ('\ n'); foreach (url дахь мөр мөр) {if (line. Contains ("link")) {string url = line. Substring (12, line. Length-13); // png эсвэл jpg -ээр шүүлт хийх нь Google -ээс ажиллахгүй байгаа тул бид үүнийг энд хийдэг: if (url. Contains (".jpg") || url. Contains (".png")) {urlList. Add (url); }}} urlList -ийг буцаах; }}
Алхам 7: Манай зургийн үйлдвэрийг бий болго
PictureFactory.cs дотор манай бүх зургийг бүтээхийн тулд энэ кодыг тавьж, тэдгээрийн бүтцийг URL хаягаар ачаалдаг.
System. Collections ашиглах;
System. Collections. Generic ашиглах; UnityEngine ашиглах; public class PictureFactory: MonoBehaviour {public GameObject picPrefab; нийтийн GoogleService googleService; public void DeleteOldPictures () {if (transform.childCount> 0) {foreach (Хүүхдийг үүнд хувиргах. хувиргах) {Устгах (child.gameObject); }}} нийтийн хоосон CreateImages (ListurlList, int resultNum, Vector3 camForward) {int picNum = 1; Vector3 төв = Camera.main.transform.position; foreach (urlList дэх string url) {Vector3 pos = GetPosition (picNum, resultNum, camForward); GameObject pic = Instantiate (picPrefab, pos, Quaternion.identity, this.transform); pic. GetComponent (). LoadImage (url); picNum ++; }} Vector3 GetPosition (int picNum, int rowNum, Vector3 camForward) {Vector3 pos = Vector3.zero; if (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" арга хэмжээнд очиж, тэндээс залгаарай.
Одоо бид тоглох дээр дарж үүнийг туршиж үзэх боломжтой. Газрын хавтгай шат болон товчлуурыг идэвхжүүлэхээ мартуузай. Нэг үг хэлээд товчлуур дээр дарж тэр текстийг хайж олоорой!
Одоо энэ програмыг утсан дээрээ суулгахын тулд залгаж, File-> Build Settings хэсэгт очно уу. Бүтээж, ажиллуулаарай!
Хэрэв танд ямар нэгэн асуулт байвал тайлбар дээр надад хэлээрэй!
Зөвлөмж болгож буй:
Виртуал бодит байдлын хяналттай RC машин: 9 алхам
Виртуал бодит байдлыг хянадаг RC машин: Та хэзээ нэгэн цагт цомхотгож, Дотоод орон зай эсвэл Гайхамшигт аялал гэх мэт гар урлалын нисгэгч болохыг хүсч байсан уу? Миний бодлоор энэ нь танд ойрхон байгаа шиг ойрхон байна! Энэ бол Виртуал Бодит байдлын удирдагчийн жолоодож буй бодит амьдрал дахь алсын удирдлагатай машин юм
PLC аюулгүй байдлын утасгүй аюулгүй байдлын товчлуур: 6 алхам (зурагтай)
PLC -ийн аюулгүй байдлын утасгүй аюулгүй байдлын товчлуур: Энэхүү төсөл нь аюултай үйлдвэрлэлийн байгууламжийн аюулгүй байдлын нэмэлт давхаргыг бий болгохын тулд IoT болон (эцэст нь) робот техникийг ашиглах талаархи миний ойлголтын нотолгоо юм. Энэ товчлуурыг ашиглан дохиог хянах зэрэг олон процессыг эхлүүлэх эсвэл зогсоох боломжтой
Буцаж ойх ! Arduino & Acclerometer ашиглан виртуал бодит байдлын тоглоом: 9 алхам
Буцаж ойх ! Arduino & Acclerometer ашиглан виртуал бодит байдлын тоглоом: Энэхүү гарын авлагад бид Arduino болон Acclerometer ашиглан Virtual Reality тоглоомыг бүтээх болно
One Touch Эмэгтэйчүүдийн аюулгүй байдлын аюулгүй байдлын систем: 3 алхам
Эмэгтэйчүүдийн аюулгүй байдлын нэг мэдрэгчтэй систем: Нэг мэдрэгчтэй дохиолол 8051 микро хянагч ашигладаг эмэгтэйчүүдийн аюулгүй байдлын систем Өнөөгийн ертөнцөд эмэгтэйчүүдийн аюулгүй байдал нь тухайн улсын хамгийн чухал асуудал болоод байна. Өнөөдөр эмэгтэйчүүдийг дарамталж, зовоодог, заримдаа яаралтай тусламж хэрэгтэй болдог. Шаардлагатай байршил байхгүй байна
Эхлэгчдэд зориулсан бодит байдлын апп: 8 алхам
Эхлэгчдэд зориулсан Өргөтгөсөн Бодит байдлын апп: Энэхүү заавар нь эхлэгчдэд зориулсан бодит байдлын бодит програмыг хэрхэн хийхийг танд үзүүлэх болно. Бид Unity3D болон Vuforia-ийн газрын хавтгай илрүүлэлтийг ашиглан Android эсвэл IOS-д зориулсан тэмдэглэгээгүй AR програмыг хийх болно. Бид Unity -д 3D загвар нэмж, түүнийг шилжүүлэх замаар явах болно