সুচিপত্র:

অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন: Ste টি ধাপ (ছবি সহ)
অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন: Ste টি ধাপ (ছবি সহ)

ভিডিও: অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন: Ste টি ধাপ (ছবি সহ)

ভিডিও: অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন: Ste টি ধাপ (ছবি সহ)
ভিডিও: Как спрятать данные в ячейках Excel? 2024, জুলাই
Anonim
অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন করা
অগাস্টেড রিয়েলিটিতে জিপিএস কোঅর্ডিনেটে এআর অবজেক্ট স্থাপন করা

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

আমরা এখানে যে সমস্ত সফটওয়্যার এবং প্রকল্প ব্যবহার করব তা বিনামূল্যে।

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

unity3d.com/

ধাপ 1: বাধা …

প্রতিবন্ধকতা…
প্রতিবন্ধকতা…

সুতরাং মোবাইল জিপিএস এবং মোবাইল কম্পাসের বর্তমান সীমাবদ্ধতার সাথে এটি করা সবচেয়ে সহজ অ্যাপ্লিকেশন নয়।

সৎ হতে বস্তুগুলি যেখানে তারা অনুমান করা হয় সেখানে প্রায় 50% সময় দেখায়। সুতরাং ফলাফলগুলি দুর্দান্ত নয়, তবে আপনি বস্তুর কাছাকাছি আসার সময় এগুলি আরও নির্ভুল হয়ে ওঠে।

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

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

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

সমস্যা হল আপনার ফোনের কম্পাস কখনই সম্পূর্ণ সঠিক নয়।

ধাপ 2: বোকা কম্পাস।

বোকা কম্পাস।
বোকা কম্পাস।
বোকা কম্পাস।
বোকা কম্পাস।

মূল সমস্যা হল যখন আপনার বস্তুগুলি ক্যামেরা থেকে অনেক দূরে রাখেন, যদি আপনার ফোনের প্রকৃত উত্তর সম্পর্কে ধারণা কয়েক ডিগ্রি বন্ধ থাকে, তাহলে দূরত্বের বস্তুগুলি অনেক দূরে দেখা যাবে।

আমি প্রায় এই উদ্যোগটি ছেড়ে দিয়েছি কিন্তু একজন বন্ধু আমাকে এই গিটহাব প্রকল্প সম্পর্কে বলেছিল:

github.com/mapbox/mapbox-ar-unity

এটি ম্যাপবক্স থেকে "বিশ্ব স্কেল" এআর করার একটি প্রচেষ্টা যেখানে জিপিএস স্থানাঙ্কগুলিতে বস্তুগুলি নোঙর করা হয় যাতে অগমেন্টেড রিয়েলিটি অভিজ্ঞতাগুলি আপনার বাড়ির একটি ছোট কক্ষের পরিবর্তে দীর্ঘ দূরত্বের বাইরে কাজ করতে পারে।

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

অন্য সমস্যাটি তারা সমাধান করার চেষ্টা করে তা হল আরকিটের সাথে ড্রিফট। একটি ছোট ঘরের মধ্যে ট্র্যাকিং ঠিক আছে কিন্তু যখন আপনার বাহিরের দূরত্বের দূরত্ব হাঁটবে তখন AR বস্তুগুলি যেখানে তারা অনুমিত হয় সেখান থেকে অনেক দূরে চলে যাবে।

ধাপ 3: অবশেষে একটি সমাধান

অবশেষে একটি সমাধান!
অবশেষে একটি সমাধান!

তাই এই ম্যাপবক্স প্রকল্পটি সত্যিকারের উত্তরের তুলনায় একটি নির্ভরযোগ্য মুখোমুখি দিকনির্দেশনা পাওয়ার একটি উপায় প্রস্তাব করেছিল, তাই যা বাকি ছিল তা কেবলমাত্র পৃথিবীর বস্তুগুলি স্থাপন করা।

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

এই প্রকল্পের একমাত্র সমস্যা হল এটি ব্যবহার করার আগে আপনাকে একটি ভাল সারিবদ্ধতা পেতে হবে।

সারিবদ্ধকরণ বলতে আমি যা বুঝি তা হল যেহেতু ম্যাপবক্স শিরোনাম গণনা করার জন্য পজিশন ডেল্টাস ব্যবহার করে, যখন আপনি প্রথমে অ্যাপটি খুলবেন এবং আপনাকে নিশ্চিত করতে হবে যে একটি স্থল সমতল সনাক্ত করা হয়েছে এবং তারপর একটি সঠিক সারিবদ্ধতা গণনা না হওয়া পর্যন্ত কিছুক্ষণের জন্য একটি সরল রেখায় হাঁটুন।

এই অর্থে ইউএক্স আরেকটি বাধা কিন্তু প্রকল্পের উন্নতিতে তারা ব্যবহারকারীর সামনে কিউব নিচে রাখার উদাহরণ দেয় যাতে একটি ভাল সারিবদ্ধতা নিশ্চিত করা যায়।

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

এছাড়াও, এটি ARkit এবং ARcore উভয়ের সাথে কাজ করা উচিত কিন্তু এই মুহুর্তে আমার কাছে কেবল একটি আইফোন আছে যাতে আমি পরীক্ষা করতে পারি।

ধাপ 4: অ্যাপকে কাজ করতে দিন

অ্যাপকে কাজ করতে দিন!
অ্যাপকে কাজ করতে দিন!

প্রথমে GitHub থেকে এই প্রকল্পটি ডাউনলোড করুন:

ফাইলটি আপনার ডেস্কটপে সংরক্ষণ করুন এবং এটি ইউনিটিতে খুলুন।

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

এখন Mapbox.com এ যান এবং আপনার যদি ইতিমধ্যেই অ্যাকাউন্ট না থাকে তবে একটি অ্যাকাউন্ট তৈরি করুন।

আপনার API কী ধরুন এবং ইউনিটিতে ফিরে যান, উপরের ম্যাপবক্স ট্যাবে ক্লিক করুন এবং কনফিগার ক্লিক করুন। সেখানে আপনার API কী আটকান।

এখন GameSparks.com এ একটি অ্যাকাউন্ট তৈরি করুন এবং একটি নতুন অ্যাপ তৈরি করতে উপরের ডানদিকে বোতামটি ক্লিক করুন।

আপনি যা চান তা কল করুন এবং আপনার API কী এবং অ্যাপ সিক্রেটটি অনুলিপি করুন। ইউনিটিতে ফিরে যান এবং শীর্ষে গেমস্পার্স ট্যাবটি খুঁজুন। কনফিগার -এ ক্লিক করুন এবং সেখানে আপনার শংসাপত্রগুলি পেস্ট করুন।

ধাপ 5: গেমস্পার্স কনফিগার করুন।

গেমস্পার্স কনফিগার করুন।
গেমস্পার্স কনফিগার করুন।

এখন অ্যাপটি কাজ করার আগে, আমাদের আমাদের ডাটাবেস কনফিগার করতে হবে।

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

প্রথমে গেমস্পার্কস ওয়েবসাইটে একটি নতুন সংগ্রহ তৈরি করুন এবং আপনি যা খুশি কল করুন।

এখন আমাদের 3 টি ইভেন্ট তৈরি করতে হবে।

অ্যাপের প্রথম যে কাজটি করতে হবে তা হল ডাটাবেসে মেসেজ অবজেক্ট লেখা।

একটি বার্তার একটি অক্ষাংশ, দ্রাঘিমাংশ এবং তারপরে বার্তার পাঠ্য থাকে।

সুতরাং কনফিগারারে যান এবং একটি নতুন ইভেন্ট যুক্ত করুন। সংক্ষিপ্ত কোডটি "SAVE_GEO_MESSAGE" করুন।

নাম এবং বর্ণনার জন্য আপনি যা চান তা রাখুন।

3 টি বৈশিষ্ট্যের জন্য সংক্ষিপ্ত কোড যোগ করুন:

"LAT" "LON"

"পাঠ্য"

প্রতিটি ডাটা টাইপকে স্ট্রিং এ সেট করুন এবং ডিফল্ট মান 0 তে সেট করুন।

ধাপ 6: চূড়ান্ত ইভেন্টগুলি যুক্ত করুন …

চূড়ান্ত ঘটনা যোগ করুন …
চূড়ান্ত ঘটনা যোগ করুন …

অ্যাপটিকে ডাটাবেস থেকে সমস্ত বার্তা লোড করতে হবে এবং অ্যাপটি শুরু হওয়ার পরে সেগুলিকে ইউনিটিতে পড়তে হবে যাতে আমরা ডাটাবেসে সংরক্ষিত একটি AR বার্তা রাখতে পারি।

অন্য একটি ইভেন্ট তৈরি করুন এবং এটিকে "LOAD_MESSAGE" বলুন

এই ইভেন্টের কোন বৈশিষ্ট্যের প্রয়োজন নেই। আবার নাম এবং বর্ণনার জন্য আপনি যা চান তা রাখুন।

অন্য ইভেন্টের জন্য একই কাজ করুন এবং এটিকে "REMOVE_MESSAGES" বলুন

এটি এমনকি কোন বৈশিষ্ট্য প্রয়োজন হয় না।

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

ধাপ 7: ক্লাউড কোড যোগ করুন।

গেমস্পার্সে কনফিগারেটর এবং ক্লাউড কোডে যান।

আমাদের তৈরি করা প্রতিটি ইভেন্টে আমাদের একটি স্ক্রিপ্ট যোগ করতে হবে।

LOAD_MESSAGE ইভেন্টে এই কোডটি যোগ করুন এবং এটি সংরক্ষণ করুন:

var messageData = Spark.runtimeCollection ("GeoMessage");

var কার্সার = messageData.find ();

var allMessages = ;

while (cursor.hasNext ()) {

var obj = cursor.next ();

মুছে দিন (obj ["_id"]);

allMessages.push (obj);

}

Spark.setScriptData ("all_Messages", allMessages); // সমস্ত ডেটা ফেরত দিন

REMOVE_MESSAGES ইভেন্টে এই কোডটি যোগ করুন:

var messageData = Spark.runtimeCollection ("GeoMessage");

messageData.remove ({});

অবশেষে SAVE_MESSAGES ইভেন্টে এটি যোগ করুন:

var geoMessageList = Spark.runtimeCollection ("GeoMessage");

var messageLat = Spark.getData ()। LAT;

var messageLon = Spark.getData ()। LON;

var messageText = Spark.getData () টেক্সট;

var currentMessage = {

"মেসল্যাট": বার্তা ল্যাট,

"মেসলন": বার্তা লন,

"messText": messageText,

};

geoMessageList.insert (currentMessage);

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

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

এই প্রকল্পটি গেমস্পার্স সার্ভারের সাথে প্রমাণীকরণের জন্য আপনার ডিভাইসের অনন্য আইডি ব্যবহার করে যাতে আপনি এখন ইউনিটিতে ফিরে যেতে পারেন এবং প্লেতে ক্লিক করতে পারেন, এবং আপনার কনসোলে "ডিভাইসটি প্রমাণীকৃত …"

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

একবার অ্যাপটি আপনার ফোনে থাকলে আপনাকে প্রথমে নিশ্চিত করতে হবে ARKit বা ARCore একটি স্থল সমতল সনাক্ত করে। এখন নিচের বাম কোণে লগ বাটনে ক্লিক করুন। কয়েক ধাপ এগিয়ে যান এবং আপনি দেখতে পাবেন "গণিত প্রান্তিককরণ" হালকা নীল রঙের। এখন UI বোতামগুলি উপস্থিত হওয়া উচিত এবং যদি আপনার ডাটাবেসে কোন বার্তা লোড হয় তবে সেগুলি বিশ্বে স্থান পাবে।

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

প্রস্তাবিত: