J'ai beaucoup travaillé avec Mecanim dans Unity et je pense avoir une assez bonne compréhension de son fonctionnement.
Comme vous le dites, les arbres mixtes sont presque certainement la voie à suivre pour faire de la locomotion. Les arbres de mélange sont généralement destinés à lorsque vous souhaitez mélanger en continu des animations pour créer la sortie finale. Comme donner au joueur le contrôle de la vitesse d'exécution de l'avatar.
Il est préférable de conserver toutes les actions individuelles en tant qu'état individuel, dans lequel vous pouvez effectuer la transition. Selon l'intensité de votre jeu, vous pouvez même envisager d'utiliser Any State comme point de départ pour aller rapidement sauter, attaquer, etc., sans avoir à attendre la fin d'une autre animation.
La clé de la fusion d'un arbre de mélange avec la course est d'utiliser des transitions . Il n'y a pas de magie pour rendre cela magnifique, seulement une planification minutieuse et des ajustements tout en prévisualisant la transition dans Unity. Une grande partie du travail repose sur l'animateur pour avoir les bases de transitions réussies.
Quelque chose à garder à l'esprit lors des transitions est de trouver le bon équilibre entre elles et de donner au joueur la rétroaction attendue. Vous pouvez constater qu'une transition rapide fonctionne mieux pour la sensation de jeu, tandis qu'une transition plus lente peut sembler meilleure, mais donne envie à vos joueurs de jeter le contrôleur.
Vous trouverez ci-dessous une configuration assez simple, où les flèches indiquent le déroulement des transitions. Les transitions sont basées sur les conditions d'entrée et quittent à la fin de l'animation ou lorsqu'une condition donnée est remplie. Cela signifie également qu'un état peut entrer dans divers autres états selon différentes conditions.
Ce que vous remarquez probablement, c'est que cela peut rapidement devenir un gros tas de "spaghettis", et un moyen d'éviter une partie de ce gâchis est d'utiliser le Any State qui est également inclus dans l'image ci-dessus.
Le Tout Etat a l'avantage de pouvoir faire la transition vers quelque chose de tout temps. Les transitions peuvent toujours être utilisées pour mélanger l'animation, cependant, vous travaillez un peu plus dans l'obscurité quant à son apparence. Il est possible de prévisualiser de / vers différents états lors de la configuration.
Vous n'avez pas mentionné les couches , qui peuvent être extrêmement utiles pour blesser votre personnage ou pour remplacer le haut du corps pour transporter différentes armes tout en utilisant la même animation pour les jambes pour toutes les armes. Les calques sont également mélangés et peuvent être ajustés progressivement, de sorte qu'un personnage pourrait être plus ou moins blessé, par exemple. Un autre exemple serait de lever les bras d'un personnage en l'air (si le personnage se rend ou quelque chose), tout en gardant toutes les autres animations identiques.
Mais la mise en place d'un contrôleur d'animation solide n'est pas une tâche d'une heure. Cela demande un peu de planification et je ne peux que vous encourager à essayer de mettre en place une machine à états simple avec deux attaques, un saut, un ralenti et un mélange / marche-course. Vous pouvez également trouver les comportements introduits dans Unity 5 extrêmement utiles pour contrôler ou interagir avec les scripts.
Je suis sûr à 99% que l'IA se comportera de la même manière que le contrôleur du joueur, étant donné que ce sont des paramètres modifiés via des scripts qui contrôlent la façon dont l'animation passe d'un état à l'autre.
Sommaire
- Arbres mixtes pour la locomotion.
- États pour des actions simples, définies ou des états de boucle simples.
- Des sous-états pour organiser une série d'états, comme un saut.
- Transitions pour le mélange / transition entre différents états (un état peut également être un arbre de mélange).
- Calques pour remplacer ou ajouter à l'animation de base.
Considérez donc les arbres de mélange comme des états étendus, qui agissent également en fonction des valeurs des paramètres.
Un peu longue, mais j'espère que cela éclairera le sujet :)