Big Tuto SFML 2 / Action-RPG 2 / Expert : Legends of Meruvia

Chapitre 3 : L'éditeur de cinématiques

 

Tutoriel présenté par : Stéphane Barthélémy (Stephantasy)
Date d'écriture : 15 août 2016
Date de révision : -

 

   L’éditeur est un outil qui va nous permettre de créer des scénarios et de les exporter sous forme de fichier texte. Ces derniers seront lus par notre gestionnaire. wink


   1. Présentation


   L’éditeur est un fichier Excel qui contient des macros (qu’il vous faudra activer si vous souhaitez l’utiliser cheeky). Il a pour objectif de simplifier la création d’un scénario en utilisant un langage plus « humain » (par exemple : « Volume Musique ; Augmenter ; 100 » est plus parlant que « 4 ; 0 ; 100 »). laugh

   Il est composé de plusieurs zones dont vous trouverez une présentation ci-dessous et la manière de les utiliser un peu plus bas.


         a) Zone d’édition


   C’est la seule partie éditable du fichier. C’est dans la zone d’édition que l’on va lister les actions à réaliser.
 

 

 

         b) Panneau de contrôle


   Le panneau de contrôle permet de réaliser diverses actions dans notre fichier. Nous les verrons en détails plus loin.
 


         c) Outils


   Deux outils sont offerts gracieusement avec l’éditeur ! laugh
   Code de couleur permet soit de récupérer le code d’une couleur, soit d’afficher la couleur correspondante à un code.
 

 

   Colorer les cellules permet de se repérer dans la zone d’édition en surlignant une action désirée.

 

         d) Table des actions


   Cette table contient la liste des actions possible dans un scénario. La colonne « Action » contient les mots-clés que l’on va utiliser dans la zone d’édition et la colonne « Id » est le nombre qui sera utilisé pour désigner cette action dans la classe « Cinematic ».

 

 

   Les colonnes « ParamX » et « Commentaire » ne sont que des indications pour nous aider à remplir les champs dans la zone d’édition.

Note importante : L’ordre des actions doit être le même que celui de l’énumérateur « ActionType » dans la classe «Cinematic»!

Information : Nous verrons plus loin comment ajouter une nouvelle action. wink


         e) Table des paramètres


   Cette table à un rôle similaire à la table des actions. Elle contient les valeurs permettant de traduire les paramètres des actions lors de la création du fichier de sortie. Ceci a pour but de simplifier le code du gestionnaire, car il est plus facile et efficace de travailler avec des Integer qu’avec des Stringwink
 

 

   Par exemple, lorsque l’on écrit l’action suivante :

Sprite Control ; Player ; Go_Up ; Marche ; 230 ; 1


   Le fichier de sortie contiendra : 

1 ; Player ; 2 ; 0 ; 230 ; 1
 

Note importante : L’ordre des paramètres doit être le même que celui de la table des actions !

 

   2. Fonctionnement
         a) La zone d’édition


   À chaque ligne correspond une action. Une action est composée d’un Id, d’un nom, de quatre paramètres possibles, d’une condition et d’un commentaire.
 

 

   La cellule « No » permet de définir le numéro du scénario. Ce champ est utilisé dans le nom du fichier exporté.

   L’Id est généré automatiquement, ce n’est pas la peine de s’en occuper. Il correspond simplement à l’ordre des actions. wink

   Le nom de l’action provient de la table des actions. Une action correspond à ce que l’on souhaite réaliser dans notre scénario. Par exemple, si on souhaite faire une pause dans le déroulement de la cinématique, on utilisera l’action « Wait ».

   Les paramètres dépendent de l’action, en ce sens où chaque action a besoin de paramètres spécifiques. Certaines ont un seul paramètre, d’autres en ont quatre. Par exemple, l’action « Wait » n’a qu’un paramètre : le nombre de millisecondes que l’on souhaite attendre.

   La condition définit si le gestionnaire doit exécuter cette action tout de suite ou plus tard. Le plus souvent, on voudra l’exécuter sur-le-champ. Mais il arrive que cela ne soit pas nécessaire.

 

 

   Enfin, le champ commentaire ne sert qu’à ajouter des informations. Son contenu n’est pas exporté dans le fichier de sortie. wink

   Voilà pour ce qui est de la zone d’édition. Vous trouverez un peu plus bas un exemple concret avec la création d’un scénario complet.

 

         b) Les commandes

 

   Voici les différentes commandes ainsi que leur action :

 

   Validation Scenario permet de valider l’exactitude de notre scénario. Cela consiste essentiellement à s’assurer que les actions entrées contiennent bien les paramètres attendus. La cellule se colore en rouge en cas d’erreur.

   Voici les erreurs détectées :

- Le nom de l’action n’a pas été trouvé dans la table des actions.
- Le nom du paramètre n’a pas été trouvé dans la table des paramètres.
- Il manque un paramètre.
- Le paramètre entré n’est pas celui attendu.
- Il manque la condition.
 

 

   Exporter Scenario traduit les éléments de la zone d’édition en code interprétable par le gestionnaire de la classe « Cinematic » de notre jeu.

 

  La traduction est simple :

- On lit le nom de l’action et on le remplace par son Id (disponible dans la table des actions)
- Idem pour les paramètres

   Avant de tenter de créer le fichier, la macro d’exportation effectuera une validation en appelant « Validation Scenario ». Si le fichier n’est pas valide, il ne sera pas exporté ! surprise

   Le nom du fichier sera « scenario_ » suivi du numéro du scénario.

 

 

Note : Attention de bien préciser l’extension du fichier en « .txt » lors de l’export, car Excel proposera toujours « .xlsx » par défaut (mais seulement la première fois après chaque ouverture du fichier « Scenario_Editor »). Il n’existe pas, à ma connaissance, de solution à ce comportement étrange…

 

 

   Clear vide la zone d’édition. S’il y a des données à l’intérieur, on vous proposera :

- De supprimer quand même les données,
- De sauvegarder d’abord les données,
- D’annuler la commande.
 

 

   Load charge un scénario enregistré. Une fenêtre s’ouvre pour vous permettre de choisir le scénario désiré.

 

 

Note : Il exécute la commande « Clear » avant de charger les données, donc si la zone d’édition n’est pas vide, voir le détail de la commande « Clear ».

 

 

   Import permet de lire un fichier scénario et de le convertir avant de l’afficher dans la zone d’édition.

 

Note : Cette fonctionnalité n’est pas encore disponible ! Veuillez nous excuser pour la gêne occasionnée. cheeky

 

 

   Save permet de sauvegarder les données présentes dans la zone d’édition, peu importe leur état. Lors d’une première sauvegarde, un nouvel onglet sera créé. Ensuite, on vous demandera confirmation avant d’écraser les données existantes.

 

Attention, le scenario en cours est sauvegardé, mais pas le fichier Excel ! Il faut sauvegarder le fichier manuellementcheeky

 

 

   Code de couleur permet d’avoir une couleur ou un code. Il y a trois modes de fonctionnement :

- Sélectionnez la cellule sous « Code », entrez un code et appuyez sur « Push! », la couleur associée s’affichera dans la cellule « Couleur ».
- Sélectionnez la cellule sous « Couleur », appliquez une couleur et appuyez sur « Push! », le code associé s’affichera dans la cellule « Code ».
- Sélectionnez n’importe quelle cellule et appuyez sur « Push! », son code s’affichera dans la cellule « Code » et la couleur de la cellule s’affichera dans la cellule « Couleur ».

 

Note : Cet outil n’est pas vraiment utile dans l’état actuel de l’éditeur. frown

 

 

   Colorer les cellules permet de colorer toutes les cellules contenant le nom de l’action choisie. Pour cela, sélectionnez une cellule de la colonne « Action » de la zone d’édition ou dans la table des actions et appuyez sur « Color Action ».

   Cette fonctionnalité est utile lorsque le scénario est grand et qu’il y a beaucoup d’actions. wink

 

   3. Skip


   Cette fonctionnalité est offerte au bon vouloir du créateur du scénario. Pour être disponible, le Skip doit être défini. Cela permet de répondre à la question suivante : « Que faut-il faire si le joueur passe la cinématique ? ». Il existe alors trois comportements liés à cette commande.


         a) Pas de Skip de prévu

 

   S'il n'y a pas de skip de prévu, la demande du joueur sera purement et simplement ignorée ! surprise Sinon, on ne peut pas être certain que la cinématique se termine correctement (exemple : le scénario baisse la musique, on skip => Fin de la cinématique => plus de musique dans le jeu frown).


         b) Skip prévu, mais on ne Skip pas


   Dans ce cas-là, lorsque la ligne contenant l’action « Skip » sera lue, le gestionnaire va ignorer la commande et tout ce qui suit. Le scénario prendra fin.


         c) Skip prévu, on Skip

 

   Lors d’une demande de Skip, le gestionnaire cesse la lecture et l’exécution des actions. Puis, il cherche la ligne contenant l’action « Skip ». S’il ne trouve pas de « Skip », voir le point a. S’il le trouve, il lit et exécute toutes les actions qui suivent la commande.


         d) Bonus : On Skip pendant les actions d’un Skip !

 

   Bien tenté, mais le gestionnaire sait qu’un Skip a déjà été demandé et il fera semblant de n’avoir rien entendu. wink

 

Note : Pour demander un Skip, il faut appuyer sur la touche [ENTRÉE] durant une cinématique. Voir le chapitre suivant concernant la création d’un scénario pour en voir un exemple concret. wink

 

    4. Avertissement


   L’éditeur est un outil de développement personnel, prévu pour vous aider et vous faciliter la vie dans la création de cinématiques. Bien qu’il soit doté d’un système de sauvegarde et de messages d’avertissements, il n’est pas programmé pour faire face aux situations non prévues. Ainsi, vous êtes donc responsable de vos actions ! Pensez à sauvegarder et à exporter vos scénarios régulièrement afin d’éviter de perdre votre travail en cas de problème. wink


   Comme bien souvent avec les outils faits maison, ils sont souvent difficiles d’accès aux personnes ne les ayant pas conçus ! J’ai tout de même tenté de le rendre le plus accessible possible.
   Enfin, il ne faut pas modifier le nom des onglets, ni celui des champs et ne surtout pas ajouter ou supprimer des lignes ou colonnes. En fait, ne touchez à rien… (Hormis la zone d’édition, cela va sans dire.) cheeky

 

   Voilà, c'est tout pour ce chapitre ! wink
   Dans le prochain, on verra comment créer une cinématique de A à Z ! A bientôt ! angel
         Stephantasy

   

 

 

This site uses cookies to enable you to log in. We do not store or sell any personal data. By continuing to use this website, you agree to their use. Thanks!