جدول المحتويات:
- الخطوة 1: ابدأ مشروع جديد
- الخطوة 2: لنقم بإعداد Vuforia
- الخطوة 3: إضافة نص جديد
- الخطوة 4: دعنا نضيف السيارة
- الخطوة الخامسة: ضع السيارة في السماء
- الخطوة السادسة: أبواب لامبو
- الخطوة السابعة: تشغيل الفيديو في الواقع المعزز
- الخطوة 8: ضع التطبيق على هاتفك
فيديو: الواقع المعزز Vuforia 7 اكتشاف الطائرة الأرضية: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
يستخدم الواقع المعزز SDK لـ Vuforia لـ Unity 3D ARCore و ARKit لاكتشاف الطائرات الأرضية في AR. سيستخدم البرنامج التعليمي اليوم تكاملهم الأصلي في Unity لإنشاء تطبيق AR لنظام Android أو IOS. سيكون لدينا سيارة تسقط من السماء على الأرض ، وستفتح أبوابها تلقائيًا عندما نقترب. سننتقل أيضًا إلى تصوير الفيديو بالواقع المعزز. للمتابعة ، ستحتاج إلى تثبيت Unity 3D على جهاز الكمبيوتر الخاص بك (مجاني). هذه التعليمات للمبتدئين تمامًا ، لذا سنتناول كل شيء بالتفصيل!
أفضل جزء في Vuforia's SLAM هو مقدار أجهزة IOS و Android التي يدعمها. يمكن العثور على قائمة كاملة بالأجهزة هنا:
library.vuforia.com/articles/Solution/grou…
الخطوة 1: ابدأ مشروع جديد
قم بتنزيل Unity 3D من هنا إذا لم يكن لديك بالفعل:
تأكد من تثبيت دعم Vuforia Augmented Reality و Android أو IOS اعتمادًا على الجهاز الذي لديك.
افتح Unity وابدأ مشروع Unity جديدًا ، أطلق عليه ما تريد.
أولاً ، دعنا نخرج التطبيق الذي تم إعداده للإنشاء حتى لا ننسى. لذا ، احفظ المشهد وأطلق عليه اسم "رئيسي".
انتقل إلى ملف ، وقم ببناء الإعدادات ، وقم بتبديل نظام التصميم الأساسي الخاص بك إلى Android أو IOS. انتقل إلى إعدادات XR في إعدادات المشغل وتحقق من Vuforia Augmented Reality Supported.
إذا كنت تستخدم نظام Android ، فلن تضطر إلى القيام بأي شيء آخر ، ولكن على IOS ، انتقل إلى الإعدادات الأخرى وتأكد من إدخال شيء لمعرف الحزمة الخاص بك. استخدم التنسيق "com. YourCompanyName. YourAppName."
ضع أي شيء لوصف استخدام الكاميرا وقم بتغيير إصدار الإصدار الأدنى المستهدف إلى 9.0 على الأقل.
أغلق ذلك والآن دعنا نجهز كل شيء آخر.
الخطوة 2: لنقم بإعداد Vuforia
الآن دعنا نجهز كل شيء.
انتقل إلى gameobject في القائمة العلوية وانقر فوق ARCamera. الآن احذف الكاميرا الرئيسية من المشهد الخاص بك.
حدد ARCamera وعلى الجانب الأيمن في المفتش ، انقر فوق فتح تكوين Vuforia. انقر فوق مجموعة مجموعات البيانات وقم بإلغاء تحديد كل شيء لأننا لا نستخدم أي أهداف للصور هنا.
انقر فوق تعقب الجهاز وانقر فوق تعقب وضع الجهاز. تغيير التتبع من التناوب إلى الموضعي.
عد الآن إلى علامة تبويب كائن اللعبة وانقر فوق Vuforia و Ground Plane و Plane finder. هذا يضم النصوص التي تجد الطائرة الأرضية.
آخر شيء نحتاجه هو مرحلة الطائرة الأرضية ، لذا انتقل إلى كائن اللعبة مرة أخرى في القائمة العلوية ، وانقر فوق Vuforia ، و Ground Plane ، واختر Ground Plane Stage. الآن سيظهر أي شيء نتحدث عنه في الواقع المعزز.
الخطوة 3: إضافة نص جديد
السلوك الافتراضي لاكتشاف مستوى الأرض هذا هو وضع كائن جديد في كل مرة تضغط فيها على الشاشة. ما نريده هو مجرد تغيير موضع الكائن في كل مرة تضغط فيها على الشاشة. لذا انقر بزر الماوس الأيمن في مجلد الأصول وأنشئ برنامج نصي C # جديد. أطلق عليه اسم "DeployStageOnce" واستبدل كل شيء بهذا الرمز:
باستخدام النظام ؛
باستخدام UnityEngine ؛ باستخدام فوفوريا فئة عامة DeployStageOnce: MonoBehaviour {public GameObject AnchorStage؛ الموضع الخاص _deviceTracker _deviceTracker ؛ GameObject الخاص _previousAnchor ؛ بداية فارغة عامة () {if (AnchorStage == null) {Debug. Log ("يجب تحديد AnchorStage") ؛ إرجاع؛ } AnchorStage. SetActive (خطأ) ، } public void Awake () {VuforiaARController. Instance. RegisterVuforiaStartedCallback (OnVuforiaStarted)؛ } public void OnDestroy () {VuforiaARController. Instance. UnregisterVuforiaStartedCallback (OnVuforiaStarted)؛ } الفراغ الخاص OnVuforiaStarted () {_deviceTracker = TrackerManager. Instance. GetTracker ()؛ } OnInteractiveHitTest العام باطل (نتيجة HitTestResult) {if (result == null || AnchorStage == null) {Debug. LogWarning ("اختبار النتيجة غير صالح أو لم يتم تعيين AnchorStage") ؛ إرجاع؛ } var anchor = _deviceTracker. CreatePlaneAnchor (Guid. NewGuid (). ToString () ، نتيجة) ؛ إذا (anchor! = null) {AnchorStage.transform.parent = anchor.transform؛ AnchorStage.transform.localPosition = Vector3.zero ، AnchorStage.transform.localRotation = Quaternion.identity ؛ AnchorStage. SetActive (صحيح) ، } if (_previousAnchor! = null) {Destroy (_previousAnchor)؛ } _previousAnchor = مرساة ؛ }}
للتأكد من استخدام هذا البرنامج النصي ، نحتاج إلى استدعاء وظيفة OnInteractiveHitTest () ، لذا ارجع إلى الوحدة وانقر فوق كائن لعبة مكتشف الطائرة. قم بتغيير الوضع من تلقائي إلى تفاعلي. اسحب النص الذي أنشأناه للتو على كائن لعبة مكتشف الطائرة. قم بإزالة البرنامج النصي ContentPositioningBehavior. سترى مكانًا لكائن لعبة في البرنامج النصي DeployStageOnce ، اسحب أداة العثور على الطائرة إلى هناك ، وابحث عن هذا البرنامج النصي ، اختر وظيفة OnInteractiveHitTest من أعلى القائمة. الآن سيتم استدعاء وظيفتنا كلما نقر المستخدم على الشاشة!
الخطوة 4: دعنا نضيف السيارة
قم بتنزيل نموذج السيارة ثلاثي الأبعاد المجاني هذا من هنا (تأكد من الحصول على إصدار obj.):
www.turbosquid.com/3d-models/max-exterior-…
أيضًا ، قم بتنزيل هذا الصوت لأننا سنقوم بتشغيله عندما تصطدم السيارة بالأرض:
freesound.org/people/PaulMorek/sounds/1967 …
قم بفك ضغط هذين الملفين واسحبهما إلى مجلد الأصول.
انقر فوق السيارة وانظر إلى اليمين ، وقم بتغيير استخدام المواد المضمنة لاستخدام المواد الخارجية (القديمة) من القائمة المنسدلة في الأعلى. الآن سنتمكن من تغيير لون جميع المواد الموجودة على السيارة.
اسحب السيارة إلى مرحلة الطائرة الأرضية الخاصة بك مما يجعلها طفلة. قم بتغيير المقياس إلى 0.035 في x و y و z.
انتقل الآن من خلال كل من كائنات لعبة الأطفال الخاصة بالسيارات وقم بتغيير موادها إلى أي لون تريده.
أضف مكونًا صلبًا للجسم إلى كائن لعبة الجذر في السيارة وأضف أيضًا مصادم الصندوق ، وقم بتوسيعه بحيث يغطي السيارة بأكملها. أضف أيضًا مصادمًا صندوقيًا إلى مرحلة مستوى الأرض وقم بتوسيع نطاقه بحيث يكون أعرض بضع مرات من مرحلة مستوى الأرض. بهذه الطريقة يمكننا إسقاط السيارة من السماء وستصطدم بالأرض باستخدام محرك الفيزياء المدمج في الوحدة.
الخطوة الخامسة: ضع السيارة في السماء
أضف مكوّن مصدر صوتي إلى كائن لعبة جذر السيارة ، واسحب صوت تحطم السيارة إلى مكان مقطع الصوت.
نحتاج الآن إلى عمل نص من شأنه أن يضع السيارة في الهواء عندما يضغط المستخدم على الشاشة ثم يقوم بتشغيل صوت الاصطدام عندما تصطدم السيارة بالأرض. لذلك ، انقر بزر الماوس الأيمن في مجلد الأصول وأنشئ برنامج نصي C # جديدًا وأطلق عليه اسم "CarController".
استبدل كل الكود هناك بهذا:
باستخدام System. Collections.
باستخدام System. Collections. Generic ؛ باستخدام UnityEngine ؛ فئة عامة CarController: MonoBehaviour {منطقي خاص soundPlayed = false؛ // يتم استدعاء التحديث مرة واحدة لكل إطار باطل Update () {if (! soundPlayed && transform.localPosition.y <.05f) {soundPlayed = true؛ StartCoroutine (DelayPlaySound ()) ، }} MoveCar () الفراغ العام {transform.localPosition + = new Vector3 (0، 10، 0)؛ transform.eulerAngles + = Vector3 جديد (5، 20، 5) ؛ soundPlayed = خطأ ؛ } IEnumerator DelayPlaySound () {return return new WaitForSeconds (.2f)؛ GetComponent (). Play () ، }}
أضف وظيفة MoveCar إلى حدث OnInteractiveHitTest كما في الصورة أعلاه. الآن سيتم الاتصال به عندما ينقر المستخدم على الشاشة.
الخطوة السادسة: أبواب لامبو
لذلك إذا قمت بتوسيع كائن لعبة السيارة ووجدت الأبواب ، ستلاحظ أن كلا البابين عبارة عن شبكة واحدة. إذا أردنا فتح الأبواب ، فإن خيارنا الوحيد هو أبواب Lambo التي تفتح عموديًا. لإنجاز هذا العمل ، نحتاج أولاً إلى تغيير النقطة المحورية الخاصة بهم.
اصنع كائن لعبة فارغًا يكون طفلًا للسيارة. اسحب الأبواب للداخل واجعلهم طفلين في كائن اللعبة الجديد هذا. انقل كائن اللعبة الأصل إلى حيث يجب أن تكون النقطة المحورية ، بواسطة مفصلات الباب. الآن حرك أبواب الطفل إلى مكانها. الآن عندما نقوم بتدوير باب الوالد ، تكون النقطة المحورية في المكان الصحيح.
سنقوم بعمل نص يفتح الأبواب عندما تقترب من السيارة ولكن قبل أن نفعل ذلك نحتاج إلى طريقة "لإطلاق" الحدث. أضف مصادم صندوق إلى كائن لعبة الوالدين في الباب وقم بتوسيع نطاقه بحيث يذهب قليلاً فوق السيارة في كلا الاتجاهين. تحقق من "isTrigger". أضف الآن مصادم الصندوق إلى الكاميرا الرئيسية وقم بتوسيعه بشكل مناسب. تحقق أيضًا من "isTrigger". أضف مكون جسم صلب للكاميرا الخاصة بك وقم بإلغاء تحديد "useGravity". مع تحديد الكاميرا الخاصة بك ، قم بتغيير علامتها إلى "MainCamera" في الجزء العلوي من المفتش.
أضف نصًا جديدًا يسمى "LamboDoorBehavior" وأضف الكود أدناه. اسحب النص إلى والد بابك.
باستخدام System. Collections.
باستخدام System. Collections. Generic ؛ باستخدام UnityEngine ؛ فئة عامة LamboDoorBehavior: MonoBehaviour {private floaturrAngle = 0؛ الطفو الخاص المطلوب الزاوية = 0 ؛ // يتم استدعاء التحديث مرة واحدة لكل إطار باطل Update () {currentAngle = Mathf. LerpAngle (urrAngle، WantAngle، Time.deltaTime * 3f)؛ convert.localEulerAngles = Vector3 جديد (CurrAngle، 0، 0) ؛ } OpenDoors العامة الفارغة () {requiredAngle = 60f؛ } الفراغ العام CloseDoors () {مطلوبAngle = 0 ؛ } void OnTriggerEnter (Collider col) {if (col. CompareTag ("MainCamera")) {OpenDoors ()؛ }} void OnTriggerExit (Collider col) {if (col. CompareTag ("MainCamera")) {CloseDoors ()؛ }}}
سيؤدي هذا النص إلى فتح أبوابك ببطء عندما تقترب منها في AR باستخدام وظيفة Lerp () في الوحدة التي تقحم بين نقطتين (أو في هذه الحالة زاويتين).
الخطوة السابعة: تشغيل الفيديو في الواقع المعزز
آخر شيء يتعين علينا القيام به هو تشغيل الفيديو بالواقع المعزز.
انقر بزر الماوس الأيمن على أي كائن لعبة يكون طفلًا لسيارتك وأنشئ كائنًا ثلاثي الأبعاد ، رباعي. سيؤدي ذلك إلى التأكد من أن السيارة الرباعية هي طفل لسيارتك. ضع هذه الرباعية وقم بتغيير حجمها بحيث تناسبها داخل اندفاعة سيارتك ويبدو أنها من المفترض أن تكون هناك. هذا ما سنقوم بتشغيل الفيديو عليه.
أضف مكون مشغل فيديو إلى رباعي الخاص بك. قم بتغيير المصدر إلى URL وابحث عن ارتباط ثابت لملف. MP4 أو اسحب ملف فيديو إلى مجلد الأصول ثم اسحب هذا المقطع إلى الفتحة الفارغة. إذا كنت ترغب في دفق الفيديو من عنوان URL ، فإن Instragram يعد مصدرًا رائعًا. انقر بزر الماوس الأيمن فوق أي فيديو Instagram في Google Chrome وانقر فوق فحص. ابحث عن div الذي يحتوي على الفيديو وانسخ الرابط من هناك (لدي هذه الطريقة في الصورة أعلاه).
تأكد من التحقق من الحلقة إذا كنت تريد تشغيلها أكثر من مرة. أضف مكون مصدر صوت إلى كائن اللعبة هذا وقم بتغيير مصدر الإخراج إلى مصدر الصوت في مشغل الفيديو. اسحب مصدر الصوت الذي تم إنشاؤه حديثًا إلى تلك الفتحة.
أخيرا انتهينا!
الخطوة 8: ضع التطبيق على هاتفك
إذا كنت تقوم بالبناء لنظام Android ، فيمكنك فقط الانتقال إلى ملف والضغط على الإنشاء والتشغيل مع توصيل هاتفك.
إذا كنت تستخدم جهاز iPhone أو iPad ، فتأكد من تنزيل Xcode من متجر التطبيقات. أيضًا ، قم بالتسجيل للحصول على حساب مطور Apple مجاني من www.apple.developer.com. اذهب إلى الملف واضغط على البناء. افتح الملف الذي تم إنشاؤه من Xcode وقم بتوصيل هاتفك. اختر فريق التطوير الخاص بك واضغط على زر التشغيل.
قد تضطر إلى تحريك الكاميرا قليلاً ولكن امنحها ثانية وانقر على الشاشة وسترى سيارتك تسقط من السماء على الأرض! الآن يمكنك المشي في الداخل ومشاهدة تشغيل الفيديو الخاص بك في لوحة القيادة!
استمتع واسمحوا لي أن أعرف إذا كان لديك أي أسئلة في التعليقات!
موصى به:
عزز ذاكرتك مع الواقع المعزز قصر العقل: 8 خطوات
عزز ذاكرتك مع الواقع المعزز قصر العقل: استخدم أبطال الذاكرة استخدام قصور العقل ، كما هو الحال في شيرلوك هولمز ، لتذكر الكثير من المعلومات مثل ترتيب البطاقات في مجموعة أوراق اللعب العشوائية. قصر العقل أو طريقة الموقع هي تقنية للذاكرة حيث تكون فن الإستذكار البصري
الواقع المعزز للعتاد الهاتف: 7 خطوات
الواقع المعزز للعتاد الهاتف: رخيص ، سهل ، رائع
الواقع المعزز (AR) لـ Dragonboard410c أو Dragonboard820c باستخدام OpenCV و Python 3.5: 4 خطوات
الواقع المعزز (AR) لـ Dragonboard410c أو Dragonboard820c باستخدام OpenCV و Python 3.5: توضح هذه التعليمات كيفية تثبيت OpenCV و Python 3.5 والاعتماديات لـ Python 3.5 لتشغيل تطبيق الواقع المعزز
تطبيق الواقع المعزز للمبتدئين: 8 خطوات
تطبيق الواقع المعزز للمبتدئين: سيوضح لك هذا البرنامج التعليمي كيفية إنشاء تطبيق الواقع المعزز للمبتدئين. سنستخدم Unity3D و Vuforia للكشف عن الطائرة الأرضية لإنشاء تطبيق AR بدون علامة لنظام Android أو IOS. سنستمر في إضافة نموذج ثلاثي الأبعاد إلى Unity ونقله
نظارات الواقع المعزز الذكية DIY باستخدام Arduino: 7 خطوات
نظارات الواقع المعزز الذكية DIY باستخدام Arduino: نظرًا لأن التكنولوجيا تنمو بسرعة وتتكامل مع جميع جوانب حياة الناس ، فقد حاول المصممون والمطورون تقديم تجربة أكثر إمتاعًا للتكنولوجيا للناس. أحد اتجاهات التكنولوجيا التي تهدف إلى جعل الحياة أسهل هو ارتداء