Voyez votre histoire.
Pas seulement votre code.

L'Organigramme narratif de BranchPy convertit votre script Ren'Py en un graphe interactif en direct dans VS Code. Chaque label, saut, choix de menu et appel devient un nœud sur lequel cliquer — sans outil externe.

🔀 Graphe interactif ✓ Navigation par saut ⚡ Clic vers la source 💾 Dispositions sauvegardables 📦 Regrouper & réduire les labels

Les scripts Ren'Py ne vous disent pas où ils vont

Un projet Ren'Py en production peut contenir des centaines de labels répartis dans des dizaines de fichiers .rpy. jump chapter3_intro n'est qu'une chaîne de caractères. Sans un outil qui résout chaque saut, appel et choix de menu, vous naviguez dans votre propre histoire à l'aveugle.

BranchPy cartographie chaque label, saut et branche de vos scripts et l'affiche sous forme d'organigramme panoramique et zoomable — directement dans Visual Studio Code. Cliquer sur un nœud ouvre le fichier source à ce label précis.

Votre script, rendu sous forme de graphe

Chaque label est un nœud. Chaque saut, appel ou branche de menu est une arête dirigée. La couleur des nœuds indique immédiatement leur rôle dans le flux.

Test start rightaway game book marry later

Exemple : the_question · 6 nœuds · 12 arêtes · Reproduit depuis BranchPy Story Flow Visualization · Couleur = type de nœud · Style de trait = certitude

Types de nœuds dans le graphe

🟢

Entrée (Entry)

Le point de départ du flux narratif. Généralement le premier label exécuté quand le jeu ou une scène commence.

🟣

Narratif (Narrative)

Contenu narratif et blocs de dialogue — les scènes que vos joueurs lisent et expérimentent.

🔷

Conteneurs (Containers)

Conteneurs d’exécution qui regroupent des blocs de code liés. Affichés comme une région encadrée autour de leurs nœuds enfants.

🔀

Routage (Routing)

Logique conditionnelle et points de branchement — menus, fourches if/else, et tout nœud qui divise le flux en plusieurs chemins.

⚙️

Système (System)

Opérations et actions système — assignations de variables, changements de drapeaux, et autres blocs de code non narratifs.

🔴

Sortie (Exit)

Points de terminaison et instructions de retour — labels où un chemin se termine ou où le contrôle revient à l’appelant.

Inconnu (Unknown)

Nœuds non classifiés ou spéciaux ne correspondant pas à un patron connu. Souvent utile à examiner pour les flux inattendus.

Types d'arêtes

Chaque flèche a deux propriétés indépendantes : ce qu'elle représente (nature de l'arête, indiquée par la couleur) et le degré de certitude du moteur (style de trait).

Nature des arêtes (couleur)

Direct / Saut (Jump) — un jump standard ou un flux séquentiel entre deux labels.
Appel (Call) — une instruction call : l'exécution entre dans un sous-label, puis revient à l'appelant. (Flowchart Plus)
Retour (Return) — l'arc de retour implicite vers l'appelant après un call. Il s'arc écarte de son arête Call pour que les deux soient visibles. (Flowchart Plus)
Appel dynamique (Dynamic Call) — un appel dont la cible est résolue à l'exécution (ex. un label en variable). La destination s'affiche comme un nœud ?.
Saut écran (Screen Jump) — un Jump(« label ») dans un bloc screen (action bouton). Cible littérale résolue statiquement. (Organigramme Plus)
Appel écran (Screen Call) — un Call(« label ») dans un bloc screen. Entre dans un sous-label et y retourne. (Organigramme Plus)
Retour écran (Screen Return) — un Return() dans un bloc screen. Résolution à l’exécution ; affiché comme arête vers un nœud ?. (Organigramme Plus)
Saut Python (Python Jump) — un renpy.jump(« label ») dans un bloc $ ou python:. Cible littérale résolue statiquement. (Organigramme Plus)
Appel Python (Python Call) — un renpy.call(« label ») dans un bloc $ ou python:. Cible littérale résolue statiquement. (Organigramme Plus)
Retour Python (Python Return) — un renpy.return_statement() dans un bloc $ ou python:. Résolution à l’exécution ; affiché comme arête vers un nœud ?. (Organigramme Plus)

Certitude (style de trait)

Trait plein — arête certaine : s'exécute toujours selon l'analyse statique.
Trait pointillé — arête probable : haute confiance, mais non prouvée. Utilisé aussi pour les arêtes Call et Return.
Trait en pointillés fins — condition inconnue : nécessite une validation à l’exécution. Survoler pour les détails.

⚡ Navigation clic-vers-source

Chaque nœud de l'organigramme est interactif. Cliquer sur un nœud de label ouvre le fichier .rpy correspondant dans votre éditeur VS Code, défiler jusqu'à cette ligne exacte. Plus de recherche manuelle : accédez à n'importe quelle partie de votre histoire en un clic.

Utilisez le panneau Recherche pour trouver n’importe quel nœud par nom de label et centrer instantanément la vue dessus. Le panneau Points chauds fait remonter les cinq labels à la sévérité la plus élevée — chacun est un saut en un clic vers ce nœud.

Montage visuel — prêt pour la présentation, code intact

Le graphe est une vue en direct de votre code — mais vous pouvez y superposer des annotations visuelles pour des présentations, de la documentation, des revues de sprint ou des cartes de design. Aucun de ces outils ne modifie vos fichiers source .rpy. Le graphe peut toujours être regénéré à partir de zéro.

OutilCe qu’il fait
Flèche personnaliséeCliquer le bouton → cliquer un nœud de départ → cliquer un nœud d’arrivée. Ajoute une flèche visuelle entre deux nœuds quelconques.
Annotation texteCliquer le bouton → cliquer n’importe où sur le canevas → saisir le texte entre crochets. Notes libres ancrées au graphe.
Surligner des nœudsCliquer le bouton → cliquer des nœuds pour activer/désactiver le surlignage jaune. Utile pour marquer des nœuds à revoir.
Nouveau conteneurShift+Glisser ou Ctrl+Clic pour sélectionner des nœuds → cliquer le bouton. Regroupe les nœuds sélectionnés dans une région nommée.
Modifier le nom affichéCliquer le bouton → cliquer un nœud → saisir un label personnalisé. Le nom de code d’origine reste inchangé.
Masquer des élémentsCliquer le bouton → cliquer un nœud pour le masquer temporairement. Utile pour désencombrer les graphes complexes.
Supprimer une annotationSélectionner une flèche ou annotation texte → appuyer sur Suppr.
Effacer tous les élémentsBouton en un clic pour supprimer tous les overlays visuels et restaurer le graphe généré brut.
Réduire des labelsSélectionner 2+ nœuds (Shift+Glisser ou Ctrl+Clic) puis clic droit → Collapse Highlighted Nodes, ou utiliser le bouton ▲ Collapse dans la barre d'outils. Les labels sélectionnés se réduisent en un groupe compact nom +N, toutes les arêtes reconnectées automatiquement.
Développer un groupeClic droit sur le nœud groupe → Expand This Group. Ou cliquer Expand All dans la barre d'outils pour restaurer tous les groupes en une fois. Les groupes imbriqués sont pris en charge.

Navigation, filtres et sélection multiple

🧭
Panoramique, zoom et minimap

Clic+glisser le fond du canevas pour panoramiquer. Molette ou pincement pour zoomer. Une minimap en bas à droite affiche l’ensemble du graphe — faites glisser son rectangle de vue pour naviguer instantanément.

🔍
Filtrer par type de nœud

Onglet Filtre : cocher ou décocher Entry, Narrative, Containers, Routing, System, Exit ou Unknown. Réinitialiser restaure les valeurs par défaut. L’état des filtres est suivi dans l’annulation et sauvegardé avec les dispositions.

Sélection multiple

Shift+Glisser pour une sélection par zone. Ctrl+Clic pour ajouter ou retirer des nœuds individuels. Surligner ou masquer en masse, ou ajuster la vue à la sélection.

🔄
Disposition automatique

Cliquer Réarranger pour reflüer les nœuds via ELK (Eclipse Layout Kernel) avec minimisation des croisements. Les nœuds connectés s’écoulent de gauche à droite ; les nœuds déconnectés sont emballés en dessous ou sur le côté.

Ce que vous obtenez maintenant

L’Organigramme narratif est disponible dans BranchPy pour Ren’Py Gratuit et supérieur.

🗺️
Graphe complet du projet

Un seul graphe couvrant chaque label, menu, saut et appel dans tous vos fichiers .rpy.

🔍
Détection des cibles manquantes

Les labels référencés par jump ou call mais jamais définis sont signalés immédiatement.

💾
10 emplacements de sauvegarde nommés

Sauvegardez, chargez, renommez et supprimez jusqu’à 10 dispositions. Chaque emplacement préserve les positions, l’état des filtres et tous les graphiques visuels. Les emplacements persistent entre les sessions.

🔥
Panneau Points chauds

Un score de sévérité pondéré fait remonter les cinq labels les plus problématiques. Chaque point chaud est un saut en un clic vers le nœud.

📤
Export PNG & SVG

Exportez le graphe entier ou une sélection en PNG (1×–4×) ou SVG. Le SVG est éditable dans tout outil de design. Utilisez Ctrl+Shift+E ou le bouton Exporter dans les Paramètres.

⏱️
Temps de lecture par nœud

Cliquez sur un nœud pour voir le temps de lecture estimé (Rapide / Normal / Lent), le nombre de mots, menus et images de cette scène.

↩️
Annulation / rétablissement complet

Ctrl+Z / Ctrl+Y sur toutes les opérations — flèches, annotations, surlignages, labels, nœuds masqués, filtres et positions. L’onglet Historique affiche un journal horodaté avec support de Saut à un état.

🎨
Modèles de styles personnalisés

Sauvegardez des personnalisations de style comme modèles nommés. Appliquez à des éléments individuels, à tous les nœuds d’un type, ou exportez en JSON pour partager avec votre équipe.

📦
Regrouper & réduire les labels

Sélectionnez n'importe quel ensemble de nœuds et réduisez-les en un nœud groupe compact en un clic — ou clic droit. Développez un groupe ou tous les groupes instantanément. Groupes imbriqués et annulation/rétablissement complets. Visuel uniquement, la source n'est jamais modifiée.

🗺️
Graphe complet du projet

Un seul graphe couvrant chaque label, menu, saut et appel dans tous vos fichiers .rpy.

🔍
Détection des cibles manquantes

Les labels référencés par jump ou call mais jamais définis sont signalés immédiatement.

💾
Dispositions de nœuds persistantes

Faites glisser les nœuds selon votre disposition préférée. Jusqu'à 10 emplacements de sauvegarde nommés.

🔥
Panneau Points chauds

Un score de sévérité pondéré fait remonter les cinq labels les plus problématiques. Chaque point chaud est un saut en un clic vers le nœud.

📤
Export SVG

Exportez votre organigramme en SVG pour la documentation, les présentations ou les revues de conception.

⏱️
Temps de lecture par nœud

Cliquez sur un nœud pour voir le temps de lecture estimé (Rapide / Normal / Lent), le nombre de mots, menus et images de cette scène.

Ce qui arrive ensuite

Organigramme Graphe narratif interactif · Résolution des arêtes jump/call · Détection des cibles manquantes · Clic-vers-source · Popup de détails du nœud · Export SVG · Dispositions persistantes ✓ Terminé
Organigramme+ Orchestration des prérequis · Compatibilité PILOT / OMEGA · Manifeste de provenance · Exécution silencieuse ✓ Terminé
Moteur de layout narratif (M0–M17) Détection du backbone · Placement des clusters · Minimisation des croisements · Sémantique des arêtes CALL/RETURN · Diagnostics de structure narrative D9 · Sélecteur de mode de layout et panneau d'analyse dans VS Code ✓ Terminé
Rendu graphique Organigramme+ Graphe interactif complet dans le panneau Organigramme+ · Rendu des nœuds positionné par le backend · Vue de statut de compatibilité (READY / STALE / BLOCKED) · Contrôle du seuil de certitude des arêtes · Panneau filtres Couloirs sémantiques ✓ Terminé
Regrouper & réduire les labels Sélection multiple (Shift+Glisser / Ctrl+Clic) · Réduction en nœud groupe compact · Développement clic droit · Expand All · Groupes imbriqués · Annulation/rétablissement complet · Visuel uniquement (source intacte) ✓ Terminé
Couloirs sémantiques (D13) Nœuds classés en Couloir A (colonne vertébrale) · Couloir B (sous-scènes de détour) · Couloir C (périphérique/synthétique) · Panneau filtres A/B/C avec compteurs ✓ Terminé
Layout Blocs Narratifs (D25) Branches parallèles regroupées en blocs compacts autour de la colonne principale · 73 tests unitaires · Note : les graphes de 800 + nœuds restent en rendu vertical (D26 différé) ✓ Terminé
Roll-up par chapitre (D12) Regroupement par chapitre · Registre de symboles (D12) Prévu
Simulation de partie Parcourir un état de variable dans le graphe · Mettre en évidence les chemins accessibles depuis une sauvegarde Prévu

En action

Captures d'écran de Story Flow Visualization Plus avec les fonctionnalités de regroupement et de réduction sur un projet Ren'Py démo.

Story Flow Visualization Plus affichant le projet HoS — 85 nœuds, 226 arêtes dont des arcs Call (turquoise) et Return (violet)
Arêtes Call (turquoise) et arcs Return (violet, pointillés) — BranchPy trace chaque paire call/return dans votre script Ren'Py
Story Flow Visualization Plus affichant le projet mygame — 16 nœuds, 32 arêtes
Ouverture de Story Flow Visualization Plus pour un projet
Panneau de contrôle étendu avec tous les onglets : Analyse, Éditeur, Filtre, Paramètres, Historique, Aide
Panneau de contrôle complet avec onglets Analyse, Éditeur, Filtre, Paramètres et Historique
Popup de détails du label path_a_start : type, fichier, numéro de ligne et options de personnalisation
Cliquez sur un nœud pour voir les détails, l'ouvrir dans l'éditeur ou personnaliser son apparence
Plusieurs nœuds sélectionnés avec contour blanc, prêts à être regroupés
Shift+Glisser ou Ctrl+Clic pour sélectionner plusieurs nœuds avant le regroupement
Nœud groupe remplaçant les labels réduits, affichant path_a_start +4
Réduction d'un chemin en nœud groupe compact (+4 labels masqués)
Deux nœuds groupes côte à côte, path_a_start +4 et path_b_start +4
Les deux chemins réduits simultanément — le graphe reste lisible en un coup d'œil
Nœud groupe imbriqué affichant path_a_start +4 +1 après une deuxième réduction
Groupes imbriqués : réduire un nœud groupe avec d'autres nœuds pour un repli plus profond
Graphe complet restauré après clic sur Expand All
Expand All restaure le graphe complet en un clic

Rapport HTML autonome

Le bouton Générer HTML exporte un organigramme interactif autonome que vous pouvez ouvrir dans n'importe quel navigateur et partager sans VS Code.

Organigramme HTML autonome avec le graphe complet visible
HTML autonome — graphe complet avec badges d'analyse et légende des nœuds
Panneau de détails du nœud dans le HTML autonome affichant path_a_encounter
Cliquez sur un nœud pour voir les détails complets : accessibilité, degré, notes d'analyse
Nœud sélectionné dans le HTML autonome pour inspection
Clic droit pour réduire les nœuds sélectionnés ou focaliser la vue
HTML autonome avec Expand All affichant le graphe complet après réduction
Expand All restaure la vue complète — le regroupement fonctionne aussi dans le navigateur

Prêt à voir votre histoire comme une carte ?

Installez BranchPy pour VS Code. Lancez une analyse. Ouvrez l'Organigramme en moins d'une minute.

Obtenir BranchPy Lire la documentation