Cinemachine pour la 2D : Conseils et astuces

Vous travaillez depuis longtemps sur un système de caméra pour votre jeu en 2D et vous aimeriez qu'il y ait quelque chose comme Cinemachine pour 2D ? Peu de gens le savent, mais c'est déjà le cas ! Cet article de blog vous donne quelques conseils pour tirer le meilleur parti de Cinemachine, et comment cet outil peut bénéficier et accélérer le développement de votre jeu 2D de manière significative. Continuez à lire pour en savoir plus sur les caméras virtuelles Cinemachine, les confineurs et bien d'autres choses encore, spécifiquement pour une utilisation dans les jeux en 2D.
Vous pouvez obtenir Cinemachine depuis notre Package Manager dans Unity si vous utilisez une version supérieure à 2018.1.0b7.
Vous pouvez le faire en allant dans Fenêtre > Gestionnaire de paquets > Tous et en sélectionnant Cinemachine.

Avec Cinemachine, il est relativement facile de commencer à créer votre système de caméra pour un environnement 2D. Voyons comment créer une caméra virtuelle en 2D.
1. Créez une caméra virtuelle 2D en accédant à la barre de menus et en sélectionnant Cinemachine > Créer une caméra 2D. Cette opération permet de créer une caméra virtuelle pour un environnement 2D. S'il s'agit de votre première caméra virtuelle dans la scène, elle ajoutera également un composant Cinemachine Brain à votre caméra principale.

2. Faites glisser votre joueur de la hiérarchie vers la cible de suivi.
3. Assurez-vous qu'il n'y a rien dans la cible LookAt. Si c'est le cas, sélectionnez-la et appuyez sur la touche "backspace" ou "delete" pour supprimer la référence.
4. Ajustez les paramètres Taille orthographique et Corps en fonction de vos besoins.
La principale différence entre une caméra virtuelle 2D et une caméra virtuelle 3D est l'utilisation d'un transposeur de cadrage. Ce transposeur spécial suivra une cible sur le plan X-Y de la caméra et empêchera la caméra de tourner. Pour que le transposeur de cadrage fonctionne correctement, nous devons nous assurer que la cible LookAt des caméras virtuelles est nulle. Une autre chose à noter est que les jeux en 2D utilisent une vue orthographique, lors de la création de votre caméra virtuelle, vous devrez changer la projection en orthographique sur la Cinemachine Brain Camera de votre scène.

Il est important de se rappeler qu'avec Cinemachine, il ne faut pas essayer de tout faire avec une seule caméra. Au lieu de cela, vous pouvez disposer de différentes "caméras virtuelles" autour de votre scène et effectuer un mélange entre elles à l'aide du Cinemachine Brain. Ce mélange peut se produire si le joueur est en mauvaise santé, s'il est entré dans une certaine zone ou tout autre scénario que vous pouvez imaginer et qui nécessite un changement de cadrage de la caméra ou un post-traitement. Vous pouvez ajuster les paramètres de mélange sur le Cinemachine Brain en fonction de l'aspect visuel que vous souhaitez obtenir.
Regardez la vidéo ci-dessous pour voir comment vous pouvez régler votre caméra virtuelle en mode lecture.
Une autre chose intéressante que nous pouvons faire avec Cinemachine est d'utiliser une boîte de délimitation pour confiner la caméra virtuelle dans une certaine zone. Cette fonction est disponible dans la section extension de la caméra virtuelle. Voici les étapes à suivre pour créer cet effet.
1. Mettre en place une boîte de délimitation pour notre niveau. Il sera utilisé pour confiner le niveau. Pour ce faire, il faut
- Créer un "GameObject" vide.
- Ajouter un 'CompositeCollider2D' au GameObject.
- Définissez le type de géométrie du 'CompositeCollider2D' sur Polygons.
- Réglez le "Rigidbody" du GameObject sur Static.
- Ajouter un 'BoxCollider2D' au GameObject.
- Ajustez le "BoxCollider2D" en fonction de votre niveau.
- Réglez le 'BoxCollider2D' pour qu'il soit "Utilisé par le Composite".

2. Ajoutez l'extension Confiner à votre caméra virtuelle.
3. Faites glisser la boîte de délimitation que nous avons créée précédemment dans la boîte 2D de la forme de délimitation.
4. Décidez si vous souhaitez que la caméra se cantonne aux bords de l'écran. Cette option peut être réglée à l'aide de la case à cocher "Cantonner les bords de l'écran".
5. Enfin, nous pouvons décider si nous voulons que le Confiner ait un amortissement. Cela permettra à la caméra de se superposer en douceur au bord du collisionneur de confinement. Si vous ne voulez pas de cet effet, réglez le temps d'amortissement sur 0.
Voir les résultats ci-dessous :
Exemple de vidéo :
Une autre fonctionnalité intéressante de Cinemachine que nous pouvons utiliser en 2D est la caméra de groupe. Cette caméra nous permet de créer un groupe cible pour notre caméra. Une caméra de groupe est utile si vous réalisez une scène où vous voulez montrer quelque chose d'important, si vous voulez garder plus d'un objet dans chaque image, ou si vous voulez créer un jeu multijoueur local en 2D.
Dans Cinemachine, nous pouvons procéder de la manière suivante :
1. Créer une nouvelle caméra virtuelle 2D
2. Créer un nouveau GameObject dans la scène

3. Ajouter un composant > Cinemachine > 'Cinemachine Target Group' (groupe cible de Cinemachine)
4. Ajoutez au groupe cible les objets de jeu sur lesquels vous souhaitez vous concentrer.
5. Faites glisser le groupe cible vers la propriété "Follow Target" des caméras virtuelles dans l'inspecteur.
6. Ajustez la taille orthographique minimale et maximale - qui, en termes d'appareil photo, définit le "zoom" de l'appareil photo - selon vos préférences.
7. Déterminez le type d'encadrement de groupe que vous souhaitez. Horizontal" ne prend en compte que la dimension horizontale du cadre lors du cadrage de l'appareil photo. L'option "Vertical" ne prend en compte que la dimension verticale du cadre lors de l'encadrement. Le type "Horizontal et vertical" prend en compte les deux dimensions.
Un "groupe de cibles" est un composant de Cinemachine qui vous permet de visualiser plusieurs cibles sur la même caméra virtuelle. Il ajuste la taille de la caméra pour que les cibles soient visibles en fonction du poids. Par exemple, si tous les objectifs ont un poids de 1, le groupe cible veillera à ce que tous les objectifs soient visibles.
Voici un exemple de caméra de groupe qui se concentre sur le joueur et un coffre.

Avec Cinemachine V2.2, nous avons ajouté une nouvelle extension Impulse. Cette extension permet aux utilisateurs de créer des effets de bougé sans créer de code. L'extension Impulse peut être ajoutée en tant qu'extension à votre caméra virtuelle. Je vais vous expliquer comment l'ajouter à votre scène :
- Créez une caméra virtuelle 2D à l'aide de l'option de menu Cinemachine et paramétrez-la pour qu'elle suive notre cible.
- Cliquez sur Ajouter une extension > Cinemachine Impulse Listener.
- Dans l'écouteur d'impulsion, vérifiez que la case "Utiliser la distance 2D" est cochée.
- Le masque de canal vous permet de filtrer les impulsions que vous souhaitez écouter. Dans cet exemple, nous allons utiliser le canal par défaut.
- Sélectionnez le GameObject à partir duquel vous souhaitez envoyer l'impulsion. Dans cet exemple, nous allons utiliser une balle qui rebondit. Chaque fois qu'il touche le sol, il émet un signal d'impulsion sur le canal par défaut et notre écouteur d'impulsion le capte.
- Cliquez sur Add Component et recherchez 'Cinemachine Collision Impulse Source'.
- Sous la rubrique "Forme du signal", nous allons sélectionner un signal pour la variable "Signal brut". Il s'agit d'un profil "NoiseSettings". Nous pouvons utiliser ceux qui sont proposés par défaut ou créer les nôtres.
- Créez un nouveau profil "NoiseSettings" en cliquant sur l'icône en forme de roue dentée et en sélectionnant "New Noise Setting". Enregistrez ceci dans votre projet.
- Nous pouvons choisir que le bruit affecte la position et la rotation ou seulement l'une d'entre elles. Comme il s'agit d'un jeu en 2D, nous affecterons les positions X et Y et la rotation Z. Un bon profil de bruit est imprévisible. En ce qui concerne le bruit, la seule chose que nous voulons faire est de reproduire une partie du caractère aléatoire de la nature. Pour ce faire, nous pouvons disposer de plusieurs couches avec des détails différents.
- Si nous le souhaitions, nous pourrions ajouter un gain à la fréquence et à l'amplitude appliquées par le profil de bruit.
- Sous la rubrique Gamme spatiale, nous allons ajuster la distance de dissipation. Cela détermine à partir de quelle distance nous ne ressentons plus l'impulsion. Fixez-le à 25 pour l'instant.
Si nous le souhaitions, nous pourrions ajuster le mode de dissipation pour modifier le type de décroissance. Il existe d'autres paramètres que nous pouvons ajuster, mais pour l'instant, c'est tout ce dont nous avons besoin.
Vous pouvez voir le résultat ci-dessous :

En résumé, nous savons maintenant comment.. :
- Obtenir Cinemachine avec Package Manager
- Créer une caméra virtuelle 2D
- Limiter une caméra virtuelle à un espace 2D
- Composer une caméra virtuelle pour suivre plusieurs cibles
- Configurer un module d'impulsion pour ajouter le bougé de l'appareil photo
J'espère que vous avez apprécié ce billet et que vous vous sentez prêt à utiliser Cinemachine dans votre prochain projet 2D ! Si vous souhaitez vous tenir au courant de l'actualité de Cinemachine ? Participez à la discussion sur notre forum.
