الفصل الثاني: الروابط بين الكائنات في المشهد

لعلك لاحظت خلال عملك على بناء الشكل السابق أنه يمكنك التعامل مع كل كائن في المشهد على حدة، دون أن يؤثر تغيير خصائص أي منها على الآخر. لكن لنفترض أنك تريد نقل هذا المشهد من منتصف الفضاء حيث قمت ببنائه إلى موقع آخر، أو أنك تريد عمل عدة نسخ منه في أماكن مختلفة. في الحالة الأولى يمكنك أن تقوم بتحديد كافة العناصر سواء من نافذة المشهد أو هرمية المشهد ونقلها دفعة واحدة، أمّا في الحالة الثانية يمكنك تحديد كافة كائنات المشهد ثم نسخها ولصقها.

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

بالرجوع إلى الشكل 1، يمكننا ملاحظة وجود ثلاث أجزاء رئيسية: الأرضية، القوسان، الصناديق. لنأخذ الأرضية على أنها الجذر الذي ستتصل به كل الأجزاء الأخرى، كما علينا أن لا نغفل ربط الأعمدة بالعوارض بحيث يمكننا أن نعاملها كوحدة واحدة. لبناء هذه العلاقات يمكنك ببساطة سحب أي كائن من هرمية المشهد إلى داخل كائن آخر، بحيث يصبح "ابنا" له يتأثر بكل ما ينطبق على الأب من خصائص. لنقم بذلك بخطوات بسيطة:

  1. قم بإضافة كائنين فارغين لنجمع في كل منهما أجزاء قوس من القوسين الموجودين في المشهد. يمكنك ذلك عن طريق قائمة Game Object > Add Empty.
  2. قم بتغيير أسماء الكائنين الجديدين إلى Arc1 و Arc2 وذلك عن طريق نافذة الخصائص، وتأكد أيضا أنهما موجودان في الموقع (0 ,0 ,0).
  3. قم بسحب كل من الأسطوانتين والمكعب التي تشكل القوس الأول إلى داخل Arc1 وكذلك الكائنات التي تشكل القوس الثاني إلى داخل Arc2 وذلك عن طريق هرمية المشهد.
  4. الآن قم بسحب كل من Arc1 و Arc2 إلى داخل كائن الأرضية المسمى Plane.
  5. قم أخيرا بسحب المكعبات الثلاث (الصناديق) إلى داخل كائن الأرضية.

لعلك لاحظت أثناء العمل تشابه الأسماء بين كثير من الكائنات الموجودة في المشهد، لذا من الأفضل دائما تغيير أسمائها الافتراضية إلى أسماء أخرى بحيث يسهل تمييزها والوصول إليها، خاصة عندما يكبر المشهد ويصبح أكثر تعقيدا (سأترك هذه المهمة لك).

بعد الانتهاء من هذه التعديلات البسيطة، ستلاحظ أن هرمية المشهد أصبحت متفرعة كما في الشكل 4. وأن أي تعديل على الأب ينتقل تلقائيا للأبناء كالتحريك والتدوير، كما إن حذف الكائن الأب من المشهد يتبعه تلقائيا حذف الأبناء. لكن العكس غير صحيح، حيث أن أي تعديل على الكائن الابن لا ينعكس على الأب.

الشكل 4: الروابط بين الكائنات في المشهد كما تظهر في الهرمية

الشكل 4: الروابط بين الكائنات في المشهد كما تظهر في الهرمية

لو قمت بنقل كائن الأرضية من مكان لآخر داخل الفضاء، ستلاحظ أن قيم الموقع الخاصة في نافذة الخصائص تتغير، بينما لا تتغير القيم الخاصة بأي من الكائنات المضافة إليه كأبناء. السبب في ذلك هو أن خصائص الأبناء من موقع ودوران وقياس تكون نسبية إلى خصائص الأب، وتنتمي للفضاء المحلي للأبobject space وليس الفضاء العالمي الذي يمثل المشهد كاملا world space. سنأتي لاحقا على الفروق بين هذين الفضاءين وأهميتها فلا تشغل بالك بها في الوقت الراهن.

السابقالتالي

تعليقات واستفسارات