يقدّم هذا الدليل نظرة عامة على تطوير الألعاب باستخدام Unity لأجهزة الواقع الممتد (XR) على Android. يعمل نظام Android XR مع الأدوات والميزات المألوفة التي تتوقّعها من Unity، وبما أنّ ميزة Android XR في Unity تستند إلى OpenXR، فإنّ العديد من الميزات الموضّحة في نظرة عامة على OpenXR متاحة أيضًا في Unity.
اتّبِع هذا الدليل للتعرّف على ما يلي:
- توافق Unity مع Android XR
- أساسيات Unity XR
- تطوير التطبيقات ونشرها لأجهزة Android XR
- حِزم Unity لنظام التشغيل Android XR
- حزمة Unity OpenXR: حزمة Android XR
- إضافات Android XR لمحرك Unity
- اعتبارات حول الميزات والتوافق
- الإدخال والتفاعل
دعم Unity لنظام التشغيل Android XR
عند إنشاء تطبيقات Unity لنظام Android XR، يمكنك الاستفادة من أدوات الواقع المختلط وإمكاناته في Unity 6. ويشمل ذلك نماذج الواقع المختلط التي تستخدِم مجموعة أدوات التفاعل في الواقع المعزّز (XR) وAR Foundation ومكوّن OpenXR الإضافي لمساعدتك في البدء سريعًا. عند إنشاء تطبيقات باستخدام Unity لنظام Android XR، ننصحك باستخدام Universal Render Pipeline (URP) كمسار عرض وVulkan كأحد Graphics API. تتيح لك هذه الميزات الاستفادة من بعض ميزات الرسومات الأحدث في Unity والتي لا تتوافق إلا مع Vulkan. راجِع دليل إعداد المشروع للحصول على مزيد من المعلومات حول كيفية ضبط هذه الإعدادات.
أساسيات Unity XR
إذا كنت مبتدئًا في تطوير تطبيقات Unity أو تطبيقات الواقع المعزّز، يمكنك الرجوع إلى manual الواقع المعزّز في Unity لفهم المفاهيم الأساسية للعمليّات المعنيّة بالواقع المعزّز. يحتوي "دليل XR" على معلومات عن:
- مكوّنات إضافية لموفّري تقنية الواقع المعزّز، بما في ذلك Unity OpenXR: Android XR و"إضافات Android XR لـ Unity"
- حِزم دعم الواقع المعزّز لإضافة ميزات إضافية على مستوى التطبيق
- دليل بنية الواقع الممتد الذي يصف تكنولوجيا Unity XR والأنظمة الفرعية للواقع الممتد
- إعداد مشروع الواقع المعزّز
- إنشاء تطبيقات الواقع المعزّز وتشغيلها
- إرشادات حول رسومات الواقع المعزّز، بما في ذلك Universal Render Pipeline، وعرض مجسم، وعرض بتركيز على منطقة محدّدة من الشاشة، ومناطق عرض متعددة، وتوقيت عرض اللقطات في الواقع الافتراضي
- إرشادات حول الصوت في الواقع المعزّز، بما في ذلك إتاحة أدوات معالجة الصوت المكاني
تطوير التطبيقات ونشرها على Android
توفّر Unity مستندات مفصّلة لتطوير التطبيقات وإنشاءها ونشرها على نظام التشغيل Android، وتتناول مواضيع تشمل أذونات Android في IDE Unity وإعدادات إنشاء Android وإنشاء تطبيقك لنظام التشغيل Android وإرسال التطبيق إلى Google Play.
حِزم Unity لنظام التشغيل Android XR
تتوفّر حِزمتَان تتيحان إنشاء تطبيقات Unity لأجهزة Android XR. كلتا الحزمتَين هما مكوّنات إضافية لموفّري الواقع المعزّز، ويمكن تفعيلهما من خلال حزمة إدارة المكوّنات الإضافية للواقع المعزّز في Unity. يضيف مدير مكوّنات XR الإضافية إعدادات المشروع لإدارة مكوّنات XR الإضافية وتقديم المساعدة في تحميلها وإعدادها وإنشاء دعم لها. للسماح لتطبيقك بتنفيذ ميزات OpenXR أثناء التشغيل، يجب تفعيل هذه الميزات في المشروع من خلال مدير المكوّنات الإضافية.
تعرض هذه الصورة مثالاً على المكان الذي يمكنك فيه تفعيل مجموعات الميزات هذه من خلال أداة التعديل في Unity.
Unity OpenXR Android XR
حزمة Unity OpenXR Android XR هي مكوّن إضافي لتكنولوجيا الواقع المعزّز (XR) لإضافة ميزة Android XR إلى Unity. يقدّم مكوّن XR الإضافي هذا معظم ميزات دعم Android XR في Unity، كما يتيح استخدام ميزات Android XR على أجهزة مشاريع AR Foundation. تم تصميم AR Foundation للمطوّرين الذين يريدون إنشاء تجارب واقع معزّز أو واقع مختلط. ويقدّم واجهة لميزات الواقع المعزّز، ولكنّه لا ينفّذ أي ميزات بنفسه. توفّر حزمة Unity OpenXR لأجهزة Android XR عملية التنفيذ. للبدء باستخدام هذه الحزمة، اطّلِع على دليل الحزمة الذي يتضمّن دليل البدء.
إضافات Android XR لمحرك Unity
تُكمل إضافات Android XR لـ Unity حزمة Unity OpenXR Android XR، وتتضمّن ميزات إضافية لمساعدتك في إنشاء تجارب غامرة. ويمكن استخدامه بمفرده أو مع حزمة Unity OpenXR Android XR.
للبدء باستخدام هذه الحزمة، اتّبِع دليل إعداد المشروع أو الدليل السريع لاستيراد إضافات Android XR لمحرك Unity.
اعتبارات حول الميزات والتوافق
يصف الجدول التالي الميزات التي تتوافق مع حزمة Unity OpenXR: حزمة Android XR وحزمة "إضافات Android XR لـ Unity"، ويمكن استخدامه لتحديد الحزمة التي تحتوي على الميزات التي تحتاجها وأي اعتبارات تتعلق بالتوافق.
الميزة |
Unity OpenXR: سلسلة ميزات Android XR |
سلسلة ميزات إضافات Android XR لـ Unity |
حالات الاستخدام والسلوك المتوقّع |
---|---|---|---|
Android XR: جلسة الواقع المعزّز
|
Android XR (الإضافات): إدارة الجلسات
|
لاستخدام ميزات من أي من الحِزم، يجب تفعيل ميزة "جلسة الواقع المعزّز" لهذه الحزمة. يمكنك تفعيل كلتا مجموعتَي الميزات في الوقت نفسه، وستعالج الميزات الفردية التعارضات وفقًا لذلك. |
|
لا تنطبق |
لا تنطبق |
تُستخدَم ميزة تتبُّع الجهاز لتتبُّع موضع الجهاز واتجاه دورانه في المساحة المادية. يعالج عنصر XR Origin GameObject تلقائيًا تتبُّع الأجهزة وتحويل العناصر القابلة للتتبُّع إلى نظام إحداثيات Unity من خلال مكوّن XROrigin وتسلسل GameObject باستخدام كاميرا وTrackedPoseDriver. |
|
Android XR: كاميرا الواقع المعزّز |
لا تنطبق |
تتيح هذه الميزة تقدير الإضاءة ونقل المحتوى إلى الشاشة الكاملة. |
|
Android XR: طائرة الواقع المعزَّز |
Android XR (الإضافات): الطائرة |
هاتان الميزتَان متطابقتان، لذا استخدِم إحداهما أو الأخرى. Android XR (Extensions): تم تضمين ميزة "المستوى" ليتمكّن المطوّرون من استخدام ميزتَي "تتبُّع الأجسام" و"نقاط الربط الثابتة" في Android XR (Extensions) بدون الحاجة إلى الاعتماد على حزمة Unity OpenXR Android XR. في المستقبل، ستتم إزالة Android XR (الإضافات): الطائرة لصالح Android XR: عنصر تثبيت الواقع المعزّز. |
|
لا تنطبق |
Android XR (الإضافات): تتبُّع الأجسام |
توفّر هذه الميزة إمكانية رصد الأجسام وتتبُّعها في البيئة المادية، ويتم استخدامها مع مكتبة مرجعية للعناصر. |
|
Android XR: ميزة "الواقع المعزَّز للوجه"
|
Android XR: تتبُّع الوجه
|
تتوفّر ميزة عيون الصورة الرمزية من خلال ميزة "الواقع المعزّز للوجه" في Android XR. الوصول إلى تعابير وجه المستخدم من خلال ميزة "تتبُّع الوجه" في Android XR يمكن استخدام هاتين الميزتَين معًا إذا أردت. |
|
Android XR: ميزة "تتبُّع أشعة الواقع المعزّز"
|
لا تنطبق |
تتيح لك هذه الميزة إلقاء شعاع وحساب التقاطع بين هذا الشعاع والعناصر القابلة للتتبّع في المستوى أو العناصر القابلة للتتبّع في العمق التي يتم رصدها في البيئة المادية. |
|
Android XR: عنصر تثبيت الواقع المعزّز |
Android XR (الإضافات): الربط
|
تتيح كلتا الميزتَين استخدام نقاط الربط المكانية ونقاط الربط المستوية، ويمكنك استخدام إحدى الميزتَين أو الأخرى. بالنسبة إلى نقاط الربط الثابتة، استخدِم Android XR (الإضافات): Anchor. في المستقبل، ستتم إزالة ميزة "Android XR (الإضافات): العنصر الأساسي" وستتوفّر جميع ميزات العنصر الأساسي في "Android XR: العنصر الأساسي للواقع المعزّز". |
|
Android XR: حجب الواقع المعزَّز
|
لا تنطبق |
تسمح ميزة حجب العناصر بظهور محتوى الواقع المختلط في تطبيقك مخفيًا أو مموّهًا جزئيًا خلف الأجسام في البيئة المادية. |
|
مقاييس الأداء |
مقاييس أداء Android XR |
لا تنطبق |
استخدِم هذه الميزة للوصول إلى مقاييس الأداء لأجهزة Android XR. |
إتاحة طبقة التركيب (يجب توفُّر المكوّن الإضافي OpenXR وطبقة XR Composition Layer) |
Android XR: طبقة التركيب للعرض المباشر
|
استخدِم ميزة "دعم طبقات التركيبات" في Unity لإنشاء طبقات تركيبات أساسية (مثل الأشكال الرباعية والأسطوانية والأشكال المسقطة). Android XR: يمكن استخدام طبقة التركيب الشفاف لإنشاء طبقة شفافة باستخدام شبكة مخصّصة، وذلك من خلال القراءة من GameObject في Unity. |
|
التقديم المرتكز على البقعة المركزية للرؤية (يجب استخدام المكوّن الإضافي OpenXR)
|
تركيز العين (قديم) |
يسمح العرض المرتكز على البقعة المركزية للعين بتسريع عملية العرض من خلال خفض درجة دقة المناطق في مجال الرؤية الجانبية للمستخدم. لا تتوفّر ميزة التقديم المرتكز على البقعة المركزية للرؤية في Unity إلا للتطبيقات التي تستخدم URP وVulkan. تتيح ميزة Foveation (القديمة) في إضافات Android XR لـ Unity أيضًا استخدام BiRP وGLES. ننصحك باستخدام ميزة التقديم المرتكز على البقعة المركزية للرؤية في Unity كلما أمكن، ويُرجى العلم أنّه يُنصح باستخدام كلّ من URP وVulkan عند إنشاء تطبيقات لنظام Android XR. |
|
لا تنطبق |
Android XR: مساحة مرجعية غير محدودة |
تضبط هذه الميزة وضع مصدر التتبُّع XRInputSubsystem على غير محدود. يشير "غير محدود" إلى أنّ XRInputSubsystem يتتبّع جميع InputDevices في ما يتعلّق بنقطة تثبيت في العالم، والتي يمكن أن تتغيّر. |
|
لا تنطبق |
وضع دمج الخلفية |
تتيح لك هذه الميزة ضبط وضع دمج البيئة في الواقع المعزّز الذي يتحكّم في كيفية دمج الصور الافتراضية مع البيئة الواقعية عند تفعيل وضع "العرض المباشر". |
الإدخال والتفاعل
يتيح نظام Android XR إدخال البيانات بشكل طبيعي ومتعدد الوسائط.
بالإضافة إلى ميزة تتبُّع حركة اليد والعين، تتوفّر أيضًا أجهزة ملحقة مثل وحدات التحكّم بـ 6 درجات من الحرية وماوس ولوحة مفاتيح. ويعني ذلك أنّه من المتوقّع أن تتيح تطبيقات Android XR التفاعل باليد، ولا يمكن افتراض أنّ جميع الأجهزة ستتوفّر فيها أجهزة تحكّم.
الملفات التجارية للتفاعل
تستخدم Unity ملف التفاعل لإدارة كيفية تواصل تطبيقك المتوافق مع الواقع الممتد مع الأجهزة والمنصات المختلفة المتوافقة مع الواقع الممتد. تحدِّد هذه الملفات الشخصية المدخلات والمخرجات المتوقّعة لإعدادات الأجهزة المختلفة، ما يضمن التوافق والوظائف المتسقة على مجموعة من الأنظمة الأساسية. من خلال تفعيل ملفات التفاعل، يمكنك التأكّد من أنّ تطبيق الواقع الممتد يعمل بشكلٍ صحيح على الأجهزة المختلفة، ويحافظ على تعيين ثابت للإدخال، ويحصل على إمكانية الوصول إلى ميزات معيّنة للواقع الممتد. لإعداد ملف تفاعل:
- افتح نافذة إعدادات المشروع (القائمة: تعديل > إعدادات المشروع).
- انقر على إدارة مكوّنات إضافية لواقع افتراضي لتوسيع قسم المكوّنات الإضافية (إذا كان ذلك ضروريًا).
- اختَر OpenXR من قائمة مكوّنات XR الإضافية.
- في قسم ملفّات التفاعل، انقر على الزر + لإضافة ملف شخصي.
- اختَر الملف الشخصي المطلوب إضافته من القائمة.
التفاعل باليد
يقدّم مكوّن OpenXR Plugin المكوّن OpenXR ميزة التفاعل باليد (XR_EXT_hand_interaction
)، ويمكنك عرض
التفاعل من خلال رصد حركة العين
يقدّم ملف برمجي إضافي لـ OpenXR تفاعل نظرة العين (XR_EXT_eye_gaze_interaction
)، ويمكنك استخدام هذا التنسيق لاسترداد بيانات وضع العين (الموضع والدوران) التي تعرضها الإضافة. يمكنك الاطّلاع على مزيد من المعلومات حول تفاعل رصد العين في دليل OpenXR Input.
التفاعل مع وحدة التحكّم
يتوافق Android XR مع ملف Oculus Touch Controller Profile لأجهزة التحكّم ب6 درجات من الحرية. يقدّم مكوّن OpenXR الإضافي كلا الملفَّين الشخصيَّين.
التفاعل باستخدام الماوس
يوفّر ملف تفاعل الماوس في Android XR (XR_ANDROID_mouse_interaction
) إضافات Android XR لـ Unity. يعرض تنسيق جهاز <AndroidXRMouse>
في Unity Input
System.
التفاعل مع وضع راحة اليد
يوفّر المكوّن الإضافي OpenXR تفاعل وضع راحة اليد (XR_EXT_palm_pose
)، الذي يعرض تنسيق
<PalmPose>
ضمن نظام إدخال Unity. لا يُعدّ وضع راحة اليد بديلاً للإضافات أو الحِزم التي تُجري عملية تتبُّع اليد لحالات الاستخدام الأكثر تعقيدًا، بل يمكن استخدامه بدلاً من ذلك لوضع محتوى مرئي خاص بالتطبيق، مثل مرئيات الصورة الرمزية. تتكوّن وضعية راحة اليد من موضع راحة اليد واتجاهها.
XR Hands
تتيح لك حزمة XR Hands الوصول إلى بيانات تتبُّع اليد
(XR_EXT_hand_tracking
وXR_FB_hand_tracking_aim
) و فراهمة حزمة لتحويل بيانات مفاصل اليد من تتبُّع اليد إلى أوضاع الإدخال.
لاستخدام الميزات التي تقدّمها حزمة XR Hands، فعِّل ميزتَي Hand Tracking
Subsystem وMeta Hand Tracking Aim OpenXR.
يمكن أن تكون حزمة الأيدي في الواقع المعزّز مفيدة إذا كنت بحاجة إلى بيانات أكثر دقة عن وضع اليد أو بيانات المفاصل في اليد أو عند الحاجة إلى العمل مع إيماءات مخصّصة.
لمعرفة المزيد من التفاصيل، يُرجى الاطّلاع على مستندات Unity لإعداد ميزة XR Hands في مشروعك.
اختيار طريقة لعرض اليدين
يتيح Android XR طريقتَين لعرض اليدين: شبكة يد وعارض مُعدّ مسبقًا.
شبكة يدوية
تحتوي حزمة Android XR Unity على ميزة "شبكة اليد" التي
توفّر إمكانية الوصول إلى XR_ANDROID_hand_mesh extension
. توفّر ميزة
شبكة اليد شبكات لأيدي المستخدم. تحتوي شبكة اليد على
قمة مثلثات تمثّل هندسة اليد. يُقصد باستخدام هذه الميزة
توفير شبكة مخصّصة تمثّل الأشكال الهندسية
الحقيقية لأيدي المستخدم من أجل العروض المرئية.
نموذج مُعدّ مسبقًا لليدين في الواقع الممتد
تحتوي حزمة اليدين في الواقع المعزّز على عيّنة تُسمى أداة عرض اليدين، والتي تحتوي على يدان أيمن وأيسر تم إعدادهما بالكامل لعرض تمثيل مناسب للسياق ليدي المستخدم.
إيماءة نظام التشغيل
يتضمّن Android XR إيماءة نظام لفتح قائمة تتيح للمستخدمين الرجوع أو فتح المشغِّل أو الحصول على نظرة عامة على التطبيقات التي تعمل حاليًا. يمكن للمستخدم تفعيل قائمة النظام هذه باستخدام حركة التصغير/التكبير باستخدام إصبعَي اليد المسيطرة.
عندما يتفاعل المستخدم مع قائمة التنقّل في النظام، لن يستجيب التطبيق إلا لأحداث تتبُّع حركة الرأس. يمكن لحزمة XR Hands رصد الحالات التي ينفِّذ فيها أحد المستخدمين إجراءات معيّنة، مثل التفاعل مع قائمة التنقل في النظام هذه. سيتيح لك التحقّق من AimFlags SystemGesture وDominantHand معرفة وقت تنفيذ هذا الإجراء في النظام. لمزيد من المعلومات عن AimFlags، يُرجى الرجوع إلى مستندات Enum MetaAimFlags في Unity.
مجموعة أدوات التفاعل مع الواقع الممتد
حزمة XR Interaction Toolkit هي نظام تفاعل برمجي متقدم يستند إلى المكوّنات لإنشاء تجارب الواقع الافتراضي والواقع المعزّز. ويقدّم إطار عمل يتيح التفاعلات الثلاثية الأبعاد وتفاعلات واجهة المستخدم من أحداث إدخال Unity. وهو يتيح تنفيذ مهام التفاعل، بما في ذلك الملاحظات والآراء الملموسة والملاحظات والآراء المرئية والتنقّل.