Tutoriel Unity Cinemachine et Timeline

Cinemachine est un package pour Unity qui donne aux développeurs un contrôle professionnel de la caméra et améliore la capacité de créer des cinématiques cinématographiques.

Ce didacticiel couvrira les sujets suivants:

  • Installation de cinémachine
  • Configuration de la caméra à la troisième personne
  • Création de la cinématique de la chronologie

Installation de cinémachine

Pour installer Cinemachine, suivez les étapes ci-dessous:

  • Dans Unity, accédez à Fenêtre -> Gestionnaire de packages

Menu du gestionnaire de packages Unity

  • Remplacez les packages par "Unity Registre"

Registre du gestionnaire de packages Unity

  • Sélectionnez "Cinemachine" dans la liste, puis cliquez sur "Install"

La Cinemachine est maintenant prête à l'emploi.

Configuration de la caméra à la troisième personne

Ci-dessous, je montrerai comment configurer une caméra à la 3e personne à l'aide de la caméra virtuelle de Cinemachine.

Une caméra virtuelle est une version allégée d'une caméra Unity, qui ne s'affiche pas seule, mais est simplement utilisée comme point de référence pour la caméra principale.

Comme exemple pour ce didacticiel, j'utiliserai une manette à la troisième personne, sauf sans configurer la collision de la caméra et sans déplacer la caméra à l'intérieur de la hiérarchie des joueurs:

Sharp Coder Lecteur vidéo

Comme vous pouvez le voir, le joueur bouge mais la caméra ne suit pas.

Configurer une caméra à la troisième personne avec Cinemachine est vraiment simple:

  • Allez dans GameObject -> Cinemachine -> Virtual Camera pour créer une nouvelle caméra virtuelle

Cinemachine crée une caméra virtuelle

  • Nommez la caméra virtuelle "TPS Camera"
  • Sélectionnez TPS Camera et dans CinemachineVirtualCamera, attribuez la variable Follow (dans mon cas, ce sera l'objet "CameraParent", qui est situé à l'intérieur d'une hiérarchie de lecteur et représente la rotation verticale de l'apparence)
  • Définissez la valeur du corps sur "3rd Person Follow"
  • Définissez Ignorer la balise sur "Player" et sélectionnez également l'objet racine du lecteur et définissez sa balise sur "Player" (s'il y a des collisionneurs enfants dans la hiérarchie du lecteur, assurez-vous de modifier leurs balises sur "Player" également)
  • Ajustez d'autres valeurs dans CinemachineVirtualCamera telles que la distance de la caméra, le côté de la caméra, le décalage d'épaule et l'amortissement jusqu'à ce que vous soyez satisfait du résultat.
  • Définissez la valeur de visée de CameraParent sur "Do nothing"

Valeurs des composants CinemachineVirtualCamera

La caméra devrait maintenant suivre le joueur:

Sharp Coder Lecteur vidéo

Création de la cinématique de la chronologie

Ici, je vais montrer comment composer une cinématique en utilisant Unity's Timeline.

Timeline est un éditeur intégré qui permet aux développeurs de composer des cinématiques en animant la caméra, et également en utilisant des animations existantes (par exemple, la marche des personnages), ainsi que des événements et des signaux en les organisant de manière séquentielle.

Le package Cinemachine ajoute quelques options supplémentaires à un éditeur de chronologie, telles que la possibilité de basculer entre les caméras virtuelles.

Pour créer une cinématique, suivez les étapes ci-dessous:

  • Créez un nouveau GameObject et appelez-le "TimelineManager"
  • Ouvrez la fenêtre Chronologie en allant dans Fenêtre -> Séquençage -> Chronologie

Menu Chronologie de séquençage de la fenêtre Unity

  • Sélectionnez l'objet "TimelineManager" et dans la fenêtre Chronologie, vous devriez voir une option pour créer un composant Director et une ressource Chronologie, cliquez dessus.

Cinemachine crée un composant Director et un élément Timeline

  • Après avoir créé le composant Director et l'asset Timeline, vous devriez voir la fenêtre Timeline vide (assurez-vous que l'objet TimelineManager est sélectionné pour pouvoir le modifier).

Fenêtre de la chronologie de Cinemachine

  • Nous pouvons maintenant commencer à ajouter des composants à la chronologie en cliquant avec le bouton droit sur la fenêtre.

Créer des composants de chronologie

Comme vous pouvez le voir, la fenêtre Chronologie a plusieurs options:

  • Groupe de suivi - il s'agit d'un groupe qui peut contenir des actions de chronologie et est utile pour l'organisation.
  • Suivi d'activation: définit l'objet qui ne doit être actif que pendant une période définie.
  • Piste d'animation - cela jouera une animation spécifique pendant une période définie.
  • Piste audio - cela jouera un son spécifique pendant une période définie.
  • Control Track - une piste dont les clips contrôlent les éléments liés au temps sur un GameObject.
  • Signal Track - cela permet d'effectuer une grande variété d'actions sur un objet de jeu spécifique à un moment précis (par exemple, activer le script de mouvement du joueur ou appeler une fonction spécifique lorsque la chronologie atteint une certaine image, etc.)
  • Piste jouable - une piste dont les clips sont jouables personnalisés.
  • Cinemachine Track - cela permet de fusionner plusieurs caméras virtuelles cinemachine.

Pour les besoins de ce didacticiel, j'utiliserai uniquement la piste d'animation et la piste de signal.

Installation

  • Créez une autre caméra virtuelle et nommez-la "CutsceneCamera" et définissez sa valeur "Priority" sur un niveau au-dessus de "TPS Camera" (ex. 11)
  • Faites un clic droit dans la vue du projet -> Créer -> Signal et nommez-le "DisablePlayer"

Unity Créer un signal de chronologie

  • Dupliquez le signal "DisablePlayer" et renommez-le en "EnablePlayer"

Actifs de signal de la chronologie Unity

  • Créez un nouveau GameObject dans la scène et nommez-le "SignalReceiver"
  • Attachez le composant SignalReceiver à un objet "SignalReceiver"
  • Cliquez sur "Add Reaction" 2 fois
  • Attribuez "DisablePlayer" à une première réaction et "EnablePlayer" à une deuxième réaction

Unity Timeline Signal Add Réaction

"DisablePlayer" activera la caméra de la cinématique, désactivera la caméra du joueur et le script de contrôle du joueur, et sera placé au début de la chronologie.

"EnablePlayer" désactivera la caméra de la cinématique, activera la caméra du joueur et le script de contrôle du joueur, et sera placé à la fin de la chronologie.

  • Cliquez sur (+) pour ajouter un slot de réaction puis affectez l'objet dont le script ou le composant devait être activé/désactivé.

Astuce: Pour créer un signal opposé, vous pouvez simplement configurer les réactions pour "DisablePlayer" puis cliquer sur l'icône d'engrenage -> Dupliquer, changer le signal en "EnablePlayer" et inverser les cases à cocher.

Signal dupliqué d'unité

Configuration des réactions du signal de la chronologie Unity

  • Sélectionnez l'objet "TimelineManager" puis dans la fenêtre Timeline ajoutez une nouvelle piste de signal en faisant un clic droit -> Signal Track puis affectez-lui l'objet "SignalReceiver".
  • Faites glisser et déposez "DisablePlayer" élément de signal au début de la chronologie et "EnablePlayer" à l'image où vous souhaitez que la cinématique se termine:

Aperçu du signal de la chronologie Unity

Cela rendra le script du contrôleur du lecteur et la caméra désactivés au début, puis réactivés une fois que la chronologie atteint la fin.

Enfin, nous allons créer une animation de caméra simple.

  • Faites un clic droit sur Timeline -> Animation Track puis attribuez "CutsceneCamera" (cela demandera d'ajouter un composant Animator à l'objet s'il n'y en a pas)
  • Cliquez sur le bouton d'enregistrement

Enregistrement de clip d'animation de la chronologie Unity

  • Déplacez légèrement le "CutsceneCamera" afin que l'image clé soit appliquée, puis déplacez la poignée de l'image de la chronologie jusqu'à la fin, et enfin, déplacez la caméra vers une nouvelle position, puis cliquez sur Arrêter l'enregistrement.

Chronologie de la cinématique Unity Cinemachine

Appuyons sur play et voyons le résultat:

Sharp Coder Lecteur vidéo

La cinématique se joue au début du jeu.

Articles suggérés
Tutoriel de manette de jeu pour Unity
Comment peindre des arbres sur un terrain dans Unity
Comment importer des animations dans Unity
Choisir la Skybox adaptée à votre environnement dans Unity
Stratégies pour protéger les jeux Unity contre le piratage
Comment créer un jeu inspiré de la FNAF dans Unity
Importance de la narration dans le développement de jeux Unity