Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog Loterie
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

Camera FPS avec Cinemachine de Unity : Unity

pictureProfil_alto
Ecrit par alto
Catégorie Unity
Mis à jour le 02/11/2020
Camera FPS avec Cinemachine de Unity

Découvrez comment créer une Camera FPS facilement avec le package Cinemachine de Unity.

5 min Intermédiaire

Le package Cinemachine peut être très intéressant pour disposer assez vite d'une camera "intelligente", sans trop devoir ajouter de lignes de codes.

Dans ce tutoriel nous allons créer une caméra de type FPS, qui se placera automatiquement, et sans une ligne de code, à la bonne position derrière le joueur.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/resultcinemachinepart1-5f9f06822ab6d.gif

Pensez à télécharger le projet Cinemachine depuis Github. Un souci pour le faire ? Suivez le guide pour utiliser un projet Unity . Allez encore plus loin avec un Atelier complet dédié à Github .

Installer le package Cinemachine de Unity.

Dans Unity c'est désormais très simple d'installer un package officiel, encore une fois grâce au PackageManager.

Installez donc le package Cinemachine.

Sachez qu'il est aussi possible d'installer un package issu de l'Asset Store ou d'un dépôt github.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachineimportpackage-5f9ecf08d863f.png

Faites bien attention à choisir la version 2.6.x du package Cinemachine , même si la version n'est pas 2019.4 verified, sinon on a pas le mode FPS du Body

Notez que dans le menu du haut de l'éditeur, Cinemachine apparaît maintenant, permettant d'ajouter des composants de type Cinemachine.

Ajouter une Virtual Camera

Créer une nouvelle scène. Ajouter dans la scène, le prefab que vous voulez que la caméra suive en mode FPS.

Si vous suivez en même temps la vidéo démo, vous trouverez un lien vers le projet GitHub, dans lequel vous pourrez utiliser des prefabs déjà parés à l'action !

En passant par le menu du haut, ajouter un GameObject de type VirtualCamera.

Cinemachine => Create Virtual Camera

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

Notez que le composant CinemachineBrain a été automatiquement ajouté à la Camera présente dans la scène. Ce nouveau composant permet à Cinemachine de prendre le contrôle de la caméra de la scène.

A ce stade vous devez avoir un nouveau GameObject dans votre scène, qui porte le composant CinemachineVirtualCamera.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinehierarchyvmcamaddiciotn-5f9ed6866a7fa.png

Paramétrer le composant VirtualCamera

Le nouveau Gameobject ajouté par Unity permet de gérer justement le suivi que l'on veut créer.

Cliquez sur le GameObject qui porte le composant CinemachineVirtualCamera afin de commencer le paramétrage .

Pour notre vue FPS, nous allons choisir "3rd PersonFollow"  pour la valeur du paramètre Body.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinebodyparam-5f9ed094af0f4.png

Retrouvez d'autres types de paramétrages possibles du champ Body dans la documentation officielle de Unity.

Il faut ensuite indiquer au composant quel Transform suivre et notre VirtualCamera fera le reste. Affecter donc le FollowTarget du player au paramètre Follow du composant.

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinetargettransform-5f9ed6cb8837e.png

https://makeyourgame.fun/upload/users/alto/tutoriels/Cinemachine/cinemachinefollowparam-5f9ed171b1eea.png

Amusez vous un peu avec les paramètres dampening, cameraSide, cameraDistance ou encore shoulder offfset, pour découvrir certains ajustements possibles de votre VirtualCamera  https://makeyourgame.fun/sceditor/emoticons/wink.png  .

A partir de là, vous pouvez lancer la scène, et si vous déplacez votre player, la position de la caméra devrait se mettre à jour automatiquement.

Aller plus loin en scriptant la VirtualCamera

Pouvoir suivre un GameObject de la scène c'est super ! Mais pouvoir en changer en cours de route, pendant le déroulement du jeu, c'est encore mieux.

Dans la vidéo ci-dessous, vous trouverez un récapitulatif de ce qui a déjà été traité ci-dessus, mais aussi la démonstration du switch.

Voici le script, SwitchView.cs, qui est utilisé dans la vidéo.

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

public class SwitchView : MonoBehaviour
{
    [SerializeField]private CinemachineVirtualCamera cineCam;
    [SerializeField]private  List<Transform> targets; //Liste des Transform que l'on veut suivre

    public int currentInt;
    // Start is called before the first frame update
    void Start()
    {
        cineCam = GetComponent<CinemachineVirtualCamera>();
    }

    // Update is called once per frame
    void Update()
    {
         if (Input.GetKeyDown (KeyCode.Space)) { // appui sur la touche espace
            Debug.Log ("switch target");
            currentInt++;
            if(currentInt >= targets.Count){
                currentInt = 0;
            }
            cineCam.Follow = targets[currentInt]; // change le paramètre Follow pour un nouveau Transform pris dans la liste
        }
    }
}

Le concept est simple ! On dispose d'une liste de Transform que l'on désire suivre, et à chaque fois que l'on appuie sur la barre d'espace, ont met à jour le fameux paramètre Follow de la Virtual Camera.

Ainsi la caméra ira se positionner automatiquement derrière le nouveau personnage à suivre. Super, non ?

Retrouvez le projet sur Github .

Vues: 3105

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