Apprenez à créer vos propres effets d'éclairage pour égayer vos jeux.
L'éclairage et les ombres dynamiques peuvent améliorer la qualité visuelle et l'expérience de jeu de vos jeux Godot. Ils ajoutent de la profondeur, de l'atmosphère et du réalisme, rendant votre monde de jeu plus immersif et engageant.
Avec les fonctionnalités puissantes de Godot telles que CanvasModulate et PointLight2D, créer et personnaliser un éclairage et des ombres dynamiques est une tâche facile.
Configurer le jeu Godot
Avant de plonger dans l'éclairage dynamique, configurez un jeu 2D de base dans le moteur de jeu Godot. Créez une nouvelle scène et ajoutez un PersonnageCorps2D pour le joueur.
Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.
À l'intérieur de PersonnageCorps2D, ajouter un CollisionShape2D de forme rectangulaire et Sprite2D pour représenter le personnage du joueur. Créez également des plates-formes à l'aide de StaticBody2D nœuds.
Maintenant, implémentez le mouvement du joueur et la collision avec les limites de l'écran à l'aide de 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)
Avec ce code, le joueur peut se déplacer vers la gauche, la droite, le haut et le bas tout en étant contraint dans les limites de l'écran.
Assombrir le reste de la scène
Pour obtenir l'effet d'éclairage dynamique, vous devez assombrir le reste de la scène, à l'exception des zones éclairées par les sources lumineuses. Vous pouvez le faire en utilisant Godot CanvasModuler fonctionnalité.
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)
Attachez ce script à un nouveau Noeud2D ajouté à la racine de la scène. Le CanvasModuler node appliquera une superposition noire semi-transparente, assombrissant toute la scène à l'exception des zones éclairées par des lumières.
Créer une variable constante OBSCURITÉ, qui détermine l'intensité de l'obscurité appliquée à la scène. En ajustant la valeur de OBSCURITÉ, vous pouvez contrôler l'obscurité de la scène lorsqu'elle n'est pas éclairée par des lumières. Une valeur plus élevée donnera une scène plus sombre, tandis qu'une valeur plus faible rendra la scène moins sombre.
Ombre de lumière projetée
Pour projeter des ombres, vous devez configurer LightOcluder2D nœuds sur les obstacles qui devraient bloquer la lumière. Par exemple, si vous avez des murs, des plates-formes ou d'autres objets qui doivent projeter des ombres, ajoutez un LightOcluder2D à chacun.
Créer un nouveau LightOcluder2D nœud et ajustez sa forme pour qu'elle corresponde à la forme de l'obstacle dans votre jeu. Vous pouvez également ajuster les propriétés du bloqueur comme polygones et segments pour affiner le comportement de projection d'ombre.
Ajouter des lumières omnidirectionnelles
Maintenant, ajoutez un PointLumière2D nœud avec une texture pour représenter votre source de lumière. Les lumières ponctuelles émettent de la lumière dans toutes les directions et créent un effet d'éclairage réaliste.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Vous pouvez personnaliser les propriétés pour contrôler la plage et la couleur de la lumière émise par le PointLumière2D.
Vous pouvez également créer ou importer une texture lumineuse personnalisée pour définir la forme et l'apparence de votre source lumineuse. Il peut s'agir d'un simple cercle ou d'une forme plus complexe, selon l'ambiance que vous souhaitez créer.
Pour appliquer la texture sur PointLumière2D nœud, suivez ces étapes :
- Sélectionnez le PointLumière2D nœud dans l'arborescence des scènes.
- Dans le panneau Inspecteur, localisez la propriété Texture sous le Texture section.
- Cliquez sur la zone de texture vide et sélectionnez la texture lumineuse souhaitée dans le navigateur de fichiers.
Désormais, votre source de lumière émettra de la lumière avec la forme et la couleur définies, ajoutant une touche visuellement attrayante à votre éclairage dynamique et à vos ombres.
Inclure des fonctionnalités supplémentaires
En plus de la configuration de base de l'éclairage dynamique et des ombres, vous pouvez introduire diverses fonctionnalités supplémentaires pour améliorer encore l'attrait visuel et l'expérience de jeu. Voici quelques idées à considérer :
Animations Lumière
Donnez vie à vos sources lumineuses en y ajoutant des animations. Par exemple, vous pouvez créer des lumières scintillantes pour des torches ou des bougies, simuler le mouvement d'un feu de camp ou même ajouter un effet de pulsation à des orbes magiques.
Cycle jour-nuit
Implémentez un cycle dynamique jour-nuit qui change progressivement l'intensité et la couleur des lumières au fur et à mesure que le temps de jeu progresse. Cette fonctionnalité peut renforcer l'immersion et créer des ambiances différentes selon l'heure de la journée.
Décoloration de la lumière
Créez des transitions douces pour les changements d'intensité lumineuse afin d'éviter les changements brusques qui peuvent rompre l'immersion. En estompant progressivement les lumières, vous pouvez obtenir un effet plus naturel et visuellement agréable.
Ombres dynamiques
Au lieu d'utiliser des ombres statiques, envisagez d'ajouter des ombres dynamiques aux objets ou personnages en mouvement. Vous pouvez le faire en utilisant des sources lumineuses supplémentaires qui suivent le mouvement des personnages, donnant l'illusion de mises à jour des ombres en temps réel.
Effets sonores sans droits d'auteur
Les effets sonores jouent un rôle crucial pour rendre votre monde de jeu vivant et dynamique. Envisagez d'incorporer effets sonores libres de droit pour compléter votre éclairage dynamique et vos ombres.
Meilleures pratiques pour l'éclairage dynamique et les ombres
Bien que l'éclairage et les ombres dynamiques puissent grandement améliorer votre jeu, une mauvaise mise en œuvre peut avoir un impact négatif sur les performances et la qualité visuelle. Voici quelques bonnes pratiques à garder à l'esprit :
Optimiser les sources lumineuses
Limitez le nombre de sources lumineuses actives au minimum nécessaire pour l'effet visuel souhaité. Des lumières excessives peuvent avoir un impact significatif sur les performances, en particulier sur les appareils bas de gamme.
Utiliser la cuisson légère
Pour les scènes ou les objets statiques, envisagez d'ancrer les informations d'éclairage pour améliorer les performances. La cuisson de la lumière précalcule les données d'éclairage, réduisant ainsi le besoin de calculs en temps réel pendant le jeu.
Optez pour des obturateurs simples
Lors de la mise en place LightOcluder2D nœuds, optez pour des formes simples dans la mesure du possible. Les bloqueurs complexes avec de nombreux sommets peuvent entraîner des problèmes de performances. Utilisez des polygones simples ou des segments de ligne pour les obturateurs chaque fois que possible.
Abattage et marcottage
Utilisez le système de visibilité et de superposition de Godot pour vous assurer que les lumières et les ombres ne sont calculées que pour les zones visibles. L'élimination des lumières et des ombres hors écran peut améliorer considérablement les performances.
En suivant ces meilleures pratiques et en implémentant soigneusement des fonctionnalités supplémentaires, vous pouvez créer un éclairage et des ombres dynamiques époustouflants et captivants qui améliorent la qualité globale de votre jeu de plateforme.
Rendre les jeux Godot plus attrayants avec un éclairage et des ombres dynamiques
L'éclairage et les ombres dynamiques donnent vie à votre monde de jeu. Ils créent un environnement plus immersif et atmosphérique, entraînant les joueurs plus profondément dans l'expérience de jeu. L'interaction de la lumière et de l'ombre peut invoquer des émotions, donner le ton et améliorer la narration visuelle de votre jeu.
Qu'il s'agisse d'un mystérieux donjon sombre ou d'une nuit sereine au clair de lune, l'éclairage dynamique enrichit le gameplay et laisse une impression durable sur les joueurs.