সুচিপত্র:

অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন: 8 ধাপ
অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন: 8 ধাপ

ভিডিও: অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন: 8 ধাপ

ভিডিও: অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন: 8 ধাপ
ভিডিও: ভার্চুয়াল রিয়েলিটি এবং অগমেন্টেড রিয়েলিটি কি! WHAT IS VR AND AR? 2024, নভেম্বর
Anonim
অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন।
অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন।
অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন।
অগমেন্টেড রিয়েলিটি ভুফোরিয়া 7 গ্রাউন্ড প্লেন ডিটেকশন।

ভুফোরিয়ার অগমেন্টেড রিয়েলিটি এসডিকে ফর ইউনিটি থ্রিডি এআর -তে গ্রাউন্ড প্লেন শনাক্ত করতে ARCore এবং ARKit ব্যবহার করে। অ্যান্ড্রয়েড বা আইওএসের জন্য একটি এআর অ্যাপ তৈরি করতে আজকের টিউটোরিয়ালটি ইউনিটি -তে তাদের নেটিভ ইন্টিগ্রেশন ব্যবহার করবে। আমাদের একটি গাড়ি আকাশ থেকে মাটিতে পড়ে যাবে, এবং যখন আমরা কাছে যাব তখন এর দরজা স্বয়ংক্রিয়ভাবে খুলবে। আমরা এআর তে ভিডিও করাতেও যাব। অনুসরণ করার জন্য আপনার কম্পিউটারে ইউনিটি 3D ইনস্টল করা প্রয়োজন (এটি বিনামূল্যে)। এই নির্দেশাবলী মোট নতুনদের জন্য তাই আমরা সবকিছু বিস্তারিতভাবে দেখব!

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

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

ধাপ 1: একটি নতুন প্রকল্প শুরু করুন।

একটি নতুন প্রকল্প শুরু করুন।
একটি নতুন প্রকল্প শুরু করুন।

আপনার যদি ইতিমধ্যে এটি না থাকে তবে এখান থেকে ইউনিটি 3 ডি ডাউনলোড করুন:

আপনার কোন ডিভাইসের উপর নির্ভর করে ভুফোরিয়া অগমেন্টেড রিয়েলিটি এবং অ্যান্ড্রয়েড বা আইওএসের জন্য সমর্থন ইনস্টল করতে ভুলবেন না।

ইউনিটি খুলুন এবং একটি নতুন ইউনিটি প্রকল্প শুরু করুন, আপনি যা চান তা কল করুন।

প্রথমে আসুন অ্যাপটি সেট আপ করা যাক যাতে আমরা ভুলে যাই না। সুতরাং, দৃশ্যটি সংরক্ষণ করুন এবং এটিকে "প্রধান" বলুন।

ফাইলটিতে যান, সেটিংস তৈরি করুন এবং আপনার বিল্ড প্ল্যাটফর্মটি অ্যান্ড্রয়েড বা আইওএসে স্যুইচ করুন। প্লেয়ার সেটিংসে XR সেটিংসে নেভিগেট করুন এবং Vuforia Augmented Reality Supported চেক করুন।

যদি আপনি অ্যান্ড্রয়েডে থাকেন তবে আপনাকে আর কিছু করতে হবে না, তবে আইওএস -এ অন্যান্য সেটিংসে যান এবং আপনার বান্ডেল শনাক্তকারীর জন্য কিছু রাখা নিশ্চিত করুন। "Com. YourCompanyName. YourAppName" ফর্ম্যাটটি ব্যবহার করুন।

ক্যামেরা ব্যবহারের বিবরণের জন্য যেকোনো কিছু রাখুন এবং টার্গেট ন্যূনতম বিল্ড সংস্করণটি কমপক্ষে 9.0 এ পরিবর্তন করুন।

এটি বন্ধ করুন এবং এখন আসুন অন্য সবকিছু সেট আপ করা যাক।

ধাপ 2: আসুন Vuforia সেট আপ করি।

ভিউফোরিয়া সেট আপ করা যাক।
ভিউফোরিয়া সেট আপ করা যাক।

এখন সবকিছু সেট আপ করা যাক।

উপরের মেনুতে gameobject এ যান এবং ARCamera ক্লিক করুন। এখন আপনার দৃশ্য থেকে মূল ক্যামেরা মুছে ফেলুন।

ARCamera নির্বাচন করুন এবং ইন্সপেক্টরের ডান পাশে ওপেন ভুফোরিয়া কনফিগারেশনে ক্লিক করুন। ডেটাসেট সংগ্রহে ক্লিক করুন এবং সবকিছু আনচেক করুন কারণ আমরা এখানে কোনো ইমেজ টার্গেট ব্যবহার করছি না।

ডিভাইস ট্র্যাকারে ক্লিক করুন এবং ট্র্যাক ডিভাইস পোজ ক্লিক করুন। ট্র্যাকিংকে ঘূর্ণন থেকে অবস্থানগত পরিবর্তন করুন।

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

শেষ জিনিস যা আমাদের দরকার তা হল গ্রাউন্ড প্লেন স্টেজ, তাই উপরের মেনুতে আবার গেম অবজেক্টে যান এবং ভুফোরিয়া, গ্রাউন্ড প্লেন ক্লিক করুন এবং গ্রাউন্ড প্লেন স্টেজ নির্বাচন করুন। এখন আমরা যা কিছু শিশু এটি AR এ প্রদর্শিত হবে।

ধাপ 3: একটি নতুন স্ক্রিপ্ট যোগ করুন।

একটি নতুন স্ক্রিপ্ট যোগ করুন।
একটি নতুন স্ক্রিপ্ট যোগ করুন।
একটি নতুন স্ক্রিপ্ট যোগ করুন।
একটি নতুন স্ক্রিপ্ট যোগ করুন।

এই গ্রাউন্ড প্লেন ডিটেকশনের ডিফল্ট আচরণ হল প্রতিবার আপনি স্ক্রিনে চাপ দিলে একটি নতুন বস্তু স্থাপন করা। আমরা যা চাই তা হ'ল প্রতিবার স্ক্রিনে টিপলে বস্তুটি পুনরায় স্থাপন করা। তাই আপনার সম্পদ ফোল্ডারে ডান ক্লিক করুন এবং একটি নতুন C# স্ক্রিপ্ট তৈরি করুন। এটিকে "DeployStageOnce" বলুন এবং এই কোড দিয়ে সবকিছু প্রতিস্থাপন করুন:

সিস্টেম ব্যবহার করে;

ইউনিটি ইঞ্জিন ব্যবহার করে; Vuforia ব্যবহার করে; পাবলিক ক্লাস DeployStageOnce: MonoBehaviour {public GameObject AnchorStage; ব্যক্তিগত অবস্থানগত ডিভাইস ট্র্যাকার _ ডিভাইস ট্র্যাকার; ব্যক্তিগত GameObject _previousAnchor; public void Start () {if (AnchorStage == null) {Debug. Log ("AnchorStage অবশ্যই উল্লেখ করতে হবে"); প্রত্যাবর্তন; } AnchorStage. SetActive (মিথ্যা); } জনশূন্য জাগ্রত () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted); } জনশূন্য OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted); } ব্যক্তিগত শূন্যতা OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker (); } public void OnInteractiveHitTest (HitTestResult result) {if (result == null || AnchorStage == null) {Debug. LogWarning ("Hit test is invalid or AnchorStage not set"); প্রত্যাবর্তন; } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid ()। ToString (), result); যদি (নোঙ্গর! = নাল) {AnchorStage.transform.parent = anchor.transform; AnchorStage.transform.localPosition = Vector3.zero; AnchorStage.transform.localRotation = Quaternion.identity; AnchorStage. SetActive (সত্য); } if (_previousAnchor! = null) {ধ্বংস (_previousAnchor); } _previousAnchor = নোঙ্গর; }}

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

ধাপ 4: চলুন গাড়ি যোগ করি।

আসুন গাড়ি যোগ করি।
আসুন গাড়ি যোগ করি।

এই বিনামূল্যে গাড়ী 3D মডেলটি এখান থেকে ডাউনলোড করুন (.obj সংস্করণটি নিশ্চিত করুন):

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

এছাড়াও, এই শব্দটি ডাউনলোড করুন কারণ গাড়িটি যখন মাটিতে পড়ে তখন আমরা এটি বাজাতে যাচ্ছি:

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

এই ফাইল দুটি আনজিপ করুন এবং সেগুলি আপনার সম্পদ ফোল্ডারে টেনে আনুন।

গাড়িতে ক্লিক করুন এবং ডানদিকে দেখুন, উপরের ড্রপ ডাউন মেনু থেকে বহিরাগত সামগ্রী (উত্তরাধিকার) ব্যবহার করতে এম্বেডেড সামগ্রী ব্যবহার করুন পরিবর্তন করুন। এখন আমরা গাড়ির সমস্ত উপকরণের রঙ পরিবর্তন করতে সক্ষম হব।

গাড়িটিকে আপনার গ্রাউন্ড প্লেন স্টেজে টেনে আনুন এটি একটি শিশু। X, y, এবং z এ স্কেল পরিবর্তন করে.035 করুন।

এখন প্রতিটি গাড়ি চাইল্ড গেম বস্তুর মধ্য দিয়ে যান এবং তাদের উপকরণগুলি আপনি যে রঙে চান তা পরিবর্তন করুন।

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

ধাপ 5: আকাশে গাড়ি রাখুন।

আকাশে গাড়ি রাখুন।
আকাশে গাড়ি রাখুন।

গাড়ির রুট গেম অবজেক্টে একটি অডিও সোর্স কম্পোনেন্ট যুক্ত করুন, গাড়ির ক্র্যাশ সাউন্ডকে এর অডিও ক্লিপ স্পটে টেনে আনুন।

এখন আমাদের একটি স্ক্রিপ্ট তৈরি করতে হবে যা ব্যবহারকারী স্ক্রিনে চাপ দিলে গাড়িটিকে বাতাসে putুকিয়ে দেবে এবং তারপর গাড়িটি মাটিতে আঘাত করলে ক্র্যাশ সাউন্ড বাজাবে। সুতরাং, সম্পদ ফোল্ডারে ডান ক্লিক করুন এবং একটি নতুন C# স্ক্রিপ্ট তৈরি করুন এবং এটিকে "কারকন্ট্রোলার" বলুন।

এর সাথে সেখানে সমস্ত কোড প্রতিস্থাপন করুন:

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

System. Collections. Generic ব্যবহার করে; ইউনিটি ইঞ্জিন ব্যবহার করে; পাবলিক ক্লাস কার কন্ট্রোলার: MonoBehaviour {private bool soundPlayed = false; // আপডেট প্রতি একবার বলা হয় void Update () {if (! SoundPlayed && transform.localPosition.y <.05f) {soundPlayed = true; StartCoroutine (DelayPlaySound ()); }} পাবলিক অকার্যকর MoveCar () {transform.localPosition += নতুন ভেক্টর 3 (0, 10, 0); transform.eulerAngles += নতুন ভেক্টর 3 (5, 20, 5); soundPlayed = মিথ্যা; } IEnumerator DelayPlaySound () {ফলন নতুন WaitForSeconds (.2f); GetComponent (). Play (); }}

উপরের ছবির মতো OnInteractiveHitTest ইভেন্টে MoveCar ফাংশন যোগ করুন। এখন ব্যবহারকারী স্ক্রিনে ক্লিক করলে এটি কল করা হবে।

ধাপ 6: ল্যাম্বো দরজা।

ল্যাম্বো দরজা।
ল্যাম্বো দরজা।

সুতরাং আপনি যদি গাড়ির খেলা বস্তু প্রসারিত করেন এবং দরজাগুলি খুঁজে পান, আপনি লক্ষ্য করবেন উভয় দরজা একক জাল। যদি আমরা দরজা খুলতে চাই তবে আমাদের একমাত্র বিকল্প ল্যাম্বো দরজা যা উল্লম্বভাবে খোলা হবে। এই কাজটি করার জন্য আমাদের প্রথমে তাদের পিভট পয়েন্ট পরিবর্তন করতে হবে।

একটি খালি গেম বস্তু তৈরি করুন যা গাড়ির একটি শিশু। দরজাগুলি টেনে আনুন এবং তাদের এই নতুন গেম অবজেক্টের সন্তান করুন। মূল খেলা বস্তু যেখানে পিভট পয়েন্ট হওয়া উচিত, দরজা hinges দ্বারা সরান। এখন শিশুর দরজাগুলি আবার জায়গায় সরান। এখন যখন আমরা দরজা প্যারেন্ট ঘোরান, পিভট পয়েন্ট সঠিক জায়গায় আছে।

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

"LamboDoorBehavior" নামে একটি নতুন স্ক্রিপ্ট যোগ করুন এবং নিচের কোডটি যোগ করুন। স্ক্রিপ্টটি আপনার দরজার অভিভাবকের দিকে টেনে আনুন।

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

System. Collections. Generic ব্যবহার করে; ইউনিটি ইঞ্জিন ব্যবহার করে; পাবলিক ক্লাস LamboDoorBehavior: MonoBehaviour {ব্যক্তিগত ফ্লোট currAngle = 0; ব্যক্তিগত ফ্লোট কাঙ্ক্ষিত অ্যাঙ্গেল = 0; // আপডেট প্রতি ফ্রেম অকার্যকর একবার আপডেট বলা হয় () {currAngle = Mathf. LerpAngle (currAngle, wantedAngle, Time.deltaTime * 3f); transform.localEulerAngles = নতুন Vector3 (currAngle, 0, 0); } পাবলিক অকার্যকর OpenDoors () {इच्छित এঙ্গেল = 60f; } পাবলিক অকার্যকর CloseDoors () {কাঙ্ক্ষিত অ্যাঙ্গেল = 0; } অকার্যকর OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors (); }} অকার্যকর OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors (); }}}

এই স্ক্রিপ্টটি আপনার দরজাগুলি আস্তে আস্তে খুলবে যখন আপনি এআর -এর মধ্যে তাদের বন্ধ করে দেবেন Lerp () ফাংশনটি unityক্যে ব্যবহার করে যা দুটি পয়েন্টের (বা এই ক্ষেত্রে দুটি কোণ) মধ্যে interpolates।

ধাপ 7: এআর তে ভিডিও প্লে করা।

এআর তে ভিডিও চালানো হচ্ছে
এআর তে ভিডিও চালানো হচ্ছে
এআর তে ভিডিও চালানো হচ্ছে
এআর তে ভিডিও চালানো হচ্ছে

সর্বশেষ যেটা আমাদের করতে হবে তা হল এআর তে ভিডিও প্লে করা।

আপনার গাড়ির একটি শিশু যে কোন গেম অবজেক্টে ডান ক্লিক করুন এবং একটি 3D বস্তু, Quad তৈরি করুন। এটি নিশ্চিত করবে যে চতুর্ভুজটি আপনার গাড়ির সন্তান। এই চতুর্ভুজটির অবস্থান এবং আকার পরিবর্তন করুন যাতে এটি আপনার গাড়ির ড্যাশের ভিতরে ফিট করে এবং মনে হয় এটি সেখানে থাকার কথা। এই যে আমরা ভিডিও চালাতে যাচ্ছি।

আপনার চতুর্ভুজ একটি ভিডিও প্লেয়ার উপাদান যোগ করুন। ইউআরএলে সোর্স পরিবর্তন করুন এবং একটি. MP4 ফাইলের একটি হার্ড লিঙ্ক খুঁজুন অথবা আপনার সম্পদ ফোল্ডারে একটি ভিডিও ফাইল টেনে আনুন এবং তারপর সেই ক্লিপটি খালি স্লটে টেনে আনুন। আপনি যদি একটি URL থেকে একটি ভিডিও স্ট্রিম করতে চান, Instragram একটি মহান উৎস। গুগল ক্রোমের যে কোনও ইনস্টাগ্রাম ভিডিওতে ডান ক্লিক করুন এবং পরিদর্শন ক্লিক করুন। ভিডিও ধারণকারী ডিভি খুঁজুন এবং সেখান থেকে লিঙ্কটি অনুলিপি করুন (আমার উপরে এই পদ্ধতিটি চিত্রিত আছে)।

আপনি যদি একাধিকবার খেলতে চান তাহলে লুপ চেক করতে ভুলবেন না। এই গেম অবজেক্টে একটি অডিও সোর্স কম্পোনেন্ট যোগ করুন এবং আউটপুট সোর্সকে ভিডিও প্লেয়ারের অডিও সোর্সে পরিবর্তন করুন। আপনার নতুন তৈরি করা অডিও উৎসকে সেই স্লটে টেনে আনুন।

অবশেষে আমাদের কাজ শেষ!

ধাপ 8: আপনার ফোনে অ্যাপটি রাখুন

আপনার ফোনে অ্যাপটি রাখুন!
আপনার ফোনে অ্যাপটি রাখুন!

আপনি যদি অ্যান্ড্রয়েডের জন্য তৈরি করছেন তবে আপনি কেবল ফাইলটিতে যেতে পারেন এবং বিল্ডটি আঘাত করতে পারেন এবং আপনার ফোনটি প্লাগ ইন করে চালাতে পারেন।

যদি আপনি একটি আইফোন বা আইপ্যাড তৈরি করছেন, তাহলে অ্যাপ স্টোর থেকে এক্সকোড ডাউনলোড করতে ভুলবেন না। এছাড়াও, www.apple.developer.com থেকে একটি বিনামূল্যে আপেল ডেভেলপার অ্যাকাউন্টের জন্য সাইন আপ করুন। ফাইলটিতে যান এবং বিল্ড চাপুন। Xcode থেকে তৈরি করা ফাইলটি খুলুন এবং আপনার ফোনে প্লাগ করুন। আপনার ডেভেলপমেন্ট টিম চয়ন করুন এবং প্লে বাটন টিপুন।

আপনাকে হয়তো ক্যামেরাটা একটু ঘুরিয়ে নিতে হবে কিন্তু এটিকে একটি সেকেন্ড দিন এবং স্ক্রিনটি ট্যাপ করুন এবং আপনার গাড়িটি আকাশ থেকে মাটিতে পড়ে যেতে দেখা উচিত! এখন আপনি ভিতরে হাঁটতে পারেন এবং ড্যাশবোর্ডে আপনার ভিডিও প্লে দেখতে পারেন!

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

প্রস্তাবিত: