یاد بگیرید که چگونه جلوه های نوری خود را بسازید تا بازی های خود را روشن کنید.
نورپردازی و سایه های پویا می تواند کیفیت بصری و تجربه گیم پلی بازی های گودو را افزایش دهد. آنها عمق، اتمسفر و واقع گرایی را اضافه می کنند و دنیای بازی شما را فراگیرتر و جذاب تر می کنند.
با ویژگی های قدرتمند گودو مانند CanvasModulate و PointLight2D، ایجاد و سفارشی کردن نور و سایه های پویا کار آسانی است.
راه اندازی بازی گودو
قبل از فرو رفتن در نورپردازی پویا، یک بازی دو بعدی اساسی را در موتور بازی گودو راه اندازی کنید. یک صحنه جدید ایجاد کنید و یک CharacterBody2D برای پخش کننده اضافه کنید.
کد استفاده شده در این مقاله در این مخزن GitHub موجود است و برای استفاده شما تحت مجوز MIT رایگان است.
در داخل CharacterBody2D، یک CollisionShape2D با شکل مستطیلی و یک Sprite2D برای نمایش شخصیت بازیکن اضافه کنید. همچنین، با استفاده از گره های StaticBody2D، پلتفرم هایی ایجاد کنید.
اکنون حرکت پخش کننده و برخورد با مرزهای صفحه را با استفاده از GDScript پیاده سازی کنید:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()
if Input.is_action_pressed('ui_right'):
velocity.x += 1
if Input.is_action_pressed('ui_left'):
velocity.x -= 1
if Input.is_action_pressed('ui_down'):
velocity.y += 1
if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
با استفاده از این کد، پخش کننده می تواند در حالی که در محدوده های صفحه نمایش محدود می شود، به چپ، راست، بالا و پایین حرکت کند.
بقیه صحنه را تاریک کنید
برای دستیابی به اثر نورپردازی پویا، باید بقیه صحنه را تاریک کنید، به جز مناطقی که توسط منابع نور روشن شده است. می توانید این کار را با استفاده از قابلیت Godot’s CanvasModulate انجام دهید.
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 جدیدی که در ریشه صحنه اضافه شده است وصل کنید. گره CanvasModulate یک پوشش سیاه و سفید نیمه شفاف اعمال می کند و کل صحنه را به جز مناطقی که با نور روشن می شوند تاریک می کند.
یک متغیر ثابت DARKNESS ایجاد کنید که شدت تاریکی اعمال شده روی صحنه را تعیین می کند. با تنظیم مقدار DARKNESS، میتوانید کنترل کنید که صحنه تا چه حد زمانی که توسط نور روشن نمیشود، تاریک میشود. مقدار بالاتر منجر به یک صحنه تاریک تر می شود، در حالی که مقدار کمتر باعث می شود صحنه کمتر تاریک شود.
سایه روشن را انتخاب کنید
برای ایجاد سایه، باید گره های 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 را در درخت صحنه انتخاب کنید.
- در پنل Inspector، ویژگی Texture را در قسمت Texture پیدا کنید.
- روی کادر خالی بافت کلیک کنید و بافت سبک مورد نظر خود را از مرورگر فایل انتخاب کنید.
اکنون منبع نور شما نوری را با شکل و رنگ مشخص ساطع میکند و به نور و سایههای پویا شما حس بصری جذابی میافزاید.
از جمله ویژگی های اضافی
علاوه بر تنظیمات اولیه نور و سایههای پویا، میتوانید ویژگیهای اضافی مختلفی را برای ارتقای جذابیت بصری و تجربه گیمپلی بیشتر معرفی کنید. در اینجا چند ایده برای بررسی وجود دارد:
انیمیشن های نور
منابع نوری خود را با افزودن انیمیشن به آنها زنده کنید. به عنوان مثال، میتوانید چراغهای سوسوزن برای مشعلها یا شمعها ایجاد کنید، حرکت آتش کمپ را شبیهسازی کنید یا حتی جلوهای تپنده به گویهای جادویی اضافه کنید.
چرخه روز-شب
یک چرخه روز و شب پویا را اجرا کنید که به تدریج شدت و رنگ نورها را با پیشرفت زمان درون بازی تغییر می دهد. این ویژگی می تواند غوطه وری را افزایش دهد و با توجه به زمان روز، حالات مختلفی ایجاد کند.
محو شدن نور
برای جلوگیری از جابجایی های ناگهانی که ممکن است غوطه وری را بشکند، انتقال های صاف برای تغییرات شدت نور ایجاد کنید. با محو شدن تدریجی نورها به داخل و خارج، میتوانید جلوهای طبیعیتر و از نظر بصری دلپذیر به دست آورید.
سایه های پویا
به جای استفاده از سایههای ثابت، سایههای پویا را به اشیا یا کاراکترهای متحرک اضافه کنید. میتوانید این کار را با استفاده از منابع نور اضافی که حرکت شخصیتها را دنبال میکنند، انجام دهید و توهم بهروزرسانیهای سایههای بیدرنگ را ایجاد کنید.
جلوه های صوتی بدون حق چاپ
جلوه های صوتی نقش مهمی در ایجاد احساس زنده و پویایی در دنیای بازی شما ایفا می کند. برای تکمیل نور و سایههای پویا، جلوههای صوتی بدون حق چاپ را در نظر بگیرید.
بهترین روش ها برای نورپردازی و سایه های پویا
در حالی که نور و سایه های پویا می توانند بازی شما را تا حد زیادی بهبود بخشند، اجرای نادرست ممکن است بر عملکرد و کیفیت بصری تأثیر منفی بگذارد. در اینجا برخی از بهترین روش ها وجود دارد که باید به خاطر داشته باشید:
بهینه سازی منابع نور
تعداد منابع نور فعال را به حداقل لازم برای جلوه بصری مورد نظر خود محدود کنید. نور بیش از حد می تواند به طور قابل توجهی بر عملکرد، به خصوص در دستگاه های پایین تر تأثیر بگذارد.
از پخت سبک استفاده کنید
برای صحنه ها یا اشیاء ایستا، برای بهبود عملکرد، اطلاعات نور را آماده کنید. پخت نور دادههای روشنایی را از قبل محاسبه میکند و نیاز به محاسبات بلادرنگ در طول بازی را کاهش میدهد.
مسدود کننده های ساده را انتخاب کنید
هنگام راهاندازی گرههای LightOccluder2D، تا جایی که ممکن است، اشکال ساده را انتخاب کنید. مسدود کننده های پیچیده با رئوس زیاد می توانند منجر به مشکلات عملکرد شوند. در صورت امکان از چند ضلعی های ساده یا پاره های خط برای مسدود کننده ها استفاده کنید.
جداسازی و لایه بندی
از سیستم دید و لایه بندی گودو استفاده کنید تا اطمینان حاصل کنید که نورها و سایه ها فقط برای مناطق قابل مشاهده محاسبه می شوند. از بین بردن نورها و سایه های خارج از صفحه نمایش می تواند عملکرد را به طور قابل توجهی بهبود بخشد.
با پیروی از این بهترین شیوهها و اجرای دقیق ویژگیهای اضافی، میتوانید نور و سایههای پویا خیرهکننده و فریبنده ایجاد کنید که کیفیت کلی بازی پلتفرمر شما را بالا میبرد.
جذابتر کردن بازیهای گودو با نورپردازی و سایههای پویا
نور و سایه های پویا به دنیای بازی شما روح می بخشد. آنها محیطی فراگیرتر و جوی ایجاد می کنند و بازیکنان را عمیق تر به تجربه گیم پلی می کشانند. تأثیر متقابل نور و سایه می تواند احساسات را برانگیزد، لحن را تنظیم کند و داستان بصری بازی شما را افزایش دهد.
چه یک سیاه چال تاریک مرموز باشد یا یک شب آرام مهتابی، نورپردازی پویا گیم پلی بازی را غنی می کند و تاثیری ماندگار بر بازیکنان می گذارد.