Header Image 02

كيف تتحكم بإضاءة لاعبك في المرحلة باستخدام خريطة ضوئية

كيف تتحكم بإضاءة لاعبك في المرحلة باستخدام خريطة ضوئية

[​IMG]
هذه طريقة سهلة تخلصك عناء التحكم بالإضاءة في خريطة لعبتك. فما هو الخريطة الضوئية “Light Map”؟ هو عبارة عن صورة محاكية لخريطة لعبتك ترسم عليها جغرافيا ما تريد تخزينه. أي على سبيل المثال, في الغرفة الفلانية ترسم وتلون الإضاءة المستخدمة, قوتها, أين تبدأ وتنتهي, إلخ. بما إنها صورة, لديك 4 قنوات تستطيع تخزين فيها معطياتك. وهي قنوات الألوان الأحمر والأخضر والأزرق والشفافية. وبما أن رمز اللون يتكون من 255 درجة, فهذه عدد القيم التي تستطيع تشفيرها داخل القناة الواحدة. تخيل معي, البكسل الواحد يخزن لك 255*255*255*255 معلومة محتملة! لك أن تتخيل الاحتمالات الجبارة المتاحة لك في استخدامها.

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

كما أسلفت, الخريطة الضوئية التي رسمتها تبين لون الإضاءة وقوتها في غرف البيت في اللعبة. الشفرة التي استخدمتها تفعل الآتي:

  1. استخلص إحداثيات موقع اللاعب في المرحلة.
  2. تعدل قيم إحداثيات اللاعب كي تتناسب مع حجم صورة الخريطة الضوئية. لأن حجم الخريطة لا يجب أن تطابق حجم الخريطة اللعبة, فقط تناسبها.
  3. مع الإحداثيات المعدلة تحدد موقعها على الخريطة الضوئية.
  4. دالة GetPixel تستخلص قيمة لون البكسل عند الإحداثية.
  5. خزن هذا اللون في متغير, ما عدا قناة الشفافية.لا نحتاج لها في مثالنا.
  6. وأخير غير لون مكوّن الرسم للشخصية بالمتغيّر الذي حصلنا عليه من GetPixel.

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

Leave a Reply

Your email address will not be published. Required fields are marked *