جدول المحتويات:
- الخطوة 1: حواجز …
- الخطوة الثانية: البوصلة الغبية
- الخطوة 3: أخيرًا الحل
- الخطوة 4: لنجعل التطبيق يعمل
- الخطوة 5: تكوين GameSparks
- الخطوة 6: إضافة الأحداث النهائية …
- الخطوة 7: قم بإضافة كود السحابة
- الخطوة 8: لقد انتهينا
فيديو: وضع كائنات AR في إحداثيات GPS في الواقع المعزز: 8 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
ستنتقل هذه التعليمات إلى إنشاء تطبيق جوال لوضع كائنات AR في إحداثيات GPS مع ARkit و ARCore باستخدام Unity3D. سأوجهك خلال إعداد مشروع قمت بإنشائه باستخدام Mapbox الذي يسمح لنا بتمييز الرسائل في مواقع GPS معينة وكتابتها في قاعدة بيانات GameSparks.
جميع البرامج والمشاريع التي سنستخدمها هنا مجانية.
قم بتنزيل Unity 3D هنا إذا لم يكن لديك بالفعل:
unity3d.com/
الخطوة 1: حواجز …
لذلك ليس هذا هو أسهل تطبيق يتم إنشاؤه مع القيود الحالية لنظام تحديد المواقع العالمي (GPS) وبوصلة الهاتف المحمول.
لكي نكون صادقين ، تظهر الأشياء حيث من المفترض أن تكون حوالي 50 ٪ من الوقت. لذا فإن النتائج ليست رائعة ، لكنها تصبح أكثر دقة كلما اقتربت من الأشياء.
في كلتا الحالتين ، أعتقد أن الطريقة الأفضل للواقع المعزز المعتمد على نظام تحديد المواقع العالمي (GPS) في هذه المرحلة هي استخدام خريطة مثل pokemon go وعندما تقترب من كائن تفتح الكاميرا وترى هذا الكائن فقط أمامك مباشرةً. في المستقبل ، أود أن أقوم ببرنامج تعليمي كامل حول تطبيق أكثر بساطة من هذا القبيل.
في كلتا الحالتين ، استخدمت Mapbox من قبل وأعلم أن لديهم فئة تحويل تحتوي على وظائف لتحويل إحداثيات GPS إلى إحداثيات Unity العالمية. اعتقدت أنه يمكنني تمرير بعض إحداثيات GPS وستظهر في المكان الذي أريده. لم يعمل.
تظهر الأشياء بشكل صحيح بالنسبة لبعضها البعض لكنها لم تكن في المكان المناسب. لذلك أجريت بعض الأبحاث ووجدت أن كاميرا الوحدة الخاصة بي تحتاج إلى محاذاة الشمال الحقيقي حتى تظهر الأشياء في المكان الصحيح.
المشكلة هي أن البوصلة الموجودة في هاتفك ليست دقيقة تمامًا على الإطلاق.
الخطوة الثانية: البوصلة الغبية
المشكلة الرئيسية هي عندما تضع الأشياء بعيدًا عن الكاميرا ، إذا كانت فكرة هاتفك عن الشمال الحقيقي بعيدة حتى بضع درجات ، فإن الأشياء البعيدة ستظهر بعيدًا جدًا.
كدت أتخلى عن هذا المشروع لكن صديقًا أخبرني عن مشروع GitHub هذا:
github.com/mapbox/mapbox-ar-unity
هذه محاولة للقيام "بالمقياس العالمي" للواقع المعزز من Mapbox حيث يتم تثبيت الكائنات على إحداثيات GPS بحيث يمكن لتجارب الواقع المعزز أن تعمل بالخارج لمسافات طويلة بدلاً من داخل غرفة صغيرة في منزلك.
يستخدم مشروعهم دلتا AR Position و GPS Position deltas لحساب زاوية هي الإزاحة من كاميرا AR إلى الشمال الحقيقي. لذلك ، قم بشكل أساسي بقراءة واحدة لنظام تحديد المواقع العالمي (GPS) عندما يبدأ المستخدم التطبيق واجعله يسير في خط مستقيم ويأخذ قراءة أخرى لنظام تحديد المواقع العالمي (GPS). ثم باستخدام هاتين النقطتين ، يمكنك معرفة الاتجاه الذي كان يسير فيه هذا الشخص (بافتراض أن الكاميرا الخاصة به تشير إلى الاتجاه الذي يسير فيه). وجدوا أن هذا كان أكثر دقة من استخدام البوصلة على الهاتف.
المشكلة الأخرى التي يحاولون حلها هي الانجراف مع ARkit. التتبع على ما يرام داخل غرفة صغيرة ولكن عندما تسير في الخارج لمسافات طويلة ينتهي الأمر بالكائنات AR بالانجراف بعيدًا عن المكان الذي من المفترض أن تكون فيه.
الخطوة 3: أخيرًا الحل
لذلك قدم مشروع Mapbox هذا طريقة للحصول على اتجاه مواجه موثوق به بالنسبة إلى الشمال الحقيقي ، لذلك كل ما تبقى هو مجرد وضع الأشياء في العالم.
انتهى بي الأمر بتوسيع هذا المثال قليلاً حتى أتمكن من وضع علامة على رسالة نصية في موقع GPS معين ثم كتابة هذه المعلومات إلى قاعدة بيانات GameSparks. هذا ما سأوضح لك كيفية استخدامه.
المشكلة الوحيدة في هذا المشروع هي أنه يجب عليك الحصول على محاذاة جيدة قبل استخدامها.
ما أعنيه بالمحاذاة هو أنه نظرًا لأن Mapbox تستخدم دلتا الموضع لحساب العنوان ، عند فتح التطبيق لأول مرة وعليك التأكد من اكتشاف مستوى أرضي ثم السير في خط مستقيم لفترة من الوقت حتى يتم حساب المحاذاة المناسبة.
وبهذا المعنى ، تعد تجربة المستخدم عقبة أخرى ، ولكن في تحسينات المشروع ، تقدم مثالاً على وضع مكعبات لأسفل أمام المستخدم للمشي خلالها لضمان محاذاة جيدة.
والآن بعد أن عرفت حدود هذا المشروع ، دعني أوضح لك كيفية استخدامه حتى يتمكن الرجال من اللعب. ستحتاج في النهاية إلى إنشاء حساب mapbox وحساب gamesparks ، وكلاهما مجاني. لقد استخدمت gamesparks حتى أتمكن من حفظ إحداثيات GPS في مكان ما لأنه أثناء الاختبار ، ستتم إعادة تشغيل التطبيق وإعادة بنائه كثيرًا.
أيضًا ، يجب أن يعمل هذا مع كل من ARkit و ARcore ولكن ليس لدي سوى iPhone في الوقت الحالي ، لذا كان هذا كل ما يمكنني اختباره.
الخطوة 4: لنجعل التطبيق يعمل
أول الأشياء أولاً قم بتنزيل هذا المشروع من GitHub:
احفظ الملف على سطح المكتب وافتحه في Unity.
انتقل إلى ملف ، وقم ببناء الإعدادات ، وقم بتبديل النظام الأساسي الخاص بك إلى Android أو IOS.
انتقل الآن إلى Mapbox.com وأنشئ حسابًا إذا لم يكن لديك حساب بالفعل.
احصل على مفتاح API الخاص بك والعودة إلى الوحدة ، انقر فوق علامة التبويب Mapbox في الأعلى ، وانقر فوق تكوين. الصق مفتاح API الخاص بك هناك.
قم الآن بإنشاء حساب على موقع GameSparks.com وانقر فوق الزر الموجود أعلى اليمين لإنشاء تطبيق جديد.
أطلق عليه ما تريد وانسخ مفتاح API وسر التطبيق. ارجع إلى الوحدة وابحث عن علامة تبويب GameSparks في الأعلى. انقر فوق تكوين ولصق بيانات الاعتماد الخاصة بك هناك أيضًا.
الخطوة 5: تكوين GameSparks
الآن قبل أن يعمل التطبيق ، نحتاج إلى تكوين قاعدة البيانات الخاصة بنا.
يستخدم GameSparks noSQL لذلك نحتاج أولاً إلى إنشاء مجموعة وإضافة الأحداث التي يستخدمها تطبيقنا للقراءة والكتابة والحذف من الخادم.
قم أولاً بإنشاء مجموعة جديدة على موقع GameSparks على الويب وقم بتسميتها كما تريد.
الآن نحن بحاجة إلى إنشاء 3 أحداث.
أول شيء يحتاجه التطبيق هو كتابة كائن رسالة إلى قاعدة البيانات.
تحتوي الرسالة على خط عرض وخط طول ثم نص الرسالة.
لذا انتقل إلى أداة التهيئة وأضف حدثًا جديدًا. اجعل الرمز القصير "SAVE_GEO_MESSAGE".
ضع ما تريد للاسم والوصف.
أضف الكود المختصر لـ 3 سمات:
"LAT" "LON"
"نص"
عيّن كل نوع من أنواع البيانات إلى سلسلة وقم بتعيين القيمة الافتراضية على 0. اجعل نوع التجميع الافتراضي لكل نوع على "مستخدم في البرنامج النصي".
الخطوة 6: إضافة الأحداث النهائية …
يحتاج التطبيق أيضًا إلى تحميل جميع الرسائل من قاعدة البيانات وقراءتها في Unity عند بدء تشغيل التطبيق حتى نتمكن من وضع رسائل AR مخزنة في قاعدة البيانات.
أنشئ حدثًا آخر واسمه "LOAD_MESSAGE"
هذا الحدث لا يحتاج إلى أي سمات. ضع مرة أخرى ما تريد للاسم والوصف.
افعل الشيء نفسه لحدث آخر وسمه "REMOVE_MESSAGES"
هذا حتى لا يحتاج إلى أي سمات أيضًا.
الآن آخر شيء يتعين علينا القيام به هو إضافة بعض "الشفرة السحابية" أو رمز الخادم الجانبي الذي يتم استدعاؤه عند بدء كل حدث من تطبيقنا.
الخطوة 7: قم بإضافة كود السحابة
في GameSparks ، انتقل إلى المُكوِّن ورمز السحابة.
نحتاج إلى إضافة نص لكل حدث قمنا به للتو.
في حدث LOAD_MESSAGE أضف هذا الرمز واحفظه:
var messageData = Spark.runtimeCollection ("GeoMessage") ؛
var cursor = messageData.find () ،
var allMessages = ؛
بينما (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 (). TEXT ؛
var currentMessage = {
"messLat": messageLat ،
"messLon": messageLon،
"messText": messageText ،
};
geoMessageList.insert (currentMessage) ؛
الخطوة 8: لقد انتهينا
يستخدم هذا المشروع المعرف الفريد لجهازك للمصادقة مع خادم GameSparks حتى تتمكن الآن من العودة إلى Unity والنقر فوق تشغيل ، ويجب أن ترى في وحدة التحكم "الجهاز مصادق عليه …"
انتقل الآن إلى ملف ، وقم ببناء الإعدادات ، وانقر فوق إنشاء. إذا لم تقم مطلقًا بإنشاء تطبيق لنظام Android أو IOS ، فقد تحتاج إلى إعداد حساب تطوير مع Google أو Apple.
بمجرد أن يكون التطبيق على هاتفك ، عليك أولاً التأكد من أن ARKit أو ARCore يكتشفان طائرة أرضية. الآن انقر فوق زر السجل في الزاوية اليسرى السفلية. المضي قدمًا بضع خطوات وسترى "محاذاة محسوبة" تظهر باللون الأزرق الفاتح. الآن يجب أن تظهر أزرار واجهة المستخدم وإذا تم تحميل أي رسائل في قاعدة البيانات الخاصة بك فسيتم وضعها في العالم.
لوضع علامة على رسالة GPS AR جديدة في مكان ما ، انتقل إلى الموقع الذي تريد أن تكون الرسالة فيه وانقر فوق رمز الرسالة في أعلى يمين الشاشة. اكتب أي رسالة تريدها وانقر فوق زر الدبوس!
موصى به:
عزز ذاكرتك مع الواقع المعزز قصر العقل: 8 خطوات
عزز ذاكرتك مع الواقع المعزز قصر العقل: استخدم أبطال الذاكرة استخدام قصور العقل ، كما هو الحال في شيرلوك هولمز ، لتذكر الكثير من المعلومات مثل ترتيب البطاقات في مجموعة أوراق اللعب العشوائية. قصر العقل أو طريقة الموقع هي تقنية للذاكرة حيث تكون فن الإستذكار البصري
الواقع المعزز للعتاد الهاتف: 7 خطوات
الواقع المعزز للعتاد الهاتف: رخيص ، سهل ، رائع
الواقع المعزز Vuforia 7 اكتشاف الطائرة الأرضية: 8 خطوات
الواقع المعزز Vuforia 7 Ground Plane Detection: الواقع المعزز لـ Vuforia SDK لـ Unity 3D يستخدم ARCore و ARKit لاكتشاف الطائرات الأرضية في الواقع المعزز. سيستخدم البرنامج التعليمي اليوم تكاملهم الأصلي في Unity لإنشاء تطبيق AR لنظام Android أو IOS. سوف تسقط سيارة من السماء على الجرون
CityCoaster - قم ببناء قاعدة الواقع المعزز الخاصة بك لعملك (TfCD): 6 خطوات (بالصور)
CityCoaster - قم ببناء قاعدة الواقع المعزز الخاصة بك لعملك (TfCD): مدينة تحت فنجانك! CityCoaster هو مشروع ولد التفكير في منتج لمطار روتردام لاهاي ، والذي يمكن أن يعبر عن هوية المدينة ، ويسلي عملاء منطقة الصالة بالواقع المعزز. في بيئة مثل
عرض منتج الواقع المعزز (TfCD): 11 خطوة (بالصور)
عرض منتجات الواقع المعزز (TfCD): أصبح بيع المنتجات أثناء الرحلة أكثر شيوعًا في الوقت الحاضر. ومع ذلك ، فإن المعلومات الأولى والوحيدة تقريبًا التي يراها الراكب (المشتري المحتمل) على متن الطائرة هي كتيب مطبوع. سيُظهر هذا الدليل طريقة للابتكار على الهواء