Il existe de nombreuses façons de travailler avec une caméra dans les jeux, et cela peut varier considérablement en fonction du type de jeu que vous réalisez. Dans l'Unreal Engine, les caméras sont généralement composées d'un acteur doté d'un composant de bras à ressort (Spring Arm) et d'un composant de caméra, qui permet de faire un rendu de la vue. Pour la configuration de base de la caméra, consultez Utilisation des caméras dans l'Unreal Engine.
Dans ce document, les développeurs détaillent la manière dont ils ont décidé d'implémenter la caméra pour Parrot, ainsi que les paramètres qui méritent d'être expliqués.
Sous-système de caméra Parrot
Pour commencer, chaque carte susceptible de présenter des paramètres de caméra spécifiques au monde a été identifiée.
Les développeurs ont créé UParrotCameraSubsystem, qui partage la durée de vie du monde et initialise la caméra avec ces paramètres lors de BeginPlay. Les paramètres propres à chaque carte sont stockés dans AParrotWorldSettings, qui est utile pour stocker les données propres à chaque carte. Pour la caméra, il s'agit de la classe de caméra souhaitée, du mode de déplacement et de la limite supérieure/inférieure sur Z à partir desquelles nous ne voulons plus que la caméra suive le joueur. La classe est facultative en soi. Le fait de ne pas en fournir une est une option valable. Cette opération s'effectue dans le menu principal.
Pour en savoir plus sur les raisons qui ont motivé le choix d'un sous-système, reportez-vous à la documentation Les sous-systèmes dans Parrot.
Les paramètres du monde se trouvent dans le panneau Paramètres du monde dans l'éditeur.
Caméra de Parrot
AParrotCamera est l'endroit où se déroule l'essentiel de la logique. Lorsque la caméra est initialisée par le sous-système, les information suivantes sont transmises à la caméra : le joueur à suivre, le mode de déplacement à adopter et les limites contenues dans les paramètres du monde.
La caméra dispose de trois modes de déplacement possibles : Aucun, Fixe et Suivre.
Le mode de déplacement Aucun fonctionne exactement comme décrit. La caméra ne fait rien.
Le mode de déplacement Fixe est simple. Lorsque le joueur entre dans un volume délimité, le sous-système de la caméra lui indique une position fixe et interpole en fonction de cette position. Le joueur est alors libre de se déplacer jusqu'à ce que le mode de déplacement soit mis à jour.
Le mode de déplacement Suivre est plus complexe et il est plus facile de comprendre son fonctionnement en regardant Content/Blueprints/BP_PlatformerCamera qui peut servir de référence visuelle. AParrotCamera a une boîte de déclenchement de déplacement et un maillage de blocage comme sous-objets par défaut. Cela signifie que chaque instance d'AParrotCamera les ajoute automatiquement dans sa hiérarchie. Les deux sont alignés sur le champ de vision de la caméra, le bras à ressort (Spring Arm) et la perspective pour obtenir l'effet désiré. Ces deux composants sont attachés à l'acteur de caméra et le suivent dans le monde.
Le maillage de blocage empêche le joueur de se déplacer vers l'arrière dans le monde en entrant en collision avec celui-ci
Lorsque le joueur chevauche la boîte de déclenchement du déplacement, la caméra tente d'interpoler la valeur X du joueur à une vitesse paramétrée. La vitesse est également multipliée par la distance du joueur au-delà de l'extrémité gauche du volume du déclencheur. Ainsi, plus le joueur est loin dans le volume, plus la caméra doit se déplacer rapidement pour le rattraper.
Ainsi le joueur peut se déplacer librement sur le côté gauche de l'écran jusqu'au maillage de blocage, mais la caméra se déplace avec le joueur lorsqu'il franchit le seuil. Cela donne un effet agréable lorsque le joueur se déplace dans le monde sur l'axe x.
Un autre point à noter concernant le mode de déplacement "Suivre" est que la dernière position connue du joueur fait l'objet du suivi. Si la position Z du joueur dépasse les limites du monde, ou si le personnage joueur est détruit, nous interpolons la caméra jusqu'au dernier emplacement connu du joueur. Cela permet d'éviter toute perturbation du comportement de la caméra en fonction du déplacement ou de l'état du joueur.
Enfin, le composant de caméra lui-même sur BP_PlatformerCamera possède quelques paramètres qui méritent d'être expliqués. Le mode de projection est une perspective avec un champ de vision de 90 degrés et un rapport d'aspect de 1,77, ce qui correspond à la HD standard. Dans Options de la caméra, nous limitons les proportions afin que la caméra ait toujours un aspect correct, quelle que soit la résolution de l'application.