Créer des animations 2D dans Unity

Pour créer des animations 2D dans Unity, les développeurs peuvent utiliser la fenêtre d'animation intégrée et le composant Unity Animator. Voici un guide étape par étape pour commencer.

Mise en place du projet

  • Ouvrez Unity et créez un nouveau projet 2D ou ouvrez-en un existant.
  • Si vous démarrez un nouveau projet, définissez le modèle du projet sur 2D.

Importation de ressources Sprite

  • Les sprites peuvent être créés dans Unity à l'aide de l'éditeur de sprites ou importés à partir de fichiers image externes tels que PNG ou JPEG.
  • Pour créer des sprites dans Unity, accédez au menu Assets, sélectionnez Créer, puis choisissez Sprite ou Sprite Renderer. Il est alors possible de dessiner ou d'importer l'illustration du sprite.

Configuration de l'animation des sprites

  • Une fois que les sprites sont prêts, sélectionnez la ressource sprite dans la fenêtre Projet.
  • Dans la fenêtre Inspecteur, assurez-vous que le Type de texture est défini sur 'Sprite (2D and UI)'. Sinon, remplacez-le par 'Sprite (2D and UI)'.
  • Cliquez sur l'actif sprite dans la fenêtre de projet pour l'ouvrir dans l'éditeur de sprite.
  • Utilisez l'éditeur de sprites pour définir les frames individuels de l'animation. Le sprite peut être divisé en plusieurs sous-images si nécessaire. L'éditeur permet également de modifier le point de pivot de chaque image pour contrôler la position du sprite.
  • Enregistrez les modifications apportées dans l'éditeur de sprites.

Création d'animations à l'aide de la fenêtre d'animation

  • Pour ouvrir la fenêtre Animation, accédez à 'Window -> Animation'.
  • Dans la fenêtre Animation, cliquez sur le bouton Créer pour créer un nouveau clip d'animation.
  • Sélectionnez le clip d'animation dans la fenêtre Projet et ses propriétés apparaîtront dans la fenêtre Inspecteur.
  • Dans la fenêtre Inspecteur, il est possible de définir la longueur, la fréquence d'échantillonnage et d'autres propriétés du clip d'animation.
  • Pour créer des images clés, déplacez la tête de lecture dans la fenêtre Animation à un temps spécifique et modifiez les propriétés du sprite (par exemple, position, échelle, rotation, etc.) dans la scène ou la fenêtre Hiérarchie.
  • Ajoutez des images clés à différents moments pour créer une animation fluide. Unity interpolera automatiquement les valeurs entre les images clés.

Configuration de l'animateur

  • Sélectionnez l'objet sprite dans la fenêtre Scène ou Hiérarchie.
  • Dans la fenêtre Inspecteur, cliquez sur le bouton Ajouter Composant et recherchez "Animator" pour ajouter le composant Animator à l'objet.
  • Cliquez sur le bouton Créer dans le composant Animator pour créer une nouvelle ressource Animator Controller.
  • Attribuez le contrôleur Animator nouvellement créé au champ Controller du composant Animator.

Configuration du contrôleur d'animation

  • Double-cliquez sur l'actif Animator Controller nouvellement créé pour l'ouvrir dans la fenêtre Animator.
  • Dans la fenêtre Animator, il y a un graphique Animator Controller, qui représente le flux des animations.
  • Faites un clic droit dans la fenêtre Animator et sélectionnez 'Create State -> From New Clip' ou 'From Sprite Renderer' pour créer des états d'animation.
  • Faites glisser et déposez les clips d'animation précédemment créés dans la fenêtre Animation sur les états d'animation respectifs.
  • Créez des transitions entre les états d'animation en cliquant sur un état et en faisant glisser la flèche vers un autre état. Il est possible d'ajuster les conditions de transition, telles que l'heure, les valeurs des paramètres ou les événements.
  • Il est possible d'ajouter des paramètres pour contrôler les transitions, tels que bools, ints ou triggers. Par exemple, il peut y avoir un paramètre booléen nommé "IsRunning" qui déclenche une transition d'un état d'animation inactif à un état d'animation en cours d'exécution.

Jouer les animations

  • Sélectionnez l'objet sprite dans la fenêtre Scène ou Hiérarchie.
  • Dans le composant Animator de la fenêtre Inspecteur, faites glisser la ressource Animator Controller créée dans le champ Controller.
  • Appuyez sur le bouton Lire dans la fenêtre Animation pour tester et prévisualiser les animations.

Contrôler les animations par programmation

  • Le contrôle des animations par programmation nécessite d'accéder au composant Animator à partir du script.
  • Dans le script, créez une variable de type Animator et utilisez 'GetComponent<Animator>()' pour obtenir une référence au composant Animator attaché à l'objet sprite.
  • Il est alors possible d'utiliser les fonctions et les propriétés de l'Animator pour déclencher des transitions, définir des valeurs de paramètres ou contrôler la lecture des animations. Par exemple, appeler animator.SetBool("IsRunning", true) déclenchera l'animation en cours d'exécution.
using UnityEngine;

public class AnimationController : MonoBehaviour
{
    private Animator animator;

    private void Start()
    {
        // Get a reference to the Animator component
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // Check for input or condition to trigger animations
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Trigger a jump animation
            animator.SetTrigger("Jump");
        }

        float moveInput = Input.GetAxis("Horizontal");
        animator.SetFloat("Speed", Mathf.Abs(moveInput));

        // Check if the character is grounded
        bool isGrounded = IsGrounded();

        // Set the "IsGrounded" parameter in the Animator
        animator.SetBool("IsGrounded", isGrounded);

        if (isGrounded && Input.GetKeyDown(KeyCode.C))
        {
            // Trigger a crouch animation
            animator.SetBool("IsCrouching", true);
        }

        if (isGrounded && Input.GetKeyUp(KeyCode.C))
        {
            // Stop the crouch animation
            animator.SetBool("IsCrouching", false);
        }
    }

    private bool IsGrounded()
    {
        // Implement your own logic to check if the character is grounded
        // For example, you can use raycasting or collision detection
        // and return true if the character is touching the ground
        // and false otherwise.
        return false;
    }
}

Conclusion

Il s'agit d'un aperçu de base de la création d'animations 2D dans Unity à l'aide des outils intégrés. Unity prend également en charge des techniques plus avancées telles que l'utilisation de feuilles de sprites, la cinématique inverse (IK) et les scripts d'animation personnalisés comportements. Explorez ces options en fonction des exigences spécifiques et de la complexité des animations en question.

Articles suggérés
Comment créer un jeu mobile dans Unity
Créer un jeu Ludo dans Unity
Comment créer un jeu 2D comme Super Mario dans Unity
Créer un jeu Screamer dans Unity
Créer un jeu d'horreur mobile dans Unity
Comment créer un terrain dans Unity
Comment créer un jeu de quiz dans Unity