تعرف على كيفية إنشاء تأثيرات الإضاءة الخاصة بك لإضفاء السطوع على ألعابك.
يمكن للإضاءة والظلال الديناميكية رفع الجودة المرئية وتجربة اللعب لألعاب Godot. إنها تضيف العمق والجو والواقعية ، مما يجعل عالم لعبتك أكثر غامرة وجاذبية.
مع ميزات Godot القوية مثل CanvasModulate و PointLight2D ، فإن إنشاء وتخصيص الإضاءة والظلال الديناميكية يعد مهمة سهلة.
إعداد لعبة جودو
قبل الغوص في الإضاءة الديناميكية ، قم بإعداد لعبة ثنائية الأبعاد أساسية في محرك لعبة Godot. أنشئ مشهدًا جديدًا وأضف ملف شخصية للاعب.
الكود المستخدم في هذه المقالة متوفر في هذا مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.
داخل شخصية، أضف تصادم ذات شكل مستطيل و سبرايت تو دي لتمثيل شخصية اللاعب. أيضًا ، قم بإنشاء بعض الأنظمة الأساسية باستخدام StaticBody2D العقد.
الآن ، قم بتنفيذ حركة المشغل والتصادم مع حدود الشاشة باستخدام GDScript:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
باستخدام هذا الرمز ، يمكن للاعب التحرك يسارًا ويمينًا ولأعلى ولأسفل أثناء تقييده داخل حدود الشاشة.
تعتيم بقية المشهد
لتحقيق تأثير الإضاءة الديناميكية ، تحتاج إلى تعتيم بقية المشهد باستثناء المناطق المضاءة بمصادر الضوء. يمكنك القيام بذلك باستخدام أدوات Godot قماش ميزة.
extends Node2D
const DARKNESS = 0.7
func _ready():
var canvas_modulate = CanvasModulate.new()
canvas_modulate.color = Color(0, 0, 0, DARKNESS)
add_child(canvas_modulate)
إرفاق هذا البرنامج النصي بملف Node2D أضيفت في جذر المشهد. ال قماش ستطبق العقدة تراكبًا أسود شبه شفاف ، مما يؤدي إلى تعتيم المشهد بأكمله باستثناء المناطق المضاءة بالأضواء.
أنشئ متغيرًا ثابتًا الظلام، والتي تحدد شدة الظلمة المطبقة على المشهد. عن طريق تعديل قيمة الظلام، يمكنك التحكم في درجة تعتيم المشهد عند عدم إضاءته بالأضواء. ستؤدي القيمة الأعلى إلى مشهد أكثر قتامة ، بينما ستؤدي القيمة الأقل إلى جعل المشهد أقل قتامة.
يلقي ضوء الظل
لإلقاء الظلال ، تحتاج إلى الإعداد LightOccluder2D العقد على العوائق التي يجب أن تحجب الضوء. على سبيل المثال ، إذا كانت لديك جدران أو منصات أو أشياء أخرى يجب أن تلقي بظلالها ، فأضف ملف LightOccluder2D لكل واحد.
إنشاء ملف LightOccluder2D عقدة ، وضبط شكلها لتتناسب مع شكل العقبة في لعبتك. يمكنك أيضًا ضبط خصائص الإطباق مثل المضلعات و شرائح لضبط سلوك الظل.
أضف مصابيح متعددة الاتجاهات
الآن ، أضف ملف PointLight2D مع نسيج لتمثيل مصدر الضوء الخاص بك. تبعث الأضواء النقطية الضوء في جميع الاتجاهات وتخلق تأثير إضاءة واقعيًا.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
يمكنك تخصيص الخصائص للتحكم في نطاق ولون الضوء المنبعث من ملف PointLight2D.
يمكنك أيضًا إنشاء أو استيراد نسيج ضوء مخصص لتحديد شكل ومظهر مصدر الضوء. يمكن أن تكون دائرة بسيطة أو شكلًا أكثر تعقيدًا ، اعتمادًا على الغلاف الجوي الذي تريد تكوينه.
لتطبيق النسيج على PointLight2D عقدة ، اتبع هذه الخطوات:
- حدد ملف PointLight2D عقدة في شجرة المشهد.
- في لوحة المفتش ، حدد موقع خاصية Texture أسفل ملف نَسِيج قسم.
- انقر فوق مربع النسيج الفارغ وحدد النسيج الفاتح الذي تريده من متصفح الملفات.
الآن ، سيصدر مصدر الضوء الخاص بك الضوء بالشكل واللون المحددين ، مما يضيف لمسة جذابة بصريًا إلى الإضاءة والظلال الديناميكية.
بما في ذلك الميزات الإضافية
بالإضافة إلى الإعداد الأساسي للإضاءة والظلال الديناميكية ، يمكنك تقديم العديد من الميزات الإضافية لزيادة المظهر المرئي وتجربة اللعب بشكل أكبر. وإليك بعض الأفكار للنظر فيها:
الرسوم المتحركة الخفيفة
اجعل مصادر الإضاءة تنبض بالحياة من خلال إضافة رسوم متحركة إليها. على سبيل المثال ، يمكنك إنشاء أضواء وامضة للمصابيح أو الشموع ، أو محاكاة حركة نار المخيم ، أو حتى إضافة تأثير نابض إلى الأجرام السماوية السحرية.
دورة الليل والنهار
قم بتنفيذ دورة ديناميكية ليلاً ونهارًا تعمل على تغيير شدة ولون الأضواء تدريجيًا مع تقدم وقت اللعب. يمكن لهذه الميزة أن تعزز الانغماس وتخلق حالات مزاجية مختلفة حسب الوقت من اليوم.
يتلاشى الضوء
قم بإنشاء انتقالات سلسة لتغييرات شدة الضوء لتجنب التحولات المفاجئة التي قد تكسر الانغماس. من خلال تلاشي الأضواء للداخل والخارج تدريجيًا ، يمكنك تحقيق تأثير طبيعي وممتع بصريًا.
الظلال الديناميكية
بدلاً من استخدام الظلال الثابتة ، ضع في اعتبارك إضافة ظلال ديناميكية للكائنات أو الشخصيات المتحركة. يمكنك القيام بذلك عن طريق استخدام مصادر إضاءة إضافية تتبع حركة الشخصيات ، مما يعطي الوهم بتحديثات الظل في الوقت الفعلي.
مؤثرات صوتية خالية من حقوق النشر
تلعب المؤثرات الصوتية دورًا مهمًا في جعل عالم لعبتك يشعر بالحيوية والحيوية. ضع في اعتبارك الدمج مؤثرات صوتية خالية من حقوق النشر لتكمل الإضاءة والظلال الديناميكية.
أفضل الممارسات للإضاءة الديناميكية والظلال
في حين أن الإضاءة والظلال الديناميكية يمكن أن تعزز لعبتك بشكل كبير ، إلا أن التنفيذ غير السليم قد يؤثر سلبًا على الأداء والجودة المرئية. فيما يلي بعض أفضل الممارسات التي يجب وضعها في الاعتبار:
تحسين مصادر الضوء
حدد عدد مصادر الضوء النشطة إلى الحد الأدنى الضروري للتأثير المرئي الذي تريده. يمكن أن تؤثر الأضواء الزائدة بشكل كبير على الأداء ، خاصة على الأجهزة المنخفضة النهاية.
استخدم الخبز الخفيف
للمشاهد أو الكائنات الثابتة ، ضع في اعتبارك خبز معلومات الإضاءة لتحسين الأداء. يحسب الخبز الخفيف بيانات الإضاءة مسبقًا ، مما يقلل من الحاجة إلى حسابات في الوقت الفعلي أثناء اللعب.
اختر أغلفة بسيطة
عند الإعداد LightOccluder2D العقد ، اختر الأشكال البسيطة كلما أمكن ذلك. يمكن أن تؤدي أدوات الإطباق المعقدة ذات الرؤوس المتعددة إلى مشاكل في الأداء. استخدم مضلعات بسيطة أو مقاطع خطية للطابعات كلما كان ذلك ممكنًا.
الانتقاء والطبقات
استخدم نظام الرؤية والطبقات في Godot لضمان أن الأضواء والظلال محسوبة فقط للمناطق المرئية. يمكن أن يؤدي التخلص من الأضواء والظلال خارج الشاشة إلى تحسين الأداء بشكل كبير.
باتباع أفضل الممارسات هذه وتنفيذ ميزات إضافية بعناية ، يمكنك إنشاء إضاءة وظلال ديناميكية مذهلة وآسرة ترفع من الجودة الإجمالية لـ لعبة المنصات الخاصة بك.
جعل ألعاب Godot أكثر تفاعلاً مع الإضاءة والظلال الديناميكية
تبث الإضاءة والظلال الديناميكية الحياة في عالم لعبتك. إنهم يخلقون بيئة أكثر غامرة وجوًا ، مما يجذب اللاعبين بشكل أعمق إلى تجربة اللعب. يمكن للتفاعل بين الضوء والظل أن يثير المشاعر ويضبط النغمة ويعزز سرد القصص المرئي للعبتك.
سواء كان ذلك في زنزانة مظلمة غامضة أو ليلة مقمرة هادئة ، فإن الإضاءة الديناميكية تثري طريقة اللعب وتترك انطباعًا دائمًا على اللاعبين.