المستوى 3

تصميم التفاعل في الواقع الافتراضي — المستوى الثالث: متقدم

تابع الدورة — مجاناًتكوين مُؤطَّر — مدفوعقراءة وتمارين مجاناً. للمرافقة (ورشة / ماستركلاس)، انتقل إلى الصيغة المؤطَّرة.
ملخص: تأخذ هذه الدورة المتقدمة الطلاب إلى إنتاج الواقع الافتراضي الاحترافي والمعرضي. على مدار 8 وحدات، يتقن الطلاب معمارية Unity XRI، الواقع الافتراضي متعدد المستخدمين مع Photon Fusion، تحسين أداء GPU، الذكاء الاصطناعي المكاني، الإتاحة، والتقييم المتقدم (IPQ + ESM في الجلسة). مشروع الختام هو تجربة واقع افتراضي جاهزة للمعرض مُختبرة بـ SUS + IPQ من ≥5 مستخدمين. الخطوط العامة: معمارية Unity XRI ← واقع افتراضي متعدد المستخدمين ← تحسين GPU ← ذكاء اصطناعي مكاني ← إتاحة ← تقييم IPQ وESM ← جاهزية الإنتاج ← تحضير المعرض.

أهداف التعلم

في نهاية هذه الدورة، سيتمكن الطلاب من:

  1. بناء (بلوم: الإنشاء) معمارية تفاعل Unity XRI (XR Origin، محاورات، قابلية تفاعل، مدير التفاعل)
  2. تنفيذ (الإنشاء) تجربة واقع افتراضي متعدد المستخدمين في الوقت الفعلي مع Photon Fusion (NetworkObject، RPC، VoiceConnection)
  3. تشخيص وتحسين (التحليل/التقييم) أداء GPU للواقع الافتراضي (استدعاءات الرسم، LOD، التصيير الحؤولي، Frame Debugger)
  4. دمج (الإنشاء) مكونات ذكاء اصطناعي مكاني: فهم المشهد، شخصيات LLM، محتوى توليدي
  5. تدقيق (التقييم) إتاحة تجربة الواقع الافتراضي باستخدام قائمة تحقق منظمة
  6. تقييم (التقييم) الحضور والانغماس بـ IPQ (Schubert 2001) وأسئلة ESM في الجلسة
  7. إنتاج (الإنشاء) تجربة جاهزة للمعرض مع توثيق للمشغّل والوساطة

الوحدة 1 — معمارية Unity XRI (2.5 ساعة)

المفهوم

حزمة تفاعل XR في Unity (XRI — XR Interaction Toolkit) هي الإطار المعياري في Unity لتفاعلات الواقع الافتراضي/المعزز. تفصل المسؤوليات بين ثلاثة مكونات:

التسلسل الهرمي الكامل لـ XRI:

XR Origin (Camera rig) ├── Camera Offset │ └── Main Camera (تتبع الرأس) ├── وحدة التحكم اليسرى │ ├── XR Ray Interactor (تفاعل بعيد) │ ├── XR Direct Interactor (تفاعل قريب) │ └── XR Interactor Line Visual └── وحدة التحكم اليمنى ├── XR Ray Interactor ├── XR Direct Interactor └── XR Interactor Line Visual

أنواع XR Interactable:

المكوّنالدورالاستخدام
XR Grab Interactableقابل للإمساك بوحدات التحكمأشياء التلاعب، الأدوات
XR Simple Interactableقابل للنقر دون إمساكأزرار، مشغلات، مناطق
XR Socket Interactorيستقبل جسمًا ممسوكًامخزون، لغز، تجميع

تكوين الإمساك:

التمرين المعملي 1.1 — مشهد XRI كامل

الخطوات:

  1. أنشئ مشروع Unity جديد (URP، Unity 2022.x LTS)
  2. استورد XR Interaction Toolkit (Package Manager → Unity Registry)
  3. أضف XR Origin (Room Scale) إلى المشهد
  4. كوّن وحدتَي التحكم اليسرى واليمنى مع Ray Interactor + Direct Interactor
  5. أنشئ 5 أشياء: 3 Grab Interactables + 1 Simple Interactable (زر) + 1 Socket Interactor
  6. اختبر في وضع التشغيل مع محاكي جهاز XR (بدون خوذة)

تمرين مصغر: أضف زر واجهة مستخدم في مساحة العالم (3D Canvas، World Space) يغيّر لون جميع الأشياء عند النقر. استخدم Unity Events على XR Simple Interactable.


الوحدة 2 — واقع افتراضي متعدد المستخدمين مع Photon Fusion (3 ساعات)

المفهوم

يتطلب الواقع الافتراضي متعدد المستخدمين تكرارًا شبكيًا للموضع والاتجاه والحالة في الوقت الفعلي.

Photon Fusion (خليفة PUN2) هو أكثر SDK Unity استخدامًا للواقع الافتراضي الشبكي. المفاهيم الرئيسية:

تكوين PhotonAppSettings:

  1. أنشئ معرّف تطبيق Fusion على https://dashboard.photonengine.com/
  2. في Unity: Photon → Realtime → PhotonServerSettings → الصق معرّف التطبيق
  3. أنشئ كيانًا مع NetworkRunner (Add Peer Mode: Host)
  4. أضف NetworkObject على كل جسم يجب مزامنته

جسم مشترك قابل للإمساك (مثال): `csharp using Fusion; using UnityEngine; using UnityEngine.XR.Interaction.Toolkit;

public class SharedObject : NetworkBehaviour { [Networked] public bool IsGrabbed { get; set; } [Networked] public NetworkId GrabbedByPlayer { get; set; }

private XRGrabInteractable _grab;

public override void Spawned() { _grab = GetComponent<XRGrabInteractable>(); _grab.selectEntered.AddListener(OnGrabbed); _grab.selectExited.AddListener(OnReleased); }

private void OnGrabbed(SelectEnterEventArgs args) { RPC_Grab(true, Runner.LocalPlayer); }

private void OnReleased(SelectExitEventArgs args) { RPC_Grab(false, default); }

[Rpc(RpcSources.InputAuthority, RpcTargets.All)] public void RPC_Grab(bool grabbed, PlayerRef player) { IsGrabbed = grabbed; GrabbedByPlayer = player.IsValid ? Runner.GetPlayerObject(player).Id : default; } } `

أفاتار متعدد المستخدمين: كل لاعب يحتاج نموذجًا أوليًا مع NetworkObject + NetworkTransform على الرأس ووحدتَي التحكم. يجب أن يكون الأفاتار المحلي غير مرئي للاعب المحلي (تعطيل MeshRenderers)، لكن مرئيًا للآخرين.

التمرين المعملي 2.1 — جلسة متعددة المستخدمين

الخطوات:

  1. كوّن Photon Fusion (معرّف التطبيق، NetworkRunner)
  2. أنشئ غرفة مشتركة مع 4 أشياء قابلة للإمساك
  3. اختبر مع نسختَين من Unity (أو حاسوب ثانٍ على الشبكة ذاتها)
  4. تحقق: هل تتزامن الأشياء بشكل صحيح؟ هل يوجد تأخر مرئي؟

تمرين مصغر: نفّذ RPC يجعل جسمًا يغيّر لونه عند إمساكه بلاعب، ويعود إلى لونه الأصلي عند الإفراج عنه.


الوحدة 3 — تحسين GPU للواقع الافتراضي (2.5 ساعة)

المفهوم

يتطلب الواقع الافتراضي الحفاظ على معدل إطارات مستقر عند 90 fps أو أعلى لتجنب دوار الحركة. على عكس ألعاب سطح المكتب، لا مجال للتسوية.

أهداف الأداء لـ Quest 3 (GPU مدمج):

المقياسالهدفالعتبة
استدعاءات الرسم (Draw calls)< 100< 150 حد مطلق
المضلعات (Polygons)< 500,000 (رؤوس)< 750k حد مطلق
وقت إطار GPU< 8ms (90fps)< 11ms (90fps)
ذاكرة RAM< 3 GB< 4 GB حد مطلق
حجم الملمس (Texture)1024×1024 كحد أقصى (جوال)2048×2048 حد مطلق

أدوات التحسين:

الأداةالغرضكيفية الوصول
Unity Profilerتحليل عام (CPU، GPU، ذاكرة)Window → Analysis → Profiler
Frame Debuggerتفصيل استدعاء رسم بعد آخرWindow → Analysis → Frame Debugger
Meta Quest Developer Hubمراقبة الأداء على الجهازhttps://developer.oculus.com/downloads/
Render Pipeline Statsعرض سريع لاستدعاءات الرسم/المثلثاتزر Stats في عرض اللعبة

تقنيات التحسين:

التقنيةالكسبالتطبيق
Static Batchingتقليل استدعاءات الرسم للأشياء الثابتةعلّم الأشياء بـ"Static" في المفتش
GPU Instancingتصيير أشياء متطابقة في استدعاء واحدالمادة → Enable GPU Instancing
LOD Groupتقليل عدد المضلعات عن بُعدإضافة مكوّن LOD Group
Occlusion Cullingعدم تصيير الأشياء غير المرئيةWindow → Rendering → Occlusion Culling
الإضاءة المخبوزة (Baked lighting)تحسيب مسبق للأضواء (بدون تكلفة وقت فعلي)Lighting → Baked
ضغط الملمس (Texture compression)تقليل الذاكرة وعرض النطاقTexture Settings → ASTC (Quest)
التصيير الحؤولي (Foveated rendering)دقة عالية فقط حيث تنظر العينOculus SDK: OculusSettings → FoveatedRendering

مثال على شجرة LOD Group:

MyObject (LOD Group) ├── LOD0 — 5,000 مضلع (مسافة 0–10م) ├── LOD1 — 1,500 مضلع (مسافة 10–25م) ├── LOD2 — 300 مضلع (مسافة 25–50م) └── LOD3 — محذوف (مسافة > 50م)

التمرين المعملي 3.1 — تحليل الأداء

الخطوات:

  1. افتح مشروع واقع افتراضي في Unity مع ≥ 5 أشياء في المشهد
  2. افتح Frame Debugger: حدد أكلف 3 استدعاءات رسم
  3. طبّق Static Batching على جميع الأشياء الثابتة
  4. فعّل GPU Instancing على المادة الأكثر تكرارًا
  5. قارن استدعاءات الرسم قبل/بعد: احفظ لقطة شاشة لكل حالة
  6. أضف LOD Group للجسم الأكثر تعقيدًا (3 مستويات LOD)

تمرين مصغر: تجربة الواقع الافتراضي لديك بها 180 استدعاء رسم. بعد Static Batching لديك 110. بعد GPU Instancing لديك 75. هل هذا كافٍ لـ Quest 3؟ ما التحسين التالي الذي ستطبقه؟


الوحدة 4 — الذكاء الاصطناعي المكاني (2.5 ساعة)

المفهوم

يجمع الذكاء الاصطناعي المكاني بين التعلم الآلي والفهم المكاني لإنشاء بيئات واقع افتراضي تتكيف مع الفضاء الجسدي الحقيقي وتدمج وكلاء افتراضيين أذكياء.

ثلاثة ركائز للذكاء الاصطناعي المكاني في الواقع الافتراضي:

  1. فهم المشهد (Scene understanding)
  1. شخصيات الذكاء الاصطناعي (AI NPCs) مع LLM
  1. المحتوى التوليدي (Generative content)

فهم مشهد Quest 3 (Meta SDK): `csharp using Meta.XR.MRUtilityKit;

public class SceneManager : MonoBehaviour { [SerializeField] private MRUK mruk;

private void Start() { mruk.LoadSceneFromDevice(); mruk.RoomCreatedEvent.AddListener(OnRoomLoaded); }

private void OnRoomLoaded(MRUKRoom room) { // احصل على جميع المستويات المكتشفة (جدران، أرضية، سقف) var planes = room.GetRoomObjects(MRUKAnchor.SceneLabels.WALL_FACE); foreach (var plane in planes) { Debug.Log($"جدار مكتشف: {plane.transform.position}"); } } } `

التمرين المعملي 4.1 — نموذج أولي لشخصية ذكاء اصطناعي

الخطوات:

  1. أنشئ مشهد واقع افتراضي في Unity مع شخصية (Humanoid + Animator)
  2. أضف مكوّن ميكروفون (Unity Microphone API)
  3. اربط بـ OpenAI Whisper API للنسخ
  4. اربط بـ OpenAI GPT-3.5 أو Claude API للرد (الدور: "أنت مرشد في هذا المتحف الافتراضي")
  5. استخدم API تحويل النص إلى كلام (ElevenLabs أو Azure) للنطق بالرد
  6. اختبر بـ 3 أسئلة مختلفة — هل تبقى الشخصية متسقة؟

تمرين مصغر: ما المخاطر التي تنطوي عليها شخصية ذكاء اصطناعي في تجربة واقع افتراضي عامة؟ أذكر 3 على الأقل (هلوسات، محتوى غير لائق، تحيّز) وحلًا تخفيفيًا ملموسًا لكل منها.


الوحدة 5 — إتاحة الواقع الافتراضي (2.5 ساعة)

المفهوم

الإتاحة في الواقع الافتراضي أكثر أهمية مما هي عليه في أي وسيط آخر لأن الانغماس يمكن أن يُعظّم تجربة الإقصاء للمستخدمين غير المستوعَبين.

4 فئات إتاحة في الواقع الافتراضي:

1. الراحة الشاملة (Universal Comfort)

2. إتاحة البصر (Visual Accessibility)

3. إتاحة السمع (Auditory Accessibility)

4. إتاحة الحركة (Motor Accessibility)

الأدوات والمراجع:

التمرين المعملي 5.1 — تدقيق الإتاحة

الخطوات:

  1. طبّق قائمة التحقق على مشروعك الحالي (جميع الفئات الأربع)
  2. لكل بند غير مُحدَّد: صنّفه P0 / P1 / P2
  3. نفّذ جميع P0
  4. اختياري: اختبر مع شخص يعاني من إعاقة بصرية أو حركية

تمرين مصغر: أعد تصميم قائمة التنقل في مشروعك الختامي لتكون متاحة لمستخدم يعاني من محدودية في الحركة الدقيقة في يد واحدة.


الوحدة 6 — تقييم IPQ وESM (2.5 ساعة)

المفهوم

يتجاوز تقييم المستوى الثالث SUS لقياس الحضور والرضا في الجلسة تحديدًا.

IPQ (استبيان حضور المجموعة — Igroup Presence Questionnaire)

يقيس IPQ (Schubert وآخرون، 2001) الشعور بالحضور في الواقع الافتراضي عبر 4 أبعاد فرعية:

البُعدما يقيسهالبنود
الحضور العام (GP)الشعور الإجمالي بالحضوربند واحد: "شعرت بأنني كنت هناك"
الحضور المكاني (SP)الشعور بالتواجد الجسدي في البيئة5 بنود
الانخراط (INV)استيعاب الانتباه من قِبل البيئة الافتراضية4 بنود
الواقعية المُدرَكة (REAL)واقعية العالم الافتراضي4 بنود
المصدر: Schubert, T., Friedmann, F., & Regenbrecht, H. (2001). The experience of presence: Factor analytic insights. Presence, 10(3), 266–281. https://doi.org/10.1162/105474601300343603 الأداة الإلكترونية: http://www.igroup.org/pq/ipq/index.php

حساب IPQ:

ESM (طريقة أخذ عينات التجربة) — تكيّف في الجلسة

ESM هي طريقة بحثية لجمع الملاحظات أثناء التجربة (لا بعدها فقط). في الواقع الافتراضي، تتكون من 3 أسئلة موجزة وغير مُزعجة في الجلسة تُعرض في لحظات محددة مسبقًا:

  1. "كم تشعر بالحضور في هذه البيئة الآن؟" (1–7)
  2. "كم أنت منخرط في هذه التجربة؟" (1–7)
  3. "كم تشعر بالراحة الجسدية؟" (1–7)

التطبيق: يظهر لوح واجهة مستخدم عند T+2 دقيقة، T+7 دقائق، T+15 دقيقة عبر coroutine في Unity. يرد المستخدم بـ3 أزرار (1، 2، 3... 7) أو شريط تمرير. تُسجَّل الردود مع الطابع الزمني.

القراءة المدمجة:

التمرين المعملي 6.1 — اختبار IPQ

الخطوات:

  1. جهّز نموذج IPQ إلكترونيًا (Google Forms أو ورقيًا) من: http://www.igroup.org/pq/ipq/index.php
  2. اختبر مع ≥ 3 مشاركين (بعد SUS إن كان لديك الوقت)
  3. احسب المتوسط لكل بُعد فرعي (GP، SP، INV، REAL)
  4. حدد البُعد الأقل درجةً → ماذا يخبرك عن التجربة؟

تمرين مصغر: تجربتك تحصل على SP=2.1، INV=1.8، REAL=0.9، GP=1.4. درجة REAL المنخفضة — ماذا تدل على ذلك وما الفعل التصميمي الذي يمكن أن يُحسّنها؟


الوحدة 7 — جاهزية الإنتاج (2.5 ساعة)

المفهوم

تجربة الواقع الافتراضي الجاهزة للمعرض ليست فقط تلك التي تعمل — بل يجب أن تعمل بشكل موثوق لمدة 6–8 ساعات يوميًا لعدة أيام، وأن تكون قابلة للتثبيت في أقل من 30 دقيقة، وأن يتمكن شخص غير تقني من تشغيلها.

قائمة تحقق جاهزية الإنتاج:

الفئةالمعيارالتحقق
الاستقرارلا تعطل في 2 ساعة تشغيل متواصلاختبار + مراقبة السجلات
الاستقرارإعادة تشغيل متعادلة (زر الجهاز أو القائمة)اختبار يدوي
قابلية التشغيلالإعداد < 30 دقيقة من الصفراختبار موقوت مع شخص غير مألوف
قابلية التشغيلدليل المشغّل متاح (4–6 صفحات مطبوعة)الوثيقة حاضرة
التثبيتAPK مُثبَّت مسبقًا أو ملف تنفيذيالملف موجود في الموقع
التوثيقالملف الفني (مفهوم، سيرة الفنان، اعتمادات)1–2 صفحات A4
الطوارئبروتوكول الإيقاف الطارئموثق + مُمارَس

قالب دليل استكشاف الأخطاء:

المشكلةالسببالحل
شاشة سوداء عند التشغيلالخوذة غير معترف بهاأعد توصيل USB، أعد تشغيل الخوذة
انخفاض معدل الإطارات بعد 30 دقيقةتقليل الحرارةفعّل وضع الأداء، أضف مروحة
الجسم لا يمكن إمساكهعدم تطابق طبقة التفاعلتحقق من XRI Interaction Layer Mask
فقدان الشبكة (متعدد المستخدمين)انقطاع Wi-Fiأعد الاتصال بنقطة الاتصال، أعد تشغيل NetworkRunner

التمرين المعملي 7.1 — تدقيق جاهزية الإنتاج

الخطوات:

  1. طبّق قائمة تحقق جاهزية الإنتاج على مشروعك الحالي
  2. حدد أكثر 3 بنود مفقودة أهمية
  3. اكتب دليل مشغّل من صفحتَين (الإعداد + الاستخدام اليومي + استكشاف الأخطاء)
  4. اختبر مع متطوع لم يرَ مشروعك قط: هل يمكنه إعداده من الدليل وحده؟

تمرين مصغر: يفتح معرضك خلال 3 أيام. يُظهر الفحص التقني: معدل إطارات مستقر، لا تعطل، لكن دليل المشغّل غير موجود وملف APK غير مُسمَّى بشكل صحيح. رتّب الأولويات ووزّع المهام في 3 أيام.


الوحدة 8 — تحضير المعرض (2.5 ساعة)

المفهوم

تجربة الواقع الافتراضي المعرضية تختلف عن لعبة واقع افتراضي استهلاكية أو مشروع مدرسي على أبعاد متعددة.

ثلاثة وثائق معرضية مطلوبة:

1. الملف التقني (4–6 صفحات)

2. الملف الفني الفني (2–4 صفحات)

3. بروتوكول الوساطة (1–2 صفحة)

التمرين المعملي 8.1 — التوثيق المعرضي الكامل

الخطوات:

  1. ضع مسودة الملف التقني لمشروعك الختامي (الحد الأدنى: الأجهزة، التثبيت، 3 بنود استكشاف أخطاء)
  2. ضع مسودة الملف الفني (مفهوم 300 كلمة + سيرة موجزة)
  3. اكتب بروتوكول الوساطة (مقدمة 30 ثانية + 3 تعليمات رئيسية + 3 أسئلة إفادة)
  4. اختبر بروتوكول الوساطة مع زميل يلعب دور "الوسيط" مع مستخدم غير مُلمّ بالواقع الافتراضي

تمرين مصغر: كيّف بروتوكول الوساطة ليستوعب مستخدمًا كفيفًا ومستخدمًا أصمّ. ما الذي يتغير؟


مشروع الختام — "تجربة واقع افتراضي بمستوى المعرض"

الإيجاز

أنشئ تجربة واقع افتراضي يمكن عرضها في سياق معرض أو مهرجان أو يوم مفتوح للمدرسة، مع اختبار مستخدم حقيقي (SUS + IPQ ≥5 مشاركين) وتوثيق معرضي كامل.

القيود

المحصّلات

  1. التطبيق (APK Quest، رابط WebXR، أو ملف تنفيذي)
  2. الملف التقني (PDF، 4–6 صفحات)
  3. الملف الفني (PDF، 2–4 صفحات)
  4. بروتوكول الوساطة (PDF، 1–2 صفحة)
  5. تقرير التقييم: SUS (متوسط + لكل مختبر) + IPQ (متوسط لكل بُعد) + التصحيحات المطبقة
  6. العرض الشفهي (12 دقيقة): عرض التجربة + طريقة التقييم + دروس التصميم + مفاجآت الإنتاج

مقياس التقييم

المعيارغير كافٍ (1)مُرضٍ (2)جيد (3)ممتاز (4)
معمارية XRIغير وظيفيوظيفي بدون بنيةمعمارية XRI موثقةXRI نظيف + Unity Events + موثق
متعدد المستخدمين (اختياري)مستخدم واحدNetworkObject + NetworkTransformPhoton Fusion + RPC + صوت
تحسين GPU> 200 استدعاء رسم100–200 استدعاء< 100 استدعاء< 100 + LOD + instancing + تحليل أداء
تقييم SUS + IPQغائبSUS فقطSUS + IPQ (≥3 مختبرين)SUS + IPQ + ESM (≥5 مختبرين) + تصحيحات
توثيق المعرضغائبملف تقني فقطملف تقني + فنيجميع الوثائق الثلاث + بروتوكول وساطة مُختبَر

القراءات والموارد


المستوى السابق: تصميم التفاعل في الواقع الافتراضي — المستوى الثانيالمرجع الشامل: مرجع VR الكاملاستشارة مخصصة لمعرضك/مؤسستك: احجزوا مكالمة 30 دقيقة — مجاناً

تكوين حسب الطلب

ورشة مكثّفة (يوم–يومان) للمدارس والاستوديوهات والمتاحف — نظرية مركّزة، تطبيقات موجّهة، مرافقة مشروع.

احجزوا مكالمة 30 دقيقة (مجاناً) →