Comment utiliser au mieux les interruptions dans Unity Animator



L'effet wow dans les jeux peut être obtenu non seulement par des mécanismes inattendus ou un traceur, mais aussi par l'animation - dans les projets mobiles, ce dernier a souvent un accent particulier. Par conséquent, j'ai décidé de partager une traduction intéressante de matériel sur Unity Animator. Inside - sur la priorité des transitions d'animation et la commutation compétente entre les états.

Le mécanisme d'interruption dans Unity Animator ne vaut presque pas les tutoriels et la documentation, donc beaucoup arrêtent simplement de l'étudier. Ce n'est qu'avec l'expérience que j'ai compris quels modèles et signes il y a pour utiliser une interruption.

L'article est divisé en trois parties:

  • Dans la première, je vais vous dire quelles sont les interruptions, quels types existent et comment les utiliser au mieux.
  • La seconde concerne les signes qui indiquent la nécessité d'une interruption. Jetez un œil à Animator et voyez comment vous pouvez remplacer les transitions inutiles.
  • Dans le troisième, nous parlerons de la façon d'organiser le travail dans Animator et d'empêcher sa croissance incontrôlée. Cela est particulièrement vrai pour les grandes équipes dans lesquelles plusieurs personnes sont engagées dans le même animateur.



Partie 1: qu'est-ce qu'une «interruption»?


L'interruption est une fonctionnalité d'Unity Animator qui vous permet d'arrêter la transition de l'animation d'un état à un autre afin de passer au troisième.

C'est le seul moyen qui vous permet d'effectuer un mélange d'une transition incomplète à l'état souhaité. Avec lui, vous ne comptez pas sur un changement d'état brutal ou, pire encore, sur les transitions Any State. Je vous expliquerai plus en détail plus tard.

Il existe plusieurs types d'interruption de base:



État actuel

Si plusieurs transitions sont fournies à partir d'un certain état et qu'une autre est lancée pendant l'un d'entre eux, la commutation sera effectuée à partir du point actuel, comme indiqué dans le diagramme:



État suivant

Le prochain état fonctionne de manière similaire à l'état actuel. Mais ici, Animator analysera les transitions de l'état suivant, tandis que la transition de l'état actuel est toujours en vigueur.



État actuel, puis état suivant (d'abord, état actuel, puis suivant)

Quelque part ici, les gens sont ennuyés par la théorie et perdent tout intérêt pour le sujet. Attends! Cela portera votre compétence avec Animator à un nouveau niveau.

Après avoir maîtrisé l'état actuel et l'état suivant, vous comprendrez certainement le troisième type, car c'est leur combinaison. Dans ce document, Animator analysera la transition actuelle image par image à la recherche d'autres qui peuvent être effectuées à partir de l'état initial. S'ils ne sont pas trouvés, Animator analysera l'état suivant à la recherche d'une transition appropriée. Dans le même temps, en passant à une nouvelle transition dans le processus d'exécution de la précédente, Animator se comportera exactement de la même manière que dans les exemples ci-dessus.

État suivant puis état actuel (premier état suivant, puis courant)

Tout est comme dans le troisième type, seul l'ordre d'analyse sera inversé.

Interruption ordonnée



Pour chaque état, la priorité des transitions (de haut en bas) est définie, comme ceci:



Si auparavant vous ne saviez pas pourquoi faire glisser des composants dans cette liste - le tour est joué! Ici, vous classez la priorité de transition.

Lorsque l'interruption ordonnée est cochée, l'animateur n'interrompt que si la priorité de la nouvelle transition est supérieure à la priorité de la transition en cours. Et plus la transition se situe dans cette liste, plus sa priorité est grande.

Partie 2: comment déterminer où casser


Lorsque vous travaillez avec des interruptions, il est très difficile de déterminer exactement quand les utiliser. Et dans certaines situations, ils sont nécessaires - avec le temps, vous commencez à le remarquer.

Prenons l'exemple le plus frappant. Un schéma familier?



Tout revient à n'importe quel État. Non?

Non.

C'est le premier signe que la plupart de vos transitions se font mieux avec des interruptions. Les transitions de n'importe quel État ont droit à la vie dans des cas particuliers, mais la plupart des gens les utilisent quand ils ont vraiment besoin (enfin, vous l'avez deviné) d'interruptions.

Modèles d'interruption de l'état actuel:



Souvent, Tout État est créé uniquement pour la transition vers le deuxième état, lorsque le premier a déjà commencé. Oubliez ça. Utilisez des interruptions.

Autre exemple: nous avons une transition de FirstState à SecondState, mais l'heure de sortie n'est pas définie, l'heure de transition est 0 et une condition est spécifiée. L'interruption résoudra idéalement ce problème. Vous ne pouvez pas vous tourner vers N'importe quel état car il a déjà été utilisé trop souvent et en l'ajoutant à SecondState, vous activez des états qui ne sont pas nécessaires dans ce cas.

Modèles d'interruption de l'état suivant:



Très souvent, il y a des transitions avec un temps de sortie et des conditions de transition complètement fous. Réglez l'interruption correctement et vous atteindrez plus facilement le même objectif. Comme vous pouvez le voir, tout État se trouve souvent là où des interruptions sont nécessaires.

N'oubliez pas que vous pouvez ajouter plusieurs transitions à partir de deux états identiques afin d'utiliser correctement l'interruption.

Habituellement, tous les autres modèles sont des combinaisons des exemples décrits ci-dessus.

Situations typiques d'interruption:

Dans certaines situations, les interruptions sont la meilleure solution. Un peu de pratique dans Animator, et vous pouvez facilement apprendre à les remarquer.

a) L'action suivante devrait immédiatement déclencher une animation.

Cela se produit souvent dans les jeux d'action où les entrées sont nombreuses et vous devez prendre rapidement les mesures suivantes.

Par exemple, les gens utilisent souvent des transitions Any State (ou plusieurs transitions avec des configurations différentes) pour passer en douceur d'un double saut à un jerk.

Il est nécessaire de cartographier toutes les actions possibles, de définir la durée des événements et de l'ajouter aux états et aux transitions. Et puis définissez des interruptions pour passer correctement d'un événement à un autre.

b) L'animation a commencé, mais la situation a changé et nous devons passer à une séquence d'animations différente.

Cela se produit souvent avec les animateurs d'interface utilisateur, dans lesquels vous pouvez ignorer certains éléments de menu, et les sous-menus peuvent être affichés au-dessus de tout le reste.

Les gens ajoutent souvent plusieurs animateurs au même objet et définissent leurs conditions d'activation / désactivation pour ignorer une animation et en démarrer une autre. C'est un autre exemple où les interruptions valent la peine d'être utilisées.

c) Vous devez quitter la chaîne d'animation actuelle.

Les interruptions peuvent être connectées les unes aux autres - vous obtenez une séquence d'interruptions qui vous mènera à une nouvelle chaîne. Dans ce cas, tous les états seront complétés correctement et en temps opportun. Ici, vous pouvez utiliser les interruptions de l'état suivant.

Partie 3: tout dans Animator doit être clair


Travailler avec Animator est un type d'art particulier. Plus il y a de pratique, plus les progrès sont évidents. Un flux de travail clair et cohérent a toujours un effet positif sur les résultats.

Recommandations pour éviter toute confusion dans Animator:

  1. Utilisez des machines à sous-états et essayez de contourner les transitions vers les états internes. La machine de sous-état correcte fonctionne indépendamment en entrée et en sortie, utilise des transitions qui dirigent le flux vers l'intérieur et sait quoi faire du résultat. De cette façon, vous pouvez éviter les problèmes critiques lorsque vous travaillez dans Animator.
  2. Utilisez le moins possible n'importe quel État. Réfléchissez si c'est vraiment nécessaire. Contactez vos collègues. Et seulement si tout le monde est d'accord, utilisez les transitions Any State.
  3. S'il vous semble que votre animateur devrait être plus simple que maintenant - rangez-le. C'est le meilleur moyen de perfectionner vos compétences.

Source: https://habr.com/ru/post/fr470499/


All Articles