Pelajari cara membuat efek pencahayaan sendiri untuk mencerahkan game Anda.
Pencahayaan dan bayangan dinamis dapat meningkatkan kualitas visual dan pengalaman bermain game Godot Anda. Mereka menambahkan kedalaman, suasana, dan realisme, membuat dunia game Anda lebih imersif dan menarik.
Dengan fitur canggih Godot seperti CanvasModulate dan PointLight2D, membuat dan menyesuaikan pencahayaan dan bayangan dinamis adalah tugas yang mudah.
Menyiapkan Game Godot
Sebelum terjun ke pencahayaan dinamis, siapkan game 2D dasar mesin permainan Godot. Buat adegan baru dan tambahkan a KarakterBody2D untuk pemain.
Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.
Di dalam KarakterBody2D, tambah sebuah TabrakanBentuk2D dengan bentuk persegi panjang dan a Sprite2D untuk mewakili karakter pemain. Juga, buat beberapa platform menggunakan Tubuh Statis2D node.
Sekarang, implementasikan gerakan pemain dan tabrakan dengan batas layar menggunakan 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)
Dengan kode ini, pemain dapat bergerak ke kiri, kanan, atas, dan bawah sambil dibatasi dalam batas layar.
Menggelapkan Sisa Adegan
Untuk mendapatkan efek pencahayaan dinamis, Anda perlu menggelapkan sisa pemandangan kecuali area yang diterangi oleh sumber cahaya. Anda dapat melakukan ini menggunakan Godot CanvasModulate fitur.
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)
Lampirkan skrip ini ke yang baru Node2D ditambahkan di akar adegan. Itu CanvasModulate node akan menerapkan overlay hitam semi-transparan, menggelapkan seluruh pemandangan kecuali untuk area yang diterangi oleh lampu.
Buat variabel konstan KEGELAPAN, yang menentukan intensitas kegelapan yang diterapkan pada pemandangan. Dengan menyesuaikan nilai dari KEGELAPAN, Anda dapat mengontrol seberapa gelap pemandangan saat tidak diterangi oleh lampu. Nilai yang lebih tinggi akan menghasilkan pemandangan yang lebih gelap, sedangkan nilai yang lebih rendah akan membuat pemandangan menjadi kurang gelap.
Keluarkan Bayangan Cahaya
Untuk membuat bayangan, Anda perlu mengatur LightOccluder2D node pada rintangan yang seharusnya menghalangi cahaya. Misalnya, jika Anda memiliki dinding, platform, atau objek lain yang seharusnya menghasilkan bayangan, tambahkan a LightOccluder2D untuk masing-masing.
Buat yang baru LightOccluder2D node, dan sesuaikan bentuknya agar sesuai dengan bentuk rintangan di game Anda. Anda juga dapat menyesuaikan properti occluder seperti poligon Dan segmen untuk menyempurnakan perilaku pengecoran bayangan.
Tambahkan Lampu Segala Arah
Sekarang, tambahkan a PointLight2D node dengan tekstur untuk mewakili sumber cahaya Anda. Lampu titik memancarkan cahaya ke segala arah dan menciptakan efek iluminasi yang realistis.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Anda dapat menyesuaikan properti untuk mengontrol jangkauan dan warna cahaya yang dipancarkan oleh PointLight2D.
Anda juga dapat membuat atau mengimpor tekstur cahaya khusus untuk menentukan bentuk dan tampilan sumber cahaya Anda. Bisa berupa lingkaran sederhana atau bentuk yang lebih kompleks, tergantung suasana yang ingin diciptakan.
Untuk mengaplikasikan tekstur pada PointLight2D simpul, ikuti langkah-langkah berikut:
- Pilih PointLight2D simpul di pohon adegan.
- Di panel Inspektur, temukan properti Tekstur di bawah Tekstur bagian.
- Klik pada kotak tekstur kosong dan pilih tekstur ringan yang Anda inginkan dari browser file.
Sekarang, sumber cahaya Anda akan memancarkan cahaya dengan bentuk dan warna yang ditentukan, menambahkan sentuhan yang menarik secara visual pada pencahayaan dan bayangan dinamis Anda.
Termasuk Fitur Tambahan
Selain pengaturan dasar pencahayaan dan bayangan dinamis, Anda dapat memperkenalkan berbagai fitur tambahan untuk lebih meningkatkan daya tarik visual dan pengalaman bermain game. Berikut adalah beberapa ide untuk dipertimbangkan:
Animasi Ringan
Hidupkan sumber cahaya Anda dengan menambahkan animasi ke dalamnya. Misalnya, Anda dapat membuat lampu kelap-kelip untuk obor atau lilin, mensimulasikan gerakan api unggun, atau bahkan menambahkan efek denyut ke bola sihir.
Siklus Siang-Malam
Terapkan siklus siang-malam dinamis yang secara bertahap mengubah intensitas dan warna lampu seiring berjalannya waktu dalam game. Fitur ini dapat meningkatkan pencelupan dan menciptakan suasana hati yang berbeda tergantung pada waktu.
Cahaya Memudar
Buat transisi halus untuk perubahan intensitas cahaya guna menghindari pergeseran tiba-tiba yang dapat merusak imersi. Dengan memudarkan cahaya masuk dan keluar secara bertahap, Anda dapat memperoleh efek yang lebih alami dan menyenangkan secara visual.
Bayangan Dinamis
Daripada menggunakan bayangan statis, pertimbangkan untuk menambahkan bayangan dinamis ke objek atau karakter bergerak. Anda dapat melakukannya dengan menggunakan sumber cahaya tambahan yang mengikuti pergerakan karakter, memberikan ilusi pembaruan bayangan waktu nyata.
Efek Suara Bebas Hak Cipta
Efek suara memainkan peran penting dalam membuat dunia game Anda terasa hidup dan dinamis. Pertimbangkan untuk menggabungkan efek suara bebas hak cipta untuk melengkapi pencahayaan dan bayangan dinamis Anda.
Praktik Terbaik untuk Pencahayaan dan Bayangan Dinamis
Meskipun pencahayaan dan bayangan dinamis dapat sangat meningkatkan permainan Anda, penerapan yang tidak tepat dapat berdampak negatif pada performa dan kualitas visual. Berikut adalah beberapa praktik terbaik yang perlu diingat:
Mengoptimalkan Sumber Cahaya
Batasi jumlah sumber cahaya aktif seminimal mungkin yang diperlukan untuk efek visual yang Anda inginkan. Lampu yang berlebihan dapat memengaruhi kinerja secara signifikan, terutama pada perangkat kelas bawah.
Gunakan Baking Ringan
Untuk pemandangan atau objek statis, pertimbangkan memanggang informasi pencahayaan untuk meningkatkan performa. Light baking menghitung sebelumnya data pencahayaan, mengurangi kebutuhan perhitungan waktu nyata selama bermain game.
Pilih Occluders Sederhana
Saat mengatur LightOccluder2D node, pilih bentuk sederhana sedapat mungkin. Penghalang kompleks dengan banyak simpul dapat menyebabkan masalah kinerja. Gunakan poligon sederhana atau segmen garis untuk penutup jika memungkinkan.
Pemusnahan dan Pelapisan
Manfaatkan sistem visibilitas dan pelapisan Godot untuk memastikan bahwa cahaya dan bayangan hanya dihitung untuk area yang terlihat. Memusnahkan lampu dan bayangan di luar layar dapat meningkatkan kinerja secara signifikan.
Dengan mengikuti praktik terbaik ini dan menerapkan fitur tambahan dengan hati-hati, Anda dapat menciptakan pencahayaan dan bayangan dinamis yang memukau dan menawan yang meningkatkan kualitas keseluruhan gambar. game platformer Anda.
Membuat Game Godot Lebih Menarik Dengan Pencahayaan dan Bayangan Dinamis
Pencahayaan dan bayangan dinamis menghidupkan dunia game Anda. Mereka menciptakan lingkungan yang lebih imersif dan atmosfer, menarik pemain lebih dalam ke dalam pengalaman bermain game. Interaksi cahaya dan bayangan dapat memicu emosi, mengatur nada, dan meningkatkan penceritaan visual game Anda.
Baik itu ruang bawah tanah gelap yang misterius atau malam bulan yang tenang, pencahayaan dinamis memperkaya gameplay dan meninggalkan kesan abadi pada pemain.