مقدمة لكيفية استخدام الـtilemap في godot 4

Godot

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

كلمة tiles تترجم الى “بلاط” وعملية استخدام البلاط تسمى “تبليط” ولكن مع ذلك انا اُفضل كلمة بناء أو ترصيف، لأنها أقرب إلى المعنى الصحيح. وبالنسبة للـtile الواحدة، يمكن أن تسميتها بـ قطعة.

[الرَّصْفُ: ضَمُّ الشيء بعضِه إلى بعض ونَظْمُه، مصدر]

وفي محرك الألعاب غودو (Godot) يوجد عقدة تسمى الـ TileMap أي خريجة القِطع -بكسر القاف- وبها الكثير من التقنيات الرائعة مثل الرصف التلقائي وحتى امكانية وضع صادمات (Collisions) على القِطع بسهولة.

[هذا المقال يتطرق الى النسخة الرابعة من المحرك ويجب التنبيه لان النسخ القديمة اسلوبها مختلف]

امكانيات خارطة القِطع tilemap

دعني أعرض لك اولا اكبر قدر ممكن من إمكانيات هذه العقدة في محرك غودو وما يمكن الوصول إليه بها.

  • القِطع التلقائية [auto tile]
  • وضع فيزياء [صادمات – collections] 
  • حفظ واستعمال قوالب جاهزة
  • تقنيات الملاحة [إيجاد المسار – Navigation]
  • قِطع متحركة [animation]
  • وضع الكائنات والمشاهد [scenes]
  • الطبقات [Layers]
  • العشوائية
  • نظام الايزومترك

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

الآن دعني أحدثك عن كيفية استخدام هذه العقدة في المحرك.

كيفية استخدامها

أبدء بإنشاء مشروع صغير في محرك غودو وبه شجر مشهد مثل التي في الصورة. فيها اللاعب لديه ملف شيفرة (script) للحركة في كل الاتجاهات (اعلى-اسفل-يمين-يسار) – لا حاجة للاعب فعليا، ولكن يُفضل وجوده لتجربة اللعبة.

اخيرا اضف الى الشجرة عقدة خارطة القِطع (TileMap)، وعند الضغط عليها تظهر لوحة في الاسفل. قبل الاهتمام بهذه اللوحة يجب عليك اولا اضافة tileset اي مُعد القِطع، ويهدف الى تجهيز وانشاء القِطع المطلوبة من صورة ما.

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

والان وقت تجهيز القِطع التي تستخدمها في الرصف، وذلك باستخدام صورة بها كل القطع التي تريد، ويمكنك الوصول الى الكثير منها عبر هذا الرابط. فقط قم بتنزيل ما تعجبك منها. اخيرا اسحب الصورة وضعها في المكان المطلوب هكذا:

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

تبقى الآن خطوتين قبل استخدام الخارطة، وتتعلقان بحجم القِطعة الواحدة، سواء حجمها في الصورة الاصلية أو الحيز الذي تاخذه القطعة في عالم اللعبة.

في لوحة مُعد القِطع (TileSet) في المنتصف تقريبا تجد إعدادات الصورة، وهناك يوجد إعدادات مساحة النسيج (Texture Region)، منها حدد حجم القطعة الواحدة بالبكسل في الصورة.

بالنسبة لي استعملت 64*64 لأن ذلك ما يناسب صورتي، ولكن قد تختلف معك.

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

طبعا يُفضل استخدام نفس الرقم، ولكن القرار يرجع لك، حاليا انا وضعت الاثنان على 64*64 هكذا: 

وأخيرا يمكن استخدام لوحة القِطع لبناء عالم اللعبة، فقط انتقل الى تبويب TileMap في اسفل المحرك، واختر القطعة التي تريدها، ثم اضغط في اي مكان بداخل عالم اللعبة لوضع القطعة المُحددة.

استخدم زر الفارة الايسر لوضع القطع، والأيمن للحذف، كما ويوجد عدة أدوات في أعلى تلك اللوحة، منها (الخط) والذي يمكنك من بناء خط من قطعة ما بسهولة، أو المربع، والذي يُسهل بناء مساحات كبيرة.

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

تستطيع الان بناء المرحلة أو العالم الذي تريده، بل وازيدك من الشعر بيت، يمكنك نسخ ولصق أنماط قمت بعملها من قبل والاحتفاظ بها في تبويب أنماط patterns.

فقط ضع مجموعة من القِطع بجانب بعضها البعض في محرر اللعبة، ثم اختر زر التحديد الموجود في اللوحة بجانب الأدوات ثم حدد تلك المجموعة. بعدها اضغط على اختصار النسخ (Ctrl+c)، وانتقل الى تبويب patterns بجانب الأدوات في نفس اللوحة، ثم اضغط اختصار اللصق (Ctrl + v) وتجد أن ذلك النمط الذي أنشأته حُفظ هناك.

هكذا تستطيع بسهولة اعادة استخدام هذا النمط في عدة أماكن مختلفة، وتركز أكثر على اضافة التفاصيل في أماكن أخرى من عالمك.

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

إضافة الفيزياء/التصادم

إضافة التصادم للقِطع أمر سهل، ولكنه يحتاج لبعض الخطوات غير الواضحة من النظرة الاولى

اضغط على عقدة خارطة القِطع وفي الخصائص على اليمين، اضغط على TileSet، وعندما تفتح الخصائص الجديدة، تجد خانة باسم طبقة الفيزياء (physics layer) ، اخترها ثم اضغط على الزر الوحيد باسم اضافة عنصر (add element).

الان انتقل الى تبويب لوحة مُعد القِطع TileSet، ثم اضغط على زر التحديد في قسم الإعدادات، وحدد ما تريده من القِطع، وهكذا تظهر اعدادات تلك القطعة فقط.

فيها اختر خانة الفيزياء(physics)، وتجد بها خانة واحدة، أن لم تجدها ذلك يعني انك لم تقم بإنشاء طبقة فيزياء، فتأكد من اضافتها اولا -من الفقرة السابقة.

الان يمكنك أخيرا رسم الشكل الذي يحدد مساحة الاصطدام على تلك القطعة، يمكنك رسم ما تريده، الاهم أن تغلق تلك المساحة، ويمكنك تفعيل الالتقاط (snap) اعلى الصورة تماما في الاعدادات (بجانب الثلاثة نقاط) لتسهيل التحديد.

هكذا تكون قد حددت شكل تصادم القطعة المطلوبة، يمكنك فعل ذلك لبقية القِطع حتى تصل للنتيجة التي تحب، وبالطبع تقدر على تعديلها فيما بعد. وتلقائيا يضيف المحرك جسم ساكن (Static Body) على تلك القِطع.

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

ماذا عن البناء التلقائي؟

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

ولكن تلك يجب أن تؤجل الى دروس اخرى، فهذا ما هي الا مقدمة عن كيفية استعمال خارطة القِطع TileMap في محرك Godot 4، ونظرا لان العقدة مليئة بهذه التقنيات، وجب تأجيلها حتى تاخذ كلا منها حقها والاستفاضة فيها.

وأخبرني برأيك حول هذه العقدة، ما اهم ما تريد استكشافه فيها، وهل وجدت ما يعوقك عن استعمالها؟

2.5 2 votes
Article Rating
Subscribe
نبّهني عن
guest

0 تعليقات
Inline Feedbacks
View all comments