States
Un state est un instantané nommé de tout ce qu'un objet est à cet instant : où il se tient, sa couleur, s'il est visible, quelle animation est sélectionnée.
Basculez sur un state et l'objet redevient cet instantané. C'est toute la fonctionnalité, et elle remplace une quantité surprenante de logique écrite à la main.
Quand y recourir
| Vous voulez | Les states sont… |
|---|---|
| Un interrupteur : allumé et éteint | exactement ce qu'il faut |
| Une porte : fermée, ouverte, verrouillée | exactement ce qu'il faut |
| Un produit en trois coloris | exactement ce qu'il faut |
| Un personnage qui suit un chemin | à côté — c'est de l'animation |
| Quelque chose qui change d'une quantité calculée | à côté — c'est un patch ou un script |
La règle : un nombre fixe de situations nommées, c'est un state. Tout ce qui est continu est une animation.
Les construire
Ajoutez un composant States à un objet, puis ajoutez un state. Il enregistre l'objet tel qu'il est à cet instant.
Pour construire le suivant : ajoutez un second state, puis modifiez l'objet pendant que ce state est sélectionné. Positionnez-le, changez sa couleur, masquez-le — le state capture au fur et à mesure.
Tant qu'un state est sélectionné, modifier l'objet modifie l'instantané de ce state, pas l'objet lui-même.
C'est exactement ce que vous voulez en construisant des states, et parfaitement déroutant quand vous aviez oublié qu'un state était sélectionné et vous demandiez pourquoi votre modification « n'a pas tenu » après un changement.
Basculer entre eux
Depuis un événement, utilisez l'étape Set state. Elle prend le state et, en option, une durée et un easing.
Avec une durée, le changement s'interpole — l'objet glisse depuis là où il est jusqu'à l'instantané au lieu de sauter. Ce seul champ transforme un changement de state en une animation que vous n'avez pas eu à écrire.
| D'où vous basculez | Comment |
|---|---|
| Un événement | l'étape Set state |
| Un patch | le nœud set_states |
| Un script | écrire activeStateId sur le composant States |
Réagir à un changement
Deux déclencheurs se produisent sur l'objet dont le state a changé :
| Déclencheur | Se produit quand |
|---|---|
| State active | l'objet est entré dans le state choisi |
| State inactive | il en est sorti |
Chaque événement nomme quel state il surveille, un même objet peut donc réagir différemment à chacun des siens. C'est ainsi qu'une porte joue un son en s'ouvrant et un autre en se fermant, sans la moindre condition.
Contrairement à un toucher, un changement de state ne remonte pas la hiérarchie.
Changer deux ou trois choses sans state
Parfois vous voulez « comme maintenant, mais en rouge » sans définir un state entier pour cela. C'est l'étape Override properties : elle applique un jeu de valeurs ponctuel comme un state temporaire, avec la même durée et le même easing.
Servez-vous-en pour des accents ponctuels (une surbrillance au survol, un flash aux dégâts) et gardez les vrais states pour les situations que l'objet a réellement.
Ce que couvre un state
Un instantané contient les composants de l'objet : position, rotation, échelle, matériau, visibilité et le reste voyagent donc ensemble.
Il ne capture pas les enfants. Pour basculer un groupe, donnez à chaque objet ses propres states et basculez-les depuis un même événement — les cibles de l'étape acceptent une liste.
Là où ils peuvent vous piéger
- Un state resté sélectionné dans l'éditeur absorbe discrètement vos modifications. Vérifiez lequel est actif avant de vous demander pourquoi un objet revient en arrière.
- States et animation sur le même objet se battent, comme deux mécanismes d'animation quelconques. Choisissez-en un.
- Retirer un composant l'efface de tous les states qui le contenaient.
- Si le state sélectionné n'existe plus, c'est le premier qui est utilisé.
Suite : Patches