Apprenez à contrôler la fenêtre d'affichage de votre jeu avec des actions de panoramique, de zoom et de mise à l'échelle.
Un système de caméra bien conçu peut aider à immerger les joueurs dans le monde du jeu et donner une meilleure idée de l'emplacement. La caméra agit comme les yeux du joueur, lui permettant de naviguer et d'interagir avec le monde du jeu.
Créer un système de caméra dans Godot est simple mais puissant. Vous pouvez facilement configurer la caméra pour suivre le joueur, limiter ses mouvements à la zone de jeu et même ajouter un zoom et une mise à l'échelle dynamiques en fonction des événements du jeu.
Créer un jeu simple
Avant de commencer, vous devez créer un monde de jeu 2D et un personnage dans votre Moteur de jeu Godot que la caméra peut suivre.
Créez une nouvelle scène 2D et ajoutez un PersonnageCorps2D nœud. Cela servira de personnage de notre joueur. Dans le CharacterBody2D, ajoutez un CollisionShape2D et définissez sa forme sur RectangleForme2D pour assurer la présence physique du joueur dans le monde.
Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.
Aussi, à l'intérieur du CharacterBody2D, ajoutez un Sprite2D node et assignez-lui votre image de sprite de joueur. Créez un nouveau script attaché au nœud CharacterBody2D et ajoutez le code suivant :
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 personnage du joueur peut désormais se déplacer dans les quatre directions et entrera en collision avec les plates-formes.
Mise en œuvre d'un système de caméra de suivi
L'étape suivante consiste à créer une caméra qui suit les mouvements du joueur. Ajouter un Caméra2D nœud en tant qu'enfant de votre PersonnageCorps2D nœud. Cela garantit que la caméra suivra toujours le joueur. Pour rendre le mouvement plus fluide, activez la propriété de lissage de position du Caméra2D nœud.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Mise en œuvre des limites et des restrictions de caméra
Il est souvent important de limiter la vue du joueur à la zone de jeu. Si vous ne gérez pas cela correctement, cependant, la caméra peut révéler des zones qui sortent du cadre du jeu. Il peut s'agir d'espaces ou de zones incomplètes.
Godot fournit un moyen simple de définir les limites de la caméra et de restreindre ses mouvements dans la zone de jeu.
Dans le Caméra2D propriétés du nœud, il y a quatre variables: limit_left, limit_top, limit_right, et limit_bottom. Ceux-ci déterminent les limites de la caméra. Vous pouvez définir ces valeurs en fonction de la taille de votre monde de jeu.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Remplacer your_game_area_width et your_game_area_height avec la largeur et la hauteur de votre monde de jeu. Ce script limite efficacement la caméra dans la zone souhaitée, offrant une expérience de jeu nette et ciblée au joueur.
Gestion du zoom et de la mise à l'échelle de la caméra
Le zoom et la mise à l'échelle dynamiques peuvent contribuer à créer des moments percutants dans le jeu. Par exemple, vous souhaiterez peut-être zoomer sur le personnage du joueur lors d'une action puissante ou effectuer un zoom arrière pour révéler un ennemi de grande taille ou une vue panoramique du monde du jeu.
Godot facilite le zoom et la mise à l'échelle avec le Zoom propriété de la Caméra2D nœud. Cette propriété est un Vector2, avec (1, 1) étant le niveau de zoom par défaut. Des valeurs plus élevées effectueront un zoom arrière, faisant apparaître les objets visualisés plus petits, tandis que des valeurs inférieures effectueront un zoom avant, faisant apparaître les objets plus grands.
Pour zoomer, vous pouvez utiliser :
$Camera2D.zoom = Vector2(0.7, 0.7)
Et pour réinitialiser le zoom, utilisez :
$Camera2D.zoom = Vector2(1, 1)
Les valeurs que vous transmettez à Vector2() déterminent le niveau de zoom sur les axes X et Y. Une valeur de zoom de (0,7, 0,7) signifie que la caméra effectuera un zoom avant, tandis qu'une valeur de (1,5, 1,5) effectuera un zoom arrière.
Vous devez généralement conserver la même valeur pour les deux axes afin de conserver le rapport d'aspect, mais vous pouvez expérimenter différentes valeurs pour obtenir des effets uniques.
Inclure des fonctionnalités supplémentaires
Lors de la création d'un système de caméra pour votre jeu, vous pouvez intégrer de nombreuses fonctionnalités supplémentaires pour améliorer l'expérience.
Secouement de la caméra
Un effet commun utilisé dans de nombreux jeux, en particulier jeux de plateforme, est le bougé de l'appareil photo. Ceci est généralement utilisé pour transmettre l'impact ou l'intensité à certains moments du jeu, comme une explosion ou l'attaque puissante d'un personnage.
Vous pouvez facilement ajouter cette fonction dans Godot en créant un secouer() fonction. Vous pouvez spécifier la durée et l'intensité de l'effet de secousse en fonction de l'événement spécifique dans le jeu.
Les sons peuvent grandement améliorer la sensation de lieu et de mouvement dans un jeu. Cela peut être aussi simple que de jouer un swoosh effet sonore lorsque la caméra se déplace rapidement ou effectue un panoramique, ou aussi complexe que la modification du volume ou de la hauteur des sons ambiants ou des morceaux de musique en fonction de l'emplacement de la caméra ou du niveau de zoom.
Par exemple, vous souhaiterez peut-être baisser le volume d'une chanson lorsque la caméra effectue un zoom arrière pour donner une impression de distance.
Éclairage dynamique
Vous pouvez également lier des effets d'éclairage dynamiques à votre appareil photo. Lorsque votre caméra se déplace dans le monde du jeu, vous pouvez modifier les conditions d'éclairage pour refléter les nouveaux environnements ou pour mettre en évidence des zones ou des objets spécifiques.
Cela peut inclure des choses comme assombrir progressivement la scène lorsque la caméra plonge dans une grotte ou mettre en évidence un objet clé avec un projecteur.
Effets de transition de caméra
Vous pouvez créer divers effets de transition lorsque vous passez d'une caméra à l'autre. Il peut s'agir d'une simple coupure où la vue saute instantanément d'une caméra à l'autre ou d'un fondu où la vue passe progressivement d'une caméra à l'autre.
Vous pouvez utiliser des transitions plus complexes, comme un volet, un glissement ou un iris, avec un codage et une animation supplémentaires.
Meilleures pratiques pour l'ajout d'un système de caméra
Lors de l'ajout d'un système de caméra à votre jeu, il existe plusieurs bonnes pratiques à garder à l'esprit pour garantir la meilleure expérience de jeu possible.
Évitez les mouvements brusques de la caméra
Des changements soudains dans la perspective de la caméra peuvent désorienter les joueurs et perturber le gameplay. Visez toujours des transitions de caméra fluides pour maintenir l'immersion.
Limiter le bougé de l'appareil photo
Alors qu'un bougé de caméra peut ajouter un impact à certains événements, trop peut rendre le jeu difficile à suivre et inconfortable à jouer. Utilisez cet effet avec parcimonie et modération.
Testez différents niveaux de zoom
Différents jeux et différentes situations au sein d'un jeu peuvent nécessiter différents niveaux de zoom. Testez soigneusement pour trouver le niveau de zoom le plus approprié pour chaque situation.
Considérez attentivement les limites de la caméra
Les limites de la caméra doivent être soigneusement définies pour s'adapter à la conception de vos niveaux. Vous ne voulez pas que le joueur voie en dehors du monde du jeu ou manque des éléments importants hors écran.
Prioriser l'expérience du joueur
L'objectif principal du système de caméra doit toujours être d'améliorer l'expérience du joueur. Qu'il s'agisse de fournir la meilleure vue de l'action, de souligner les moments clés ou d'aider le joueur à naviguer dans l'environnement, la caméra doit toujours contribuer à une meilleure expérience de jeu.
Rendre les jeux Godot plus engageants avec le système de caméra
Un système de caméra bien implémenté peut améliorer l'expérience de jeu globale. Il peut mettre l'accent sur l'action, aider à la narration et offrir une expérience plus immersive.
En contrôlant ce que le joueur voit et quand il le voit, vous pouvez guider son voyage dans le monde du jeu et rendre le gameplay plus dynamique et engageant.