সুচিপত্র:

মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!: 8 টি ধাপ
মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!: 8 টি ধাপ

ভিডিও: মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!: 8 টি ধাপ

ভিডিও: মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!: 8 টি ধাপ
ভিডিও: শিমুল লামিয়ার প্রেম প্রেম খেলা | Shimul & Lamiya Special | Bachelor Point Love Scene | Xtreme Drama 2024, নভেম্বর
Anonim
মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!
মেমসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ তৈরি করা যাক!

এই নির্দেশনায় আমরা ইউনিটি 3 ডি তে অ্যান্ড্রয়েড এবং আইওএসের জন্য একটি বর্ধিত বাস্তবতা অ্যাপ্লিকেশন তৈরি করতে যাচ্ছি যা মীম অনুসন্ধানের জন্য গুগল এপিআই ব্যবহার করে। আমরা ইউনিফটিতে ভুফোরিয়ার গ্রাউন্ড প্লেন ডিটেকশন ব্যবহার করতে যাচ্ছি তাই এই মোবাইল অ্যাপটি বেশিরভাগ অ্যান্ড্রয়েড এবং আইওএস ব্যবহারকারীদের জন্য কাজ করবে। ভুফোরিয়া ব্যবহার করা আমাদের ছবিগুলিকে এক জায়গায় নোঙ্গর করার অনুমতি দেবে যাতে আমরা ছবির এই ক্ষেত্রের মধ্য দিয়ে হাঁটতে পারি এবং বস্তুগুলি যেখানে থাকে সেখানেই থাকবে।

আমরা নতুন আইবিএম ওয়াটসন এপিআই পরীক্ষা করতে যাচ্ছি যাতে আমরা এই অনুসন্ধানগুলি আমাদের ভয়েস দিয়ে করতে পারি এবং তাদের প্রাকৃতিক ভাষা প্রক্রিয়াকরণের সুবিধা পেতে পারি।

তাই খারাপ খবর এই API গুলোর কোনটিই সম্পূর্ণ বিনামূল্যে নয়, তবে ভাল খবর হল তারা উভয়ই চেষ্টা করার জন্য স্বাধীন। গুগল কাস্টম সার্চ এপিআই আপনাকে প্রতিদিন 100 টি ফ্রি সার্চ দেয় এবং আইবিএম ওয়াটসন এপিআই আপনাকে প্রথম মাস ফ্রি দেয়।

সংক্ষেপে, এই অ্যাপটি ইউনিটির মাইক্রোফোন থেকে আমাদের বক্তৃতা পাবে, এটি আইবিএম ওয়াটসন সার্ভারে পাঠাবে, যা আমাদের কাছে পাঠ্য ফিরিয়ে দেবে। তারপরে আমরা সেই পাঠ্যটি গ্রহণ করব এবং এটি Google সার্ভারে পাঠাব যা আমাদের JSON ফর্মের চিত্র URL গুলির একটি তালিকা ফিরিয়ে দেবে।

ধাপ 1: ইউনিটিতে আইবিএম ওয়াটসন এসডিকে সেট আপ করুন।

ইউনিটিতে আইবিএম ওয়াটসন এসডিকে সেট আপ করুন।
ইউনিটিতে আইবিএম ওয়াটসন এসডিকে সেট আপ করুন।

ওয়াটসন এপিআই চালু করার জন্য আপনাকে প্রথমে তাদের সাইট থেকে আপনার পরিচয়পত্র পেতে হবে। Console.bluemix.net এ যান, তৈরি করুন এবং অ্যাকাউন্ট করুন এবং লগ ইন করুন। আপনার IBM অ্যাকাউন্টে যান এবং ক্লাউড ফাউন্ড্রি অর্গেসে যান এবং একটি নতুন স্থান তৈরি করুন। এখন আপনার ড্যাশবোর্ডে যান এবং পরিষেবাগুলি ব্রাউজ করতে ক্লিক করুন, পাঠ্য পরিষেবাতে বক্তৃতা যুক্ত করুন কারণ এটিই আমরা ব্যবহার করতে যাচ্ছি। আপনার অঞ্চল, সংস্থা এবং স্থান নির্বাচন করুন এবং প্রকল্পটি তৈরি করুন। এখন আপনি নীচে আপনার API শংসাপত্রগুলি দেখতে পাবেন।

আপনার যদি ইতিমধ্যে এটি না থাকে তবে ইউনিটি ডাউনলোড করুন এবং ইউনিটির সম্পদের দোকান থেকে আইবিএম ওয়াটসন এসডিকে আমদানি করুন। আমরা একটি খালি গেম অবজেক্ট তৈরি করে এটি পরীক্ষা করতে পারি এবং এটিকে আইবিএম ওয়াটসন বলি এবং স্ট্রিমিং স্ক্রিপ্টের উদাহরণ যোগ করতে পারি। এই স্ক্রিপ্টটি ইতিমধ্যেই unityক্য থেকে অডিও রেকর্ড করার জন্য সেট করা হয়েছে এবং এটি প্রক্রিয়াকরণের জন্য ওয়াটসন সার্ভারে পাঠানো হয়েছে।

আপাতত আমরা এই উদাহরণ স্ক্রিপ্টটি ব্যবহার করতে যাচ্ছি কারণ আমাদের আরও অনেক কিছু করার আছে কিন্তু পরের বার হয়তো আমরা ওয়াটসন স্টাফের গভীরে যেতে পারি কারণ আমি ভিশন এপিআই দিয়ে কিছু করতে চাই।

ধাপ 2: IBM ওয়াটসন টেক্সট টু স্পিচ পরীক্ষা করুন।

IBM ওয়াটসন টেক্সট টু স্পিচ পরীক্ষা করুন।
IBM ওয়াটসন টেক্সট টু স্পিচ পরীক্ষা করুন।

এই স্ক্রিপ্টটি একটি UI পাঠ্য বস্তুর সন্ধান করছে তাই একটি নতুন UI বোতাম তৈরি করা যাক এটি আমাদের প্রয়োজনীয় পাঠ্য দেবে, আমরা পরে বোতামটি ব্যবহার করব। স্ক্রিন সাইজের সাথে স্কেল করার জন্য ক্যানভাস সেট করুন এবং বোতামটির আকার একটু পরিবর্তন করুন। নীচের বাম দিকে এটি নোঙ্গর করুন। সেই পাঠ্যটি খালি স্লটে টেনে আনুন। স্ক্রিপ্টটি খুলুন এবং আমাদের আইবিএম ওয়াটসন শংসাপত্রগুলি যোগ করতে দিন, "ফলাফলক্ষেত্র" পাঠ্যটি কোথায় ব্যবহার করা হয়েছে তা খুঁজে বের করুন এবং এটিকে শুধুমাত্র "alt.transcript" এ সেট করুন কারণ আমরা গুগলে অনুসন্ধান করতে এই পাঠ্যটি ব্যবহার করতে যাচ্ছি। এখন আমরা এটি পরীক্ষা করার আগে আমাদের পাঠ্যের আকারকে গতিশীলভাবে তৈরি করতে হবে যাতে আমরা যা বলি তা বাক্সের ভিতরে ফিট করে। টেক্সটে ফিরে যান এবং এটিকে সবচেয়ে ভালোভাবে সেট করুন। এটি পরীক্ষা করার জন্য কিছু পাঠ্য টাইপ করুন। এখন যখন আমরা খেলতে ক্লিক করি তখন আমাদের শব্দগুলি ওয়াটসন টেক্সট থেকে স্পিচ এপিআইতে পাঠ্যে প্রতিলিপি করা হবে।

ধাপ 3: গুগল কাস্টম সার্চ এপিআই সেট আপ করুন।

গুগল কাস্টম সার্চ এপিআই সেট আপ করুন।
গুগল কাস্টম সার্চ এপিআই সেট আপ করুন।

আমাদের পরবর্তী কাজটি করতে হবে গুগল কাস্টম সার্চ এপিআইটি ইউনিটিতে ব্যবহারের জন্য সেট আপ করা। উচ্চ স্তরে আমরা ইউনিটি থেকে গুগল সার্ভারগুলিতে একটি HTTP অনুরোধ করব যা আমাদের JSON ফর্ম্যাটে প্রতিক্রিয়া দেবে।

সুতরাং গুগল কাস্টম সার্চ JSON API সেট আপ পৃষ্ঠায় যান, একটি API কী পেতে ক্লিক করুন এবং একটি নতুন অ্যাপ তৈরি করুন। এটি খোলা রাখুন। এখন আমরা কন্ট্রোল প্যানেলে যেতে পারি। সাইটগুলি অনুসন্ধান করার জন্য যেকোনো কিছু রাখুন, এটির নাম দিন এবং তৈরি করুন ক্লিক করুন।

কন্ট্রোল প্যানেলে ক্লিক করুন এবং কিছু পরিবর্তন করতে দিন: আমরা প্রধানত মেমস অনুসন্ধান করতে চাই, এবং চিত্র অনুসন্ধান চালু করতে চাই। অনুসন্ধানের জন্য সাইটগুলির অধীনে এটি সম্পূর্ণ ওয়েবে স্যুইচ করুন। সবকিছু সংরক্ষণ করতে আপডেট ক্লিক করুন।

এখন গুগল এপিআই এক্সপ্লোরার খুঁজুন এবং কাস্টম সার্চ এপিআই এ যান। এটি আমাদের গুগল থেকে প্রাপ্ত JSON প্রতিক্রিয়া ফর্ম্যাট করতে দেবে। তাই আপাতত ক্যোয়ারীর জন্য যেকোনো কিছু রাখুন, আপনার সার্চ ইঞ্জিন আইডিতে পেস্ট করুন, ফিল্টারের জন্য 1 টি রাখুন যাতে আমরা ডুপ্লিকেট না পাই, 10 এর মধ্যে নম্বরের নিচে রাখি কারণ এটি সর্বাধিক সংখ্যক ফলাফল যা আমরা একবারে ফিরিয়ে দিতে পারি, সার্চ টাইপের জন্য ইমেজ রাখুন কারণ এটাই আমরা ফিরতে চাই। শুরুতে 1 রাখুন, এবং অবশেষে ক্ষেত্রের নীচে "আইটেম/লিঙ্ক" রাখুন কারণ প্রতিটি আইটেমের জন্য আমরা কেবল ছবির লিঙ্ক চাই। এখন যখন আপনি এক্সিকিউট ক্লিক করবেন তখন আপনি দেখতে পাবেন যে আমরা 10 টি সুন্দর ইমেজ লিঙ্ক ফিরে পেয়েছি।

এখন আমাদের এই ছবিগুলিকে ityক্যে আনতে হবে।

ধাপ 4: ইউনিটিতে ভুফোরিয়া সেট আপ করুন।

Vuforia ইউনিটিতে সেট আপ করুন।
Vuforia ইউনিটিতে সেট আপ করুন।

ভুফোরিয়াকে কাজ করতে দিন যাতে আমরা তাদের গ্রাউন্ড প্লেন ডিটেকশনের সুবিধা নিতে পারি। আপনার বর্তমান দৃশ্য সংরক্ষণ করুন এবং বিল্ড সেটিংসে যান। আপনার প্ল্যাটফর্মটি অ্যান্ড্রয়েড বা আইওএসে স্যুইচ করুন এবং যদি আপনি আইওএস -এ বান্ডেল শনাক্তকারীর জন্য কিছু রাখেন, একটি ক্যামেরা এবং মাইক্রোফোন ব্যবহারের বিবরণ যোগ করুন। XR সেটিংসের অধীনে Vuforia augmented reality সমর্থিত চেক করুন।

এখন দৃশ্যে মূল ক্যামেরা মুছে ফেলুন এবং একটি ভুফোরিয়া এআর ক্যামেরা যুক্ত করুন। কনফিগারেশন বিভাগে যান এবং অবস্থানগত ট্র্যাকিং মোড পরিবর্তন করুন। সমস্ত ডেটাবেস আনচেক করুন কারণ আমাদের সেগুলোর প্রয়োজন নেই।

এখন একটি প্লেন ফাইন্ডার যোগ করুন এবং আমাদের এর ডিফল্ট আচরণকে ওভাররাইড করতে হবে কারণ আমরা গ্রাউন্ড প্লেন স্টেজটি শুধুমাত্র একবারই স্থাপন করতে চাই তাই ভুফোরিয়া ওয়েবসাইটে একবার স্ক্রিপ্টটি স্থাপন করার সময় স্থাপনের পর্যায়টি খুঁজে পেতে দিন। সেই স্ক্রিপ্টটি ইউনিটিতে আনুন এবং এটি পুরানো স্ক্রিপ্টটি সরিয়ে প্লেন ফাইন্ডারে রাখুন। মোডকে ইন্টারেক্টিভে পরিবর্তন করুন এবং নিশ্চিত করুন যে "OnInteractiveHitTest" ফাংশনটি সেই ইউনিটি ইভেন্টে ডাকা হয়েছে। আমরা এখানে থাকাকালীন আমরা স্থল সমতল খুঁজে পাওয়ার আগে আমাদের তৈরি করা বোতামটি সক্রিয় করার জন্য সেট করি, তার ডিফল্ট অবস্থাটিকে নিষ্ক্রিয় করে দিন। এখন দৃশ্যের মধ্যে একটি স্থল সমতল রাখুন এবং এটিকে মধ্য বায়ুতে পরিবর্তন করুন কারণ আমরা সব ছবি বাতাসে ভাসতে চাই। প্লেন ফাইন্ডারের খালি স্লটে এই গ্রাউন্ড প্লেনটি টেনে আনুন।

ধাপ 5: একটি ছবির প্রিফ্যাব তৈরি করুন।

একটি ছবি Prefab তৈরি করুন।
একটি ছবি Prefab তৈরি করুন।

এই সমস্ত টুকরা একসাথে রাখা শুরু করার আগে আমাদের একটি প্রি -ফেব্রিকেট গেম অবজেক্ট তৈরি করতে হবে যা প্রতিবার ছবি লোড করার সময় আমরা তাত্ক্ষণিকভাবে করতে পারি। তাই গ্রাউন্ড প্লেন স্টেজের নিচে একটি খালি গেম অবজেক্ট তৈরি করুন এবং এটিকে "পিকপ্রেফ্যাব" বলুন। একটি শিশু হিসাবে একটি চতুর্ভুজ তৈরি করুন এবং এটি 2 দ্বারা স্কেল করুন, তার y কে 180 ডিগ্রী দ্বারা ঘোরান যাতে পিতামাতা ফরোয়ার্ড ভেক্টর যা একটি নীল তীর হিসাবে দেখানো হয় চতুর্ভুজের সামনে থাকে।

"PictureBehavior" নামে একটি নতুন স্ক্রিপ্ট তৈরি করুন এবং এটি আমাদের picPrefab এ যোগ করুন।

এখন এই ছবি prefab আপনার সম্পদ ফোল্ডারে টেনে আনুন এবং এটিই আমরা প্রতিটি ছবি রাখতে যাচ্ছি।

আমাদের "PictureBehavior" স্ক্রিপ্টটি এইরকম হওয়া উচিত:

System. Collections ব্যবহার করে;

System. Collections. Generic ব্যবহার করে; ইউনিটি ইঞ্জিন ব্যবহার করে; পাবলিক ক্লাস পিকচার বিহেভিয়ার: মনো বিহেভিওর {পাবলিক রেন্ডারার quadRenderer; ব্যক্তিগত ভেক্টর 3 পছন্দসই অবস্থান; অকার্যকর শুরু () {// ক্যামেরা ট্রান্সফর্ম দেখুন। LookAt (Camera.main.transform); Vector3 wantedAngle = নতুন Vector3 (0, transform.localEulerAngles.y, 0); transform.rotation = Quaternion. Euler (কাঙ্ক্ষিত এঙ্গেল); // বায়ুতে জোরপূর্বক অবস্থান = রূপান্তর। স্থানীয় অবস্থান; transform.localPosition += নতুন Vector3 (0, 20, 0); } অকার্যকর আপডেট () {transform.localPosition = Vector3. Lerp (transform.localPosition, वांछित स्थिति, Time.deltaTime * 4f); } পাবলিক অকার্যকর LoadImage (স্ট্রিং url) {StartCoroutine (LoadImageFromURL (url)); } IEnumerator LoadImageFromURL (string url) {WWW www = নতুন WWW (url); ফলন রিটার্ন www; quadRenderer.material.mainTexture = www.texture; }}

ধাপ 6: গুগল এপিআই এর জন্য একটি স্ক্রিপ্ট তৈরি করুন।

গুগল এপিআই এর জন্য একটি স্ক্রিপ্ট তৈরি করুন।
গুগল এপিআই এর জন্য একটি স্ক্রিপ্ট তৈরি করুন।

এখন আমাদের "picPrefab" থেকে চতুর্ভুজ রেন্ডারারের রেফারেন্সে টানুন।

আমাদের কেবল দুটি স্ক্রিপ্ট তৈরি করতে বাকি আছে, তাই GoogleService.cs এবং PictureFactroy.cs নামে একটি C# স্ক্রিপ্ট তৈরি করা যাক।

"GoogleService" এর ভিতরে এই কোডটি পেস্ট করুন যা আমাদের অনুরোধ করে:

System. Collections ব্যবহার করে;

System. Collections. Generic ব্যবহার করে; ইউনিটি ইঞ্জিন ব্যবহার করে; UnityEngine. UI ব্যবহার করে; পাবলিক ক্লাস GoogleService: MonoBehaviour {public PictureFactory pictureFactory; পাবলিক টেক্সট বাটন টেক্সট; ব্যক্তিগত const স্ট্রিং API_KEY = "PUT API KEY HERE !!!!!"; পাবলিক অকার্যকর GetPictures () {StartCoroutine (PictureRoutine ()); } IEnumerator PictureRoutine () {buttonText.transform.parent.gameObject. SetActive (মিথ্যা); স্ট্রিং প্রশ্ন = buttonText.text; প্রশ্ন = WWW. EscapeURL (প্রশ্ন + "মেমস"); // পুরানো ছবি মুছে ফেলুন ছবি ফ্যাক্টরি। DeleteOldPictures (); // ক্যামেরা ফরোয়ার্ড ভেক্টর সংরক্ষণ করুন যাতে আমরা চারপাশে যেতে পারি যখন বস্তুগুলি রাখা হচ্ছে Vector3 cameraForward = Camera.main.transform.forward; // আমরা একবারে মাত্র 10 টি ফলাফল পেতে পারি তাই আমাদের লুপের মাধ্যমে আমাদের অগ্রগতি সংরক্ষণ করতে হবে এবং প্রতি 10 ইন্ট সারির পরে শুরু সংখ্যা পরিবর্তন করে সংরক্ষণ করতে হবে = 1; জন্য (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); সারি সংখ্যা ++; } ফলন নতুন WaitForSeconds (5f); buttonText.transform.parent.gameObject. SetActive (সত্য); } তালিকা ParseResponse (স্ট্রিং টেক্সট) {তালিকা urlList = নতুন তালিকা (); স্ট্রিং urls = text. Split ('\ n'); foreach (url- এ স্ট্রিং লাইন) {if (line. Contains ("link")) {string url = line. Substring (12, line. Length-13); // পিএনজি বা জেপিজি দ্বারা ফিল্টার করা গুগল থেকে কাজ করে বলে মনে হয় না তাই আমরা এখানে এটি করি: }}} urlList ফিরান; }}

ধাপ 7: আমাদের ছবির কারখানা তৈরি করুন।

আমাদের ছবির কারখানা তৈরি করুন।
আমাদের ছবির কারখানা তৈরি করুন।

PictureFactory.cs এর ভিতরে আমাদের সকল ছবি তৈরির জন্য এই কোডটি রাখুন এবং একটি URL থেকে তাদের টেক্সচার লোড করুন।

System. Collections ব্যবহার করে;

System. Collections. Generic ব্যবহার করে; ইউনিটি ইঞ্জিন ব্যবহার করে; পাবলিক ক্লাস পিকচারফ্যাক্টরি: মনোবিভিয়ার {পাবলিক গেমঅবজেক্ট পিকপ্রেফব; সর্বজনীন 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 (urlList এ স্ট্রিং url) {Vector3 pos = GetPosition (picNum, resultNum, camForward); GameObject pic = Instantiate (picPrefab, pos, Quaternion.identity, this.transform); pic. GetComponent ()। লোড ইমেজ (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); } অন্যথায় {পোজ = ক্যামফরওয়ার্ড + নতুন ভেক্টর 3 ((পিকনাম % 5) * 3, 0, সারির নাম * 3.5 এফ); } রিটার্ন পজ; }}

ধাপ 8: আমরা সম্পন্ন

আমরা করেছি!
আমরা করেছি!
আমরা করেছি!
আমরা করেছি!

GoogleService নামে খালি গেমবজেক্ট তৈরি করুন এবং তার উপর "GoogleSerivice" স্ক্রিপ্ট রাখুন।

গ্রাউন্ড প্লেন স্টেজে "পিকচারফ্যাক্টরি" স্ক্রিপ্টটি টেনে আনুন কারণ আমাদের সমস্ত ছবি এই গেম অবজেক্টের সন্তান হিসেবে তৈরি হতে চলেছে।

পরিদর্শকের উপযুক্ত রেফারেন্সে টেনে আনুন, গুগল পরিষেবার জন্য একই কাজ করুন।

শেষ জিনিসটি আমাদের করতে হবে তা নিশ্চিত করতে হবে যে আমাদের "GetPictures" ফাংশনটি কল করা হয়েছে। সুতরাং আসুন আমাদের বাটনের "অনক্লিক" ইভেন্টে যাই এবং সেখান থেকে কল করি।

এখন আমরা খেলতে ক্লিক করতে পারি এবং এটি পরীক্ষা করতে পারি। গ্রাউন্ড প্লেন স্টেজ এবং বোতামটি সক্ষম করতে ভুলবেন না। একটি শব্দ বলুন, এবং সেই পাঠ্যে অনুসন্ধান করতে বোতামটি ক্লিক করুন!

এখন আপনার ফোনে এই অ্যাপটি পেতে, এটি প্লাগ ইন করুন এবং ফাইল-> বিল্ড সেটিংসে যান। বিল্ড এবং রান চালান!

আপনার কোন প্রশ্ন থাকলে আমাকে মন্তব্যগুলিতে জানান!

প্রস্তাবিত: