Stancz · sketch 046 · maquettes fonctionnelles
Accessoires par formation — la version retenue, et les 3 pistes
Retenu : P1 + le panneau de scène. Dans le menu, chaque accessoire porte les 6 numéros de formation, aux couleurs de la timeline — un appui bascule. Sur la scène, un appui sur un accessoire ouvre un panneau ancré qui ne contient que l'échelle et la rotation. Les trois pistes P1-P3 restent consultables plus bas : même modèle de données, même scène 1000 × 600 cm, mêmes 6 formations de la démo.
Ce que fait le code aujourd'hui — le point de départ
La formation est figée à la pose
PropsPanel.tsx:117 lit activeFormationId une fois et l'écrit dans prop.formationId. Rien ne le réécrit ensuite : impossible d'attribuer l'accessoire à une autre formation.
Le cadenas est tout ou rien
prop-visibility.ts:24 — locked = les 6 formations, sinon une seule. Aucun état intermédiaire, donc pas de « sur les formations 2 et 3 ».
« Retirer » n'existe pas
removeProp() supprime l'objet et ses réglages. Pour l'enlever d'une formation il faut le détruire, puis le refaire ailleurs.
★ La version retenue — P1 + panneau de scène
Deux endroits, deux rôles. Le menu règle la portée : les 6 numéros de formation, aux
couleurs de la timeline (FORMATION_PALETTE), un appui bascule. Le rond de couleur
ouvre les 12 teintes de l'app. Le « ⋯ » porte retirer et supprimer.
La scène règle la forme : un appui sur un accessoire ouvre un panneau ancré sous lui,
avec l'échelle et la rotation, rien d'autre. Il n'en couvre que 40 % et laisse
l'objet dégagé, pour le voir grandir sous le doigt.
Ouvrir la version retenue ↗
Les 3 pistes comparées
P1 est la piste retenue. P2 et P3 restent ici pour mémoire. P4 = le panneau de scène seul.
PROPOSITION 1
Interrupteur par formation
Chaque accessoire porte les 6 numéros. Un appui bascule.
Ce que ça apporte
- Tout sur un écran : la portée se lit et se change sans naviguer.
- Aucun lieu nouveau à apprendre — la liste actuelle, avec une 2ᵉ ligne.
- La plus proche du code existant.
Ce que ça coûte
- 6 pastilles par rangée : au-delà de ~8 formations, ça défile.
- Ne montre que ce qui est posé ici — l'ailleurs reste invisible.
- Rangée de 86 px : moins d'accessoires à l'écran.
À choisir si tu travailles formation par formation, avec peu de formations.
Ouvrir en grand ↗
PROPOSITION 2
Bibliothèque du projet
Deux onglets : en scène ici, et ce qui existe dans le projet.
Ce que ça apporte
- Retirer cesse de vouloir dire supprimer — c'est le cœur du problème.
- Réutilise un accessoire déjà réglé au lieu d'en reposer un.
- Rangées courtes : on en voit plus à l'écran.
Ce que ça coûte
- Deux onglets à comprendre, un aller-retour pour ajouter.
- Pas de vue d'ensemble : il faut lire chaque sous-titre.
- Un mot nouveau à poser dans l'app : la bibliothèque.
À choisir si tes chorégraphies réutilisent les mêmes meubles d'une formation à l'autre.
Ouvrir en grand ↗
PROPOSITION 3
Matrice accessoires × formations
Lignes = accessoires, colonnes = formations. Une case, un appui.
Ce que ça apporte
- Répond à « qu'est-ce qui est en scène au tableau 5 ? » sans y aller.
- Le plan de plateau du spectacle entier sur un écran.
- Corriger un oubli = un appui, sans navigation.
Ce que ça coûte
- 6 colonnes tiennent à 390 px ; au-delà, défilement horizontal.
- Les réglages ne tiennent pas dans une case : écran séparé obligatoire.
- La plus éloignée de l'UI actuelle.
À choisir si tu montes des spectacles longs et vérifies la cohérence d'ensemble.
Ouvrir en grand ↗
Même coût côté code, pour les trois
StageProp.formationId (un seul id, figé à la pose) devient une liste de formations, et locked devient partout. Migration sans perte : un formationId seul devient une liste à un élément, un locked: true devient le marqueur « partout ». Les projets existants s'ouvrent à l'identique.
filterPropsForFormation() reste le seul point de filtrage des 4 rendus (2D, 3D, spectateur, export) : une fonction à changer, pas quatre.
Ma reco : P2 si tu réutilises les mêmes meubles d'une formation à l'autre, P3 si tu veux voir le plan de plateau entier. P1 est la plus proche de l'existant mais ne montre jamais ce qui vit ailleurs.
✓ Banc automatisé : 66/66 verts (gestes tactiles réels, contrôles positifs et négatifs)