Écrire un Scénario en Fountain : Interopérabilité, Rendu et Analyse

Introduction

Dans le premier article de cette série sur l’édition de scénario, nous avons pu voir comment écrire en Fountain nous permettait d’écrire nos scénarios dans n’importe quel logiciel d’édition de texte.

Dans cet article, nous allons explorer les possibilités d’interopérabilité offertes par ce format, avec un ensemble d’outils que j’ai développés pour répondre à mes besoins. Nul besoin d’utiliser l’éditeur Atom, présenté dans le deuxième article de la série, pour bénéficier de ce qui va être exposé, vous pouvez utiliser l’éditeur de texte ou de scénario de votre choix pour préparer vos fichiers Fountain. Cependant, travailler directement en Fountain aura quelques avantages.

Dans la mesure où la syntaxe Fountain ne repose que sur du texte brut, il est très facile de coder des fonctions (sous formes de webapps, de scripts etc) pour traiter/analyser le contenu de ces fichiers.

Ainsi, des mini webapps pour traiter du Fountain, il y en a plein, la plus part étant basée sur Fountain.js de mattdaly, une simple page web qui vous permet de déposer un fichier .fountain pour en faire le rendu en HTML. Il y en a d’autres, comme ScreenPlain, qui permet elle aussi d’avoir un rendu HTML ou au format FinalDraft, ou AfterWriting qui est capable de générer un export en PDF, et d’avoir des res rapports statistiques sur les dialogues.

Cependant, il n’y avait pas de solutions existantes pour mes besoins spécifiques :

  • Rendu en HTML responsif, pour une lecture agréable quelque soit le support, à partir d’un simple navigateur web.
  • Graphiques des dialogues, pour visualiser la répartition des dialogues entre les personnages.
  • Initialisation et rafraîchissement automatique, y compris en local, sans avoir à (re-)charger manuellement le fichier Fountain (vu que j’utilise le scénario en enregistrement, j’ai besoin que l’acteur puisse voir les changements sur celui-ci en tant réel sans avoir à actualiser la page manuellement).
  • La couleur sur le nom des personnages (oui, toujours ça !).

Ainsi me suis-je dit que j’allais me lancer dans le développement de ma propre mini webapp, en modant Fountain.js pour y rajouter les fonctionnalités désirées. Développé sur une période de 3 mois (un soir par ci par là) pendant l’écriture de la saison 2 de ma saga Alien 2347, l’app devrait être maintenant assez mature pour une présentation !

Si vous voulez voir une liste détaillée et technique des fonctionnalités que j’ai intégrées, ou si vous voulez contribuer / créer votre propre version, vous pouvez consulter le projet sur GitHub.

Usage

En Ligne

Vous pouvez tout simplement faire un glisser-déposer d’un fichier .fountain sur la version en ligne de l’application, accessible à l’adresse x-raym.github.io/Fountain.js/app/. Votre scénario sera analysé et afficher en HTML. Cependant, cette version ne gère pour l’instant pas les couleurs personnalisées; j’intégrerai peut-être cela dans le futur en fonction des retours.

Une simple invitation au glisser-désposer.

Localement

Vous pouvez télécharger l’application (elle fait moins de 1Mo) pour l’utiliser en Local. Vous n’aurez qu’à lancer le fichier index.html pour afficher la même page que la version en ligne.

Initialisation Automatique

Un des points forts de cette webapp est que vous pouvez analyser un scénario directement sans avoir à faire de glisser-déposer dans la page de chargement.

Petite restriction, seul FireFox permet d’utiliser l’affichage automatique à partir d’un fichier local. Les autres navigateurs ont des limitations sur les droits d’accès au fichiers locaux qui empêchent l’utilisation des fonctions que j’ai utilisées et ont besoin qu’un serveur web local soit créé.

Pour se faire, créer un sous-dossier dans le dossier de l’application, et placez-y une copie de votre fichier .fountain, puis une copie de /samples/sample.html à laquelle vous attribuez le même nom que votre .fountain. Ainsi, si vous avez un fichier MonScenario.fountain, placez le dans un dossier /MaSaga/ et placez y une copie de /samples/sample.html renommée en MonScenario.html. Un double-clique sur MonScenario.html ouvrira automatiquement un rendu de MonScenario.fountain dans votre navigateur. Vous pouvez placer autant de .fountain que vous voulez dans ces sous-dossiers.

Mise en place de l’Initialisation automatique d’un document.

Optionnellement, vous pouvez créer un fichier characters.json dans un dossier /assets à côté de votre .fountain pour que le rendu de celui-ci prenne en compte des informations spécifiques à vos personnages (comme leurs couleurs ou leurs groupes). Prenez comme repère celui fourni en exemple dans l’application pour créer le votre.

Si vous préférez avoir vos fichiers Fountain en dehors d’un sous-répertoire de l’application, il vous faudra éditer le fichier HTML pour que le chemin vers les ressources qu’il appelle soit valide.

Rendu

Le rendu est très similaire à celui de Fountain.js, cependant j’y ai rajouté quelques spécificités :

  • Plusieurs thèmes : clair et sombre (bleu foncé, inspiré par le thème de Atom)
  • Affichage compatible mobile
  • Bouton pour affichage en pleine largeur (utile pour les graphiques)
  • Colorisation des noms des personnages
  • Table des matières interactives pour les séquences
Quelques boutons permettent de personnaliser l’affichage.

Cerise sur le gâteau, le scénario se recharge chaque seconde pour voir si le fichier source à charger depuis le rendu, ce qui permet d’avoir un rendu quasi instantané pendant l »édition de votre scénario.

L’édition du fichier Fountain source à gauche avec Atom, et mise à jour de l’aperçu à droite sans rechargement de la page. Dans le cas précis, cela peut servir à modifier les lignes d’un scénario qu’un acteur serait en train de consulter sur un autre appareil (il verrait alors les changement s’opérer dans la foulée), ou d’afficher les statistiques du scénario au fur et à mesure de l’écriture.

Analyse

Équilibre des Dialogues

En plus de ces options d’initialisation et de rendu, votre rendu se voit enrichi de graphiques d’analyse des dialogues de votre scénario.

Tout d’abord, un classique mais indispensables diagramme à bâton horizontal, pour voir la répartition des dialogues par perso.

Une représentation visuelle et interactive de la répartition des dialogues entre les personnages, avec leurs couleurs respectives.

Vous pouvez filtrer l’analyse par séquence, et même changer l’unité de mesure utilisée.

Très inspiré par les graphiques et le propos des articles d’analyses de scénario faîtes par le journal d’essais visuels interactifs The Pudding (The Largest Ever Analysis of Film Dialogue by Gender: 2,000 scripts, 25,000 actors, 4 million lines, She Giggles, He Gallops), je me suis dit que ce serait bien aussi d’avoir un graphique de répartition des dialogues par groupes de caractères, en particuliers par genre. Une fonction que même les leaders des logiciels d’écritures de scénario ne proposent pas (j’avais contacté le support de CeltX pour leur soumettre leur idée, leur réponse était plutôt positive, mais de là à envisager une intégration, c’est tout autre chose).

Afin d’être totalement flexible, j’ai intégré cette fonctionnalités de manière à ce que les groupes puissent être nommés arbitrairement (il n’y a pas de groupe prédéfini). Voici le résultat :

Une visualisation de la répartition des dialogues par groupes de personnages. Nous pouvons voir un déséquilbre du temps de parole entre personnages masculins et féminins. À l’échelle d’une séquence, ce n’est pas forcément grave, mais Il serait intéressant de veiller à ce que le déséquilibre ne soit pas présent sur l’ensemble de l’épisode.

La définition des groupes (leurs types, leurs sous-catégories, leurs couleurs, leurs personnages attribués) se fait via le fichier /assets/characters.json déjà mentionné plus haut. Les graphiques sont générés automatiquement en fonction.

X-Range

Les graphiques d’équilibre de dialogues sont parfaits pour voir si un personnage n’occuperait pas toute l’attention (que ce soit volontaire ou non) à l’échelle d’une séquence ou d’un épisode. Cependant, ils ne rendent pas compte du rythme, de la répartition des lignes de dialogues, dans les séquences elles-mêmes.

C’est ainsi que j’ai eu l’idée d’intégrer un graphique de type X-Range, pour représenter l’ensemble des lignes de dialogues des épisodes en fonction des personnages et de leur position dans le scénario. Voici le résultat :

Cette visualisation permet de bien évaluer le rythme d’un dialogue. On voit que la répartition est plutôt équilibrée entre les personnages principaux, mais que certains personnages ont tendance a avoir es phrases plus longues, comme Zawn.

Remarquez la similarité entre cette affichage et celui du projet enregistré dans le logiciel de traitement sonore (REAPER) utilisé pour le réaliser :

Une capture d’écran du projet après enregistrement des dialogues sous REAPER. On voit la similarité avec la représentation X-Range du scénario.

Note : je rajouterai surement à un moment l’analyse de la durée des moment de description. Personnellement, j’écris surtout pour de la fiction sonore, où le dialogue est l’un des seuls moteurs du récit, il n’y a quasiment aucune ligne de description à part une onomatopée ici et là.

Conclusion

Travailler sur un format simple et universel permet à de nombreuses personnes de développer des fonctionnalités personnalisées pour leur processus d’écriture, sans avoir à attendre qu’un développeur les intègre dans son logiciel. Tout à chacun peut profiter librement des outils faits et partagés par les autres (l’esprit de partage sous-jacent à l’utilisation de formats ouverts favorisant la diffusion de ces outils), voir même, de les modifier, pour les adapter selon leur propres propres besoins !

Beaucoup d’autres choses peuvent être imaginées autour du traitement des fichiers Fountain : génération de tables des matières des séquences, liste des personnages par ordre d’apparition… Il s’avère justement que je me suis penché sur le sujet par curiosité (vous pouvez consulter les scripts Python que j’ai codés sur Fountain-Scripts ! Je n’ai pas encore écrit de doc, mais je le ferai si des personnes sont intéressées).

Pour ma part, je suis satisfait d’avoir réussi à mettre en plat des solutions capables de répondre à mes besoins, que ce soit au niveau de l’écriture, du rendu, ou de l’analyse. Assez codé pour l’instant, il est temps de retourner à l’écriture de scénario !


Au dela de la conception de l’outil présenté, l’écriture de cet article a demandé plusieurs heures de rédaction et de traduction. Vous pouvez soutenir ce projet en faisant une donation !

Merci à Marie pour la relecture !