Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Animation Behaviours : Dynamisez vos animations Unity
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement3D et Animation

Animation Behaviours : Dynamisez vos animations Unity

L'Équipe Alphorm Par L'Équipe Alphorm 15 novembre 2024
Partager
Partager

Gérer les animations complexes dans Unity peut être un défi.

Sans une bonne organisation, le code peut devenir encombré et difficile à maintenir.

Les Animation Behaviours permettent de lier des événements spécifiques aux animations, simplifiant la gestion et enrichissant l’expérience utilisateur.

Table de matière
Animation Behaviours en Unity : IntroductionFAQConclusion

Formation Unity : Animer vos personnages en 3D - Donnez Vie à vos Créations

Apprenez à donner vie à vos personnages grâce à l'animation 3D.

Découvrir cette formation

Animation Behaviours en Unity : Introduction

Les Animation Behaviours sont des scripts basés sur la classe StateMachineBehaviour , permettant de lier des événements spécifiques au cycle d’une animation. Ils sont utiles pour ajouter de la logique directement aux transitions entre les états d’animation. Cela permet de déclencher des actions précises, comme jouer une animation aléatoire, synchroniser des sons, ou modifier des paramètres de gameplay.

Dans cet article, nous allons utiliser un StateMachineBehaviour pour déclencher une animation idle aléatoire dans notre modèle.

Interface Unity montrant Animation Behaviours
  • Qu’est-ce qu’un Animation Behaviour ?

Un Animation Behaviour est un script dérivé de la classe StateMachineBehaviour que l’on peut attacher à un état d’animation dans l’Animator. Il permet de réagir à des événements comme le début ou la fin d’une animation via des méthodes spécifiques telles que OnStateEnter, OnStateExit, et d’autres.

L’un des avantages majeurs est la séparation de la logique d’animation de la logique de contrôle du personnage , ce qui rend le code plus propre et modulable. Les Animation Behaviours sont particulièrement utiles dans les situations où l’on veut exécuter des actions sans interférer directement avec le script principal du contrôleur de personnage.

Voici un répertoire des principales méthodes dérivant de la classe StateMachineBehaviour :

Méthode
Description
Utilisation courante
OnStateEnter
Appelée lorsque l’Animator entre dans un état.
Déclenche des actions spécifiques au début d’une animation (ex : jouer une animation ou un son, initialiser des valeurs).
OnStateUpdate
Appelée à chaque frame pendant que l’Animator est dans un état.
Utilisée pour modifier continuellement des paramètres ou surveiller l’état pendant une animation.
OnStateExit
Appelée lorsque l’Animator quitte un état.
Parfait pour réinitialiser des paramètres ou stopper certaines actions à la fin d’une animation.
OnStateMove
Appelée pendant le calcul de Root Motion, après le calcul des mouvements.
Modifie les mouvements basés sur l’animation si le Root Motion est activé.
OnStateIK
Appelée avant la mise à jour de l’inverse kinematics (IK).
Utilisée pour ajuster les animations en fonction des positions des objets ou du personnage (pour l’IK).
OnStateMachineEnter
Appelée lorsque l’Animator entre dans un sous-état au sein de la State Machine.
Utile pour déclencher une action dès qu’on entre dans un sous-état (comme un groupe d’animations dans une sous-state).
OnStateMachineExit
Appelée lorsque l’Animator quitte une sous-machine d’état.
Utile pour réinitialiser ou changer des états globaux à la sortie d’un sous-état.

C’est le moment d’introduire un nouveau personnage sur la scène « Big Vegas ». Son modèle 3D est disponible dans les ressources ainsi que quelques animations associées. Le modèle possède trois animations idle différentes. Considérons juste deux : IdleOffensive et IdleWarrior. Configurer de façon adéquate le modèle et ses animations tel que nous l’avons vu précédemment. Nous souhaitons que, chaque fois que le personnage entre dans l’état d’inactivité, une de ces deux animations soit sélectionnée au hasard. Pour cela, nous allons créer un paramètre entier RandomIdle dans l’Animator. Ce paramètre sera utilisé pour déclencher l’une des deux animations idle disponibles. Dans l’Animator, ajoutez les trois animations distinctes pour l’état Idle. IdleSad sera l’animation par défaut. Créez des transitions entre les deux autres animations en fonction de la valeur de RandomIdle.

Par exemple :

  • Si RandomIdle est égal à 1, jouer IdleOffensive.
  • Si RandomIdle est égal à 2, jouer IdleWarrior

Nous aurons également besoin d’un script  » RandomIdleAnimationBehaviour  » à attacher au state IdleSad via le bouton Add Behaviour .

Graphique de comportements d'animation Unity

Voici la logique qui nous permettra de générer un nombre aléatoire et le passer à l’Animator :

				
					
usingUnityEngine;
publicclassRandomIdleAnimationBehaviour : StateMachineBehaviour {
  overridepublicvoidOnStateEnter(Animator animator, AnimatorStateInfo stateInfo,
                                 intlayerIndex) {
    intrandomIdle = Random.Range(1, 3);
    animator.SetInteger("RandomIdle",
                        randomIdle); // Définit le paramètre aléatoire
  }
}

				
			

Dans cet exemple, lorsque le personnage entre dans l’état Idle, la méthode OnStateEnter est appelée et génère un entier aléatoire entre 1 et 2. Ce nombre est ensuite affecté au paramètre RandomIdle dans l’Animator.

Les Animation Behaviours sont un outil puissant pour enrichir vos animations en introduisant de la logique spécifique au moment où les animations démarrent ou se terminent. Dans cet exemple, nous avons vu comment utiliser OnStateEnter pour choisir aléatoirement une animation d’inactivité, rendant le comportement du personnage plus naturel et dynamique. Cela montre à quel point les Animation Behaviours peuvent enrichir l’expérience sans avoir besoin de scripts complexes.

La prochaine étape consistera à explorer l’utilisation des Blend Trees 1D pour un contrôle plus avancé des animations de mouvement.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Qu'est-ce qu'un Animation Behaviour dans Unity ?
Un Animation Behaviour est un script dérivé de la classe StateMachineBehaviour dans Unity. Il permet de réagir à des événements spécifiques du cycle d’une animation, tels que le début ou la fin d’une animation. Cela permet de séparer la logique d’animation de la logique de contrôle du personnage, rendant le code plus propre et modulable.
Comment utiliser OnStateEnter pour les animations ?
La méthode OnStateEnter est appelée lorsque l’Animator entre dans un nouvel état. Elle est idéale pour déclencher des actions spécifiques au début d’une animation, comme jouer une animation ou un son. Par exemple, vous pouvez l’utiliser pour générer un nombre aléatoire et définir un paramètre dans l’Animator, comme le montre le script RandomIdleAnimationBehaviour.
Quels sont les avantages des Animation Behaviours ?
Les Animation Behaviours offrent plusieurs avantages, notamment la capacité de lier des événements spécifiques au cycle d’une animation sans interférer avec le script principal du contrôleur de personnage. Ils permettent de déclencher des actions précises et de maintenir un code propre et modulable. Cela est particulièrement utile pour exécuter des actions invisibles aux scripts principaux.
Comment intégrer des animations aléatoires avec Unity Animator ?
Pour intégrer des animations aléatoires, créez un paramètre entier dans l’Animator, comme RandomIdle. Utilisez un script StateMachineBehaviour pour générer un nombre aléatoire lorsque l’état Idle est atteint. Ce nombre déclenche ensuite l’une des animations aléatoires configurées dans l’Animator, rendant le personnage plus dynamique.
Comment les Animation Behaviours enrichissent-ils les animations ?
Les Animation Behaviours enrichissent les animations en permettant d’introduire de la logique spécifique lors du démarrage ou de la fin des animations. Par exemple, en utilisant OnStateEnter, vous pouvez choisir aléatoirement une animation d’inactivité, rendant ainsi le comportement du personnage plus naturel et dynamique sans nécessiter de scripts complexes.

Conclusion

Les Animation Behaviours offrent une flexibilité considérable dans la gestion des animations en Unity. Quelle autre fonctionnalité d’Unity aimeriez-vous explorer pour enrichir vos projets ?

ÉTIQUETÉ : Unity
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Animation Behaviours : Dynamisez vos animations Unity

© Alphorm - Tous droits réservés