Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Changer de vue caméra avec Cinemachine de Unity : Unity

pictureProfil_alto
Ecrit par alto
Catégorie Unity
Mis à jour le 28/11/2020
Changer de vue caméra avec Cinemachine de Unity

Comment changer la vue de sa caméra facilement, presque sans code ?

4 min Intermédiaire

Dans ce tutoriel nous allons utiliser 2 caméras, disposant de 2 vues distinctes, permettant de changer de vue dynamiquement pendant l'exécution du jeu. 

Comme vous pouvez le voir ci-dessous, grâce à Cinemachine de Unity, le changement se fera facilement d'une caméra vers l'autre, tout cela avec un effet LERP automatique.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinechangecam2-5fbf71693212e.gif

En effet il serait tout à fait possible de coder cette transition entre les 2 caméras (FPS mode et skyMode), mais avec Cinemachine nous n'avons rien à faire, c'est pris en charge automatiquement ... excellent, non  https://makeyourgame.fun/sceditor/emoticons/smile.png ?

Ce tutoriel fait suite au premier tutoriel dédié à Cinemachine . Aussi n'hésitez pas à aller faire un tour pour pouvoir suivre cet épisode !

Mise en place des caméras virtuelles

Reprenez la scène issue du premier tutoriel , et dupliquez la pour partir d'une base avec une première Virtual Camera en mode FPS .

Puis ajoutez une seconde Virtual Camera.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinecreatevirtualcamera-5f9ecf4e74b9c.png

Cette seconde camera virtuelle va nous servir pour la camera en mode SkyMode. Aussi nous devons la paramétrer différemment, vu qu'elle ne sera pas censée suivre un personnage cible.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinevhcamdonoting-5fc231de8dd0e.png

Ajustez donc les paramètres Body et Aim de cette seconde Virtual Camera à DoNothing !

Au final on réorganise un peu la hierarchy de notre scène afin d'y voir plus clair.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinechangecamerahierarchy-5fc23255d0e9f.png

Ainsi on crée un GameObject vide ("empty gameObject";) qui sera le parent des caméras virtuelles et de la main camera de la scène. Notez encore une fois le petit logo à droite de Camera, indiquant que cette caméra, portant le composant Camera, est gérée par un composant CinemachineBrain.

Changer de Virtual Camera

Afin de pouvoir passer d'une Virtual Camera à une autre et ainsi indiquer à notre "brain", quelle est la VCamera à utiliser pour le rendu, il suffit de jouer sur l'activation /désactivation des caméras virtuelles.

C'est d'ailleurs ce qui est préconisé par la communauté de Unity, ainsi que la documentation : jouer sur plusieurs Virtual Cameras, plutôt que de changer le paramètre aim et/ou body au runtime.

On va donc créer un script C# nommé SkyToFPS.cs, dans lequel nous allons plaquer cette logique. Ce script sera donné au GameObject de la scène "CAMERAS".

using System.Collections;
using System.Collections.Generic;
using Cinemachine;
using UnityEngine;

public class SkyToFPS : MonoBehaviour {
    [SerializeField] private CinemachineVirtualCamera cineCam;
    [SerializeField] private CinemachineVirtualCamera cineSkyCam;

    [SerializeField] private bool skyMode; //par default setté à False

    void Start () {
        cineCam.enabled = !skyMode; //true
        cineSkyCam.enabled = skyMode; //false
    }

    void Update () {
        if (Input.GetKeyDown (KeyCode.M)) {
            skyMode = !skyMode;
            Debug.Log ("switch cam Mode " + skyMode);
            cineCam.enabled = !skyMode;
            cineSkyCam.enabled = skyMode;
        }
    }
}

Comme vous pouvez le voir on switch entre les 2 Virtual Cameras quand on appuie sur la touche "M" du clavier, ce qui active/désactive la bonne Virtual Camera. De manière très simple ensuite, il suffit de remplir dans l'éditeur les slots cineCame et cineSkyCam.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinethumbchangevirtualcameracomposant-5fc23526e7484.png

Et c'est tout ! Il suffit alors de lancer le jeu afin d'observer en temps réel le changement de caméras !

Retrouvez le projet sur Github .

Vues: 3628

Licence:



Validation du Tutoriel

Veuillez vous connecter ou créer un compte pour pouvoir valider ce tutoriel et ainsi gagner de l'expérience (XP) !

Vous aimerez aussi...

Blog et Tutoriels