المستوى 1

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

تابع الدورة — مجاناًتكوين مُؤطَّر — مدفوعقراءة وتمارين مجاناً. للمرافقة (ورشة / ماستركلاس)، انتقل إلى الصيغة المؤطَّرة.
ملخص: تُقدّم هذه الدورة المبتدئة تصميمَ تفاعل الواقع الافتراضي دون الحاجة إلى أي خبرة تقنية أو خبرة سابقة في الواقع الافتراضي. يبني الطلاب أول بيئة واقع افتراضي تفاعلية لهم باستخدام A-Frame وWebXR، ويفهمون المبادئ الجوهرية للحضور والوقاية من دوار الواقع الافتراضي، ويصممون تنقلًا أساسيًا وتفاعلًا مع الأشياء، ويُتمّون مشروعًا للمحفظة قابلًا للعرض في أي متصفح متوافق مع WebXR أو خوذة. الخطوط العامة: مقدمة إلى مفاهيم الواقع الافتراضي ← أول مشهد (A-Frame) ← التنقل والملاحة ← التفاعل مع الأشياء ← التغذية الراجعة والصوت المكاني ← مشروع المحفظة.

أهداف التعلم

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

  1. شرح (بلوم: التذكر/الفهم) ما هو الواقع الافتراضي، والفرق بين الحضور والانغماس، والأنواع الرئيسية لتجارب الواقع الافتراضي.
  2. إنشاء (الإنشاء) مشهد واقع افتراضي تفاعلي في المتصفح مع A-Frame، بدون خادم أو تصريف.
  3. تطبيق (التطبيق) نمط تنقل بسيط (انتقال فوري أو تنقل بلوحة المفاتيح) مناسب لتجربة WebVR.
  4. تصميم (الإنشاء) تفاعلات أساسية مع الأشياء: نقر، إمساك، رسوم تغذية راجعة متحركة.
  5. تقييم (التقييم) راحة تجربة الواقع الافتراضي وفق معايير التأخر ومعدل الإطارات والحركة.
  6. إنتاج (الإنشاء) مشروع ختامي موثق وقابل للعرض (في المتصفح، لا تلزم خوذة).

الوحدة 1 — ما هو الواقع الافتراضي؟ (2 ساعة)

المفهوم

يحل الواقع الافتراضي (VR — Virtual Reality) محل إدراك العالم الحقيقي ببيئة مُولَّدة بالكامل بواسطة الحاسوب. يقوم على ثلاثة ركائز: الانغماس (Immersion) (العزل الحسي)، الحضور (Presence) (الشعور الذاتي بأنك "هناك")، التفاعلية (Interactivity) (البيئة تستجيب للمستخدم).

التمييز الجوهري:

المصدر: Slater, M., & Wilbur, S. (1997). A Framework for Immersive Virtual Environments (FIVE). Presence, 6(6), 603–616.

ثلاثة أنواع من تجارب الواقع الافتراضي:

دوار الواقع الافتراضي (Cybersickness): إزعاج (غثيان، دوخة) ناجم عن التعارض بين الحركة البصرية والسكون الجسدي. القاعدة الذهبية: معدل الإطارات ≥ 60 fps + التأخر < 20ms + تجنب حركات الكاميرا غير المُبادَر بها من المستخدم.

التمرين المعملي 1.1 — الملاحظة والتحليل

الهدف: تنمية العين النقدية لتجارب الواقع الافتراضي الموجودة (في المتصفح).

الخطوات:

  1. افتح مثالًا على A-Frame على حاسوب (بدون خوذة): https://aframe.io/examples/showcase/helloworld/
  2. انتقل بالنقر والسحب بالماوس. لاحظ: ماذا تشعر؟ أي جسم تفاعلي؟ ما الذي ينقص؟
  3. افتح مثالًا ثانيًا (https://aframe.io/examples/) — اختر بحرية.
  4. لكل مثال، دوّن: ما الذي يخلق إحساسًا بالعمق؟ ما التغذية الراجعة التي تدل على التفاعلية؟ ما الذي ستُحسّنه؟

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


الوحدة 2 — أول مشهد واقع افتراضي مع A-Frame (2 ساعة)

المفهوم

A-Frame إطار HTML إعلاني لإنشاء مشاهد WebXR ثلاثية الأبعاد. لا تصريف، لا خادم — مجرد ملف HTML يُفتح في Chrome أو Firefox.

التوثيق: https://aframe.io/docs/

البنية الأساسية الدنيا: html <!DOCTYPE html> <html> <head> <script src="https://aframe.io/releases/1.4.0/aframe.min.js"></script> </head> <body> <a-scene> <a-sky color="#87CEEB"></a-sky> <a-plane position="0 0 -4" rotation="-90 0 0" width="10" height="10" color="#228B22"></a-plane> <a-box position="-1.5 0.5 -3" color="#EF2D5E" shadow="cast: true; receive: false"></a-box> <a-sphere position="0 1 -3.5" radius="0.5" color="#FFC65D"></a-sphere> <a-cylinder position="1.5 0.75 -3" radius="0.3" height="1.5" color="#4CC3D9"></a-cylinder> <a-entity id="rig" position="0 1.6 0"> <a-camera></a-camera> </a-entity> </a-scene> </body> </html>

السمات الأساسية: position (x y z بالأمتار)، rotation (درجات)، scale، color، visible، shadow

كيان الكاميرا: <a-entity id="rig"> عند ارتفاع 1.6م يحاكي ارتفاع عين الشخص البالغ.

التمرين المعملي 2.1 — أول مشهد واقع افتراضي لي

الخطوات:

  1. أنشئ ملف vr-scene.html على سطح المكتب
  2. انسخ القالب أعلاه، افتحه في Chrome
  3. تنقّل بالماوس (سحب) + WASD للتحرك
  4. عدّل: غيّر الألوان، أضف حلقة (<a-torus>)، نصًا ثلاثي الأبعاد (<a-text value="مرحبا الواقع الافتراضي" position="0 2 -3">)
  5. لاحظ العمق والمنظور — كيف تُقرأ المسافات؟

تمرين مصغر: أنشئ مشهدًا يمثل غرفة مغلقة (4 جدران + أرضية + سقف) مع 3 أشياء بأحجام مختلفة في مواضع متميزة. يجب أن "يحكي" كل جسم شيئًا عن الفضاء.


الوحدة 3 — التنقل والملاحة (2 ساعة)

المفهوم

التنقل (Locomotion) هو نمط الحركة في الفضاء الافتراضي. إنه أهم عامل لدوار الواقع الافتراضي — نمط تنقل سيئ يجعل التجربة غير قابلة للاستخدام.

نمطان رئيسيان للمبتدئين:

النمطالآليةالراحةمتى تُستخدم
الانتقال الفوري (Teleportation)تأشير + تأكيد → قفز فوريممتازالجمهور العام، الجلسات الطويلة
الملاحة بالماوس/لوحة المفاتيحWASD + سحب (سطح المكتب)مقبول (سطح المكتب)نماذج أولية سريعة

إضافة الانتقال الفوري في A-Frame (مكوّن npm): html <script src="https://aframe.io/releases/1.4.0/aframe.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/aframe-teleport-controls.min.js"></script> html <a-entity id="rig" position="0 1.6 0"> <a-camera> <a-cursor></a-cursor> </a-camera> <a-entity teleport-controls="cameraRig: #rig; teleportOrigin: #camera; button: trigger" laser-controls="hand: left"></a-entity> </a-entity>

قواعد راحة التنقل:

التمرين المعملي 3.1 — منطقة التنقل

الخطوات:

  1. انطلق من المشهد في التمرين المعملي 2.1
  2. حدِّد منطقة تنقل مرئية على الأرض (نسيج شبكي أو لون مختلف)
  3. أضف علامات وجهات للانتقال الفوري (دوائر متوهجة على الأرض)
  4. اختبر مع شخصَين: هل يلاحظان العلامات؟ هل يفهمان أنه يمكنهما التحرك؟

تمرين مصغر: ارسم خريطة التنقل لمشروعك الختامي: أين يبدأ المستخدم، أي مناطق يمكنه الوصول إليها، أي مناطق محظورة ولماذا.


الوحدة 4 — التفاعل مع الأشياء (2 ساعة)

المفهوم

يجب أن يحترم التفاعل مع أشياء الواقع الافتراضي الإيحاءات الجسدية (Physical affordances): الجسم القابل للتلاعب يجب أن يُشير إلى ذلك بصريًا.

نمط المؤشر/النظرة في A-Frame: <a-cursor> هو نقطة مركزية على الشاشة — يُختار الجسم بالتأشير عليه والنقر (أو بعد تأخير).

html <a-camera> <a-cursor color="#FF5733" fuse="true" fuse-timeout="1500"></a-cursor> </a-camera>

الاستجابة للتفاعلات: html <a-box id="mybox" position="0 1 -3" color="#4CC3D9" animation__hover="property: scale; to: 1.2 1.2 1.2; startEvents: mouseenter; dur: 200" animation__unhover="property: scale; to: 1 1 1; startEvents: mouseleave; dur: 200" animation__click="property: color; to: #FF5733; startEvents: click; dur: 300"> </a-box>

ثلاث حالات للجسم التفاعلي:

  1. خامل (Idle): مظهر محايد
  2. مُحوَّم عليه (Hover): إشارة أن الجسم مُستهدَف (حجم، حد، لون)
  3. نشط (Active): تأكيد الفعل (رسوم متحركة، صوت)

التمرين المعملي 4.1 — أشياء تفاعلية

الخطوات:

  1. في مشهدك، اختر جسمَين وأضف الحالات الثلاث (خامل / مُحوَّم عليه / نشط)
  2. استخدم animation__* في A-Frame لكل انتقال
  3. للتغذية الراجعة "النشطة": أضف تغيير لون مميز + رسوم حجم قصيرة (1 → 1.3 → 1)
  4. اختبر: هل تفهم أنه يمكنك التفاعل قبل التأشير على الجسم؟

تمرين مصغر: أدرج الأشياء الثلاثة في مشروعك الختامي وعرّف حالاتها الثلاث. كيف يعرف المستخدم، قبل التفاعل، أن الجسم قابل للنقر؟


الوحدة 5 — التغذية الراجعة والصوت المكاني (2 ساعة)

المفهوم

الصوت هو الناقل الثاني للحضور بعد الصورة. في واقع افتراضي سطح المكتب، يُحوّل إضافة الصوت المكاني التجربة بشكل جذري.

الصوت الموضعي في A-Frame: html <a-entity position="0 1 -3" sound="src: url(click.mp3); on: click; positional: true; rolloffFactor: 2"> </a-entity>

الصوت المحيطي (صوت البيئة): html <a-entity sound="src: url(ambience.mp3); autoplay: true; loop: true; volume: 0.3"> </a-entity>

قاعدة راحة الصوت:

موارد الصوت CC0: https://freesound.org (تصفية "CC0") · https://pixabay.com/music/

التمرين المعملي 5.1 — مشهد مع صوت

الخطوات:

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

تمرين مصغر: صِف في 3 جمل تصميم الصوت لمشروعك الختامي. ما الصوت الذي يُعلم المستخدم بكل فعل رئيسي؟


الوحدة 6 — اختبار المستخدم الأساسي (2 ساعة)

المفهوم

حتى نموذج أولي لـ WebVR في المتصفح يمكن اختباره بدون خوذة. الهدف هو التحقق من أن التفاعلات مفهومة وأن الحركة مريحة.

بروتوكول اختبار أدنى (سطح المكتب، مختبران):

نيلسن ولانداور (1993): 5 مختبرين يكشفون ~85% من المشكلات. مختبران يكفيان في بداية المشروع للمشكلات الحرجة.
  1. جهّز مهمتَين ملموستَين ("اذهب إلى الجسم الأحمر وتفاعل معه")
  2. راقب بدون تدخل
  3. دوّن: التردد، العوائق، التعليقات التلقائية
  4. 3 أسئلة مفتوحة بعد الاختبار

التمرين المعملي 6.1 — اختبار مع شخصَين

الخطوات:

  1. جهّز نموذجك الأولي على حاسوب مخصص للاختبار
  2. صِغ مهمتَين (ليس "استكشف" — "افعل X")
  3. اختبر مع ملفَّي شخصية مختلفَين (غير اللاعبين إن أمكن)
  4. أملأ الشبكة: هل أُنجزت المهمة؟ الوقت؟ التردد؟ التعليقات؟

تمرين مصغر: أدرج المشكلات الثلاث الكاشفة من اختبارَيك. لكل منها، اقترح حلًا ملموسًا والأولوية (عائق / مهم / ثانوي).


مشروع الختام — "أول فضاء واقع افتراضي لي"

الإيجاز

أنشئ فضاء واقع افتراضي بسيطًا في المتصفح يُـيقدّم، يستكشف، أو يحكي شيئًا — مكان خيالي، جسم ذو معنى، كون شخصي.

القيود

المحصّلات

  1. ملف HTML وظيفي (أو رابط استضافة مثل Glitch.com، CodePen)
  2. توثيق قصير (صفحة A4 واحدة): المفهوم، 3 قرارات تصميمية ومبرراتها، خريطة التنقل
  3. شبكة الملاحظات من اختبار المستخدم (مختبران)
  4. عرض تقديمي (5 دقائق): عرض مباشر + إفادة تأملية

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

المعيارغير كافٍ (1)مُرضٍ (2)جيد (3)ممتاز (4)
الوظيفة التقنيةلا يفتح أو يتعطليعمل بصعوبةيعمل بشكل موثوقيعمل بدون احتكاك، 60 fps مستقر
التنقل والراحةتضليل، دوار الحركةقابل للتنقل بمساعدةملاحة واضحةملاحة بديهية، 0 دوار
التفاعلاتلا تفاعل وظيفي1–2 تفاعل بدون تغذية راجعة3 تفاعلات مع تغذية راجعة3+ تفاعلات + 3 حالات محددة
الصوتغائبصوت حاضر لكن سيئ التوازنصوت محيطي + تفاعلاتصوت مكاني موضعي + تصميم صوتي متسق
التوثيقغائبحاضر لكن ناقصمفهوم + 3 قراراتتأمل عميق + بدائل مدروسة

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


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

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

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

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