Créer un système de dialogue dans Godot avec GDScript

Dans le développement de jeux, un gameplay attrayant et une narration captivante sont essentiels pour créer des expériences mémorables. Le système de dialogue est un outil puissant qui peut vous aider à atteindre cet objectif.


VIDÉO MUO DU JOUR

FAIRE DÉFILER POUR CONTINUER AVEC LE CONTENU

Avec un système de dialogue bien implémenté, les personnages peuvent communiquer, partager des informations et interagir avec le joueur, ajoutant ainsi de la profondeur et de l’immersion à votre jeu.


Mise en place de votre jeu Godot

Commencez par créer les bases de votre jeu. Pour cet exemple, créez un environnement simple en 2D avec un personnage contrôlable qui peut se déplacer à l’aide des touches fléchées.

Le code utilisé dans cet article est disponible dans ce dépôt GitHub et est libre d’utilisation sous la licence MIT.

Commencez par créer une nouvelle scène pour votre personnage. A l’intérieur de cette scène, ajoutez les composants nécessaires. Créez un CharacterBody2D pour représenter le corps du personnage du joueur. Attachez un nœud CollisionShape2D avec une forme rectangulaire pour définir la zone de collision du joueur.

Ajoutez maintenant le mouvement du personnage et l’interaction avec les plateformes à l’aide de GDScript. Remplacez le script par défaut du nœud CharacterBody2D par le code suivant :

 extends CharacterBody2D

var speed = 300

func _physics_process(delta):
    var input_dir = Vector2.ZERO

    if Input.is_action_pressed("ui_left"):
        input_dir.x -= 1

    if Input.is_action_pressed("ui_right"):
        input_dir.x += 1

    if Input.is_action_pressed("ui_up"):
        input_dir.y -= 1

    if Input.is_action_pressed("ui_down"):
        input_dir.y += 1

    velocity = input_dir.normalized() * speed
    move_and_collide(velocity * delta)

Ce script permet à votre personnage de se déplacer vers la gauche, la droite, le haut et le bas en fonction des entrées de la touche fléchée. Le script move_and_collide garantit que le personnage interagit avec les plates-formes et réagit aux collisions.

jeu simple avec joueur et objet dans godot

Ajouter la boîte de dialogue

Vous pouvez maintenant commencer à créer le système de dialogue. La première étape consiste à ajouter une boîte de dialogue qui affichera du texte lorsque votre personnage interagira avec des objets ou des PNJ spécifiques.

Dans votre Corps de personnage2D introduire quelques variables supplémentaires pour gérer la boîte de dialogue et son contenu :

 var dialogue_box: Label
var close_button: Button
var dialogue_lines: Array = ("Hello, adventurer!", "Welcome to our village.")

var current_line: int = 0
var line_timer: float = 0

Le boîte_de_dialogue sera responsable de l’affichage du texte du dialogue, tandis que la fonction bouton_de_fermeture permettra aux joueurs de fermer la boîte de dialogue lorsque cela est nécessaire.

Dans le Prêt créer et initialiser la boîte de dialogue :

 func _ready():
    dialogue_box = Label.new()
    dialogue_box.visible = false
    add_child(dialogue_box)

Affichage du texte du dialogue

Vous pouvez maintenant vous concentrer sur l’affichage du texte dans la boîte de dialogue. Vous pouvez faire en sorte que le texte s’étende sur plus d’une ligne et le faire défiler, en révélant une ligne de texte à la fois.

Modifiez votre processus_physique fonction permettant de gérer l’affichage des lignes de dialogue :

 if line_timer > 0:
    line_timer -= delta
elif current_line < dialogue_lines.size():
    show_next_dialogue_line()

Ce segment de code vérifie si la fonction line_timer est supérieur à 0. Si c’est le cas, il diminue la minuterie de la valeur delta. Si le temporisateur n’est pas actif et qu’il y a plus de lignes de dialogue à afficher, il appelle la fonction show_next_dialogue_line fonction.

Implémenter la fonction montrer_la_ligne_de_dialogue_suivante comme suit :

 func show_next_dialogue_line():
    dialogue_box.text = dialogue_lines(current_line)
    current_line += 1

   
    line_timer = 3.0

Cette fonction met à jour le texte de la boîte de dialogue avec la ligne de dialogue actuelle et incrémente la valeur de la ligne de dialogue. ligne_courante index. L’index line_timer garantit que chaque ligne est affichée pendant une brève période avant de passer à la ligne suivante.

texte du dialogue dans godot

Ajout d’un bouton de fermeture

Vous pouvez maintenant donner aux joueurs la possibilité de fermer la boîte de dialogue et de continuer à jouer. Pour ce faire, vous disposez d’un bouton de fermeture qui, lorsqu’il est actionné, masque la boîte de dialogue et permet au joueur de reprendre sa route.

Tout d’abord, modifiez le fichier prêt pour créer un bouton de fermeture et y attacher ses fonctionnalités.

 func _ready():
    dialogue_box = Label.new()
    dialogue_box.visible = false
    add_child(dialogue_box)

    close_button = Button.new()
    close_button.text = "Close"
    close_button.position = Vector2(50, 30)
    close_button.visible = false
    close_button.pressed.connect(_on_close_button_pressed)
    add_child(close_button)

Ce code crée une instance de la fonction Bouton et personnalise son apparence et sa position. Il relie également la classe pressé signal au _on_close_button_pressed fonction.

Implémentez maintenant la fonction _on_close_button_pressed . Dans cette fonction, définissez la visibilité de la boîte de dialogue et du bouton de fermeture sur faux. Cela permet de cacher l’interface de dialogue au joueur.

N’oubliez pas de réinitialiser le ligne_courante à 0 pour que le dialogue reprenne depuis le début la prochaine fois que le joueur entame une conversation :

 func _on_close_button_pressed():
    dialogue_box.visible = false
    close_button.visible = false
    current_line = 0

Grâce à ces modifications, les joueurs pourront engager un dialogue et fermer la boîte de dialogue lorsqu’ils seront prêts à continuer à explorer ou à interagir avec le monde du jeu.

boutons et texte de dialogue dans godot

Meilleures pratiques pour votre système de dialogue

Alors que vous continuez à développer et à affiner votre système de dialogue, les meilleures pratiques suivantes vous aideront à vous assurer que votre système améliore au maximum la narration de votre jeu et l’engagement des joueurs.

La cohérence est essentielle

Maintenez un ton, un style d’écriture et un vocabulaire cohérents dans votre système de dialogue. La cohérence aide les joueurs à se connecter aux personnages et à l’univers du jeu, créant ainsi une expérience homogène et immersive.

Créer des voix de personnages

Chaque personnage doit avoir une voix distincte et une personnalité qui se reflète dans ses dialogues. Tenez compte de leur passé, de leurs motivations et de leurs émotions lorsque vous écrivez leurs répliques.

Cette différenciation ajoute de la profondeur à vos personnages et rend les interactions plus mémorables. Vous pouvez facilement ajouter différents sons pour différents personnages dans Godot.

Choix significatifs

Concevez des choix de dialogue qui ont des conséquences significatives. Les choix qui ont un impact sur la narration, les relations ou même les mécanismes de jeu encouragent les joueurs à s’engager dans le système de dialogue et à s’investir émotionnellement dans leurs décisions.

Tests et itérations

Testez minutieusement vos séquences de dialogue pour repérer les fautes de frappe, les erreurs grammaticales ou les problèmes de rythme. Procédez à des tests de jeu pour recueillir les commentaires des joueurs et faire les ajustements nécessaires afin de vous assurer que le système de dialogue est fluide et qu’il améliore l’expérience globale du jeu.

Cohérence de l’interface utilisateur

Veillez à ce que la conception et la présentation du système de dialogue correspondent à la conception générale de l’interface utilisateur (IU) de votre jeu. La cohérence des éléments, des polices et des couleurs de l’interface utilisateur crée une expérience visuelle cohérente qui contribue à l’immersion dans le jeu.

En suivant ces bonnes pratiques, vous pouvez créer un système de dialogue qui non seulement améliore la narration de votre jeu, mais crée également une expérience mémorable et immersive pour les joueurs.

Améliorez vos jeux Godot avec des systèmes de dialogue

L’intégration d’un système de dialogue dans vos jeux Godot peut améliorer l’engagement des joueurs et révolutionner votre narration. En permettant aux personnages de communiquer, d’exprimer leurs émotions et de réagir aux décisions du joueur, vous créez un univers de jeu plus immersif et interactif.

Grâce à l’environnement convivial de Godot et à la puissance de GDScript, vous disposez des outils nécessaires pour créer des systèmes de dialogue convaincants qui entraînent les joueurs dans votre récit et améliorent leur expérience de jeu globale.

Laisser un commentaire