Le problème principal est de réaliser des mouvements fluides et réalistes pour les personnages dans Unity.
Sans une bonne configuration, les personnages peuvent glisser ou ne pas réagir correctement aux entrées utilisateur, nuisant à l’expérience de jeu.
Cet article vous guide dans l’utilisation du Root Motion avec des scripts et l’Animator pour assurer un contrôle précis des mouvements de votre personnage.
Apprenez à donner vie à vos personnages grâce à l'animation 3D.
Dans cet article, nous irons un peu plus en détail du root motion en manipulant le déplacement à partir d’un script. Le modèle que nous allons manipuler reste le même Castle Guard , et nous le ferons bouger en exploitant des paramètres d’animation contrôlés par le script GuardController . Nous utiliserons des paramètres pour interagir avec l’Animator et voir comment faire en sorte que le personnage réagisse aux entrées clavier,
Comme point de départ, nous aurons besoin de créer des paramètres dans l’Animator.
Commençons par ouvrir la fenêtre Animator. Dans le panneau des paramètres, cliquez sur le bouton « + » et sélectionnez Float pour créer deux nouveaux paramètres : AxisV (axe vertical) et AxisH (axe horizontal).
Après avoir créé le script GuardController associez-le au modèle ad-hoc. Voici un aperçu du code :
usingUnityEngine;
publicclassGuardController : MonoBehaviour {
privateAnimator animator; // Référence à l'Animator
privatevoidAwake() { animator = GetComponent(); }
voidUpdate() {
// Mise à jour des paramètres de l'Animator à partir des axes de déplacement
animator.SetFloat("AxisV", Input.GetAxis("Vertical"));
animator.SetFloat("AxisH", Input.GetAxis("Horizontal"));
}
}
Ce script est assez minimaliste mais fera largement l’affaire si nous nous contentons d’utiliser les touches directionnelles. Il nous faut à présent, configurer les transitions entre les animations.
Ajoutez les animations » Idle « , » Walking « , » Turning Left » et » Turning Right » dans
l’Animator. Reliez Idle à Walking en ajoutant une transition. Ensuite, dans les conditions de cette transition, ajoutez AxisV > 0.1 pour indiquer que le personnage marche lorsque l’axe vertical est supérieur à une certaine valeur . Pour la transition vers » Turning Left « , ajoutez une condition AxisH < -0.1 , et pour » Turning Right « , ajoutez AxisH > 0.1 . Cela permet de déclencher les rotations selon la direction horizontale du mouvement.
Reliez les transitions de manière fluide pour que le personnage retourne à l’animation Idle lorsque les valeurs des axes sont proches de zéro .
Une fois toutes les configurations faites, testez le modèle Castle Guard en lançant Unity. Lorsque vous appuyez sur les touches directionnelles, le personnage commencera à marcher dans la direction indiquée, en tournant à gauche ou à droite en fonction des entrées de l’utilisateur.
Grâce au Root Motion, le déplacement est fluide, et le personnage ne glisse pas sur le sol, car le mouvement est entièrement contrôlé par les données d’animation. Dans l’article prochain nous parlerons des « Sub-State Machine ».
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.
FAQ
Comment configurer le Root Motion dans Unity ?
Quels paramètres d'animation utiliser pour le déplacement ?
Comment créer des transitions d'animation dans Unity ?
Comment intégrer un script pour contrôler l'animation ?
Pourquoi le personnage ne se déplace-t-il pas correctement malgré l'animation ?
Conclusion
En maîtrisant le Root Motion dans Unity, vous pouvez créer des mouvements de personnage fluides et réalistes. Comment envisagez-vous d’appliquer ces techniques à vos projets de jeu ?