Aller au contenu principal

Caméras

Une caméra décide de ce que voit votre visiteur et de la façon dont il se déplace. Réglez son mode de contrôle, son objectif, et des vues supplémentaires comme une mini-carte.

Modes de contrôle​

ModeLe visiteur…
nonene peut pas déplacer la caméra ; c'est vous qui la déplacez
orbitfait glisser pour tourner autour d'une cible, et fait défiler pour zoomer
flyvole librement avec les touches et la souris
firstPersonregarde autour de lui depuis sa place, avec le pointeur capturé
locka le pointeur capturé, pendant que la caméra continue de suivre son objet
Utilisez lock pour un personnage

firstPerson détache la caméra de son objet. Cela convient à quelqu'un qui fait le tour d'un modèle. Pour un personnage, cela ne marche pas : la caméra cesse de suivre le corps.

lock capture aussi le pointeur, mais garde la caméra attachée. Les mouvements de la souris sont transmis à votre script. Utilisez-le pour un jeu à la première personne.

Réglages d'orbit​

orbit est le mode par défaut, parce qu'il convient aux visionneuses de produits. C'est celui qui a le plus de réglages :

RéglageCe qu'il fait
targetle point autour duquel tourne la caméra
enableRotate · enablePan · enableZoomles gestes autorisés
minDistance · maxDistancejusqu'où le visiteur peut s'approcher et s'éloigner
minPolarAngle · maxPolarAnglejusqu'où il peut passer au-dessus et en dessous
enableDamping · dampingFactorcombien de temps le mouvement glisse après qu'il a lâché
autoRotate · autoRotateSpeedune lente rotation automatique

Limitez l'angle polaire sur presque toutes les visionneuses de produits. Sinon, les visiteurs peuvent passer sous le sol et voir la scène par en dessous, et ce n'est jamais beau, quel que soit l'éclairage.

Objectif​

  • fov est le champ de vision, en degrés. 50 donne un rendu naturel. Une valeur plus basse donne un effet de zoom et une image plus plate. Une valeur plus haute montre davantage et donne un rendu plus spectaculaire.
  • near et far délimitent la zone dessinée. Tout ce qui est plus proche que near ou plus lointain que far est coupé.
Des surfaces qui scintillent

Quand far est énorme par rapport à near, les surfaces très proches l'une de l'autre se mettent à scintiller. C'est ce qu'on appelle le z-fighting. Pour le corriger, augmentez d'abord near. C'est bien plus efficace que de réduire far.

Réglages de fly​

En mode fly, le visiteur se déplace avec les touches. Vous pouvez changer ces touches, ou utiliser à la place l'une des affectations de touches nommées du projet. Une vitesse et un multiplicateur d'accélération règlent la rapidité de la caméra. Par défaut, l'accélération est active tant que la touche Shift est enfoncée.

Vues supplémentaires​

Une vue supplémentaire dessine une deuxième image depuis une caméra, par-dessus l'image principale. Utilisez-la pour une mini-carte, un rétroviseur ou un écran de surveillance.

Ajoutez-la à un objet qui a déjà une caméra, puis choisissez où elle se dessine :

  • screen : un rectangle à l'écran. Vous réglez sa position et sa taille en fractions de l'écran.
  • texture : une image qu'un matériau peut afficher.

Avec texture, vous pouvez construire un vrai moniteur. Dessinez la vue d'une caméra dans une texture, puis placez cette texture sur un objet écran de votre scène. L'écran montre alors une autre partie de votre monde.

Les vues supplémentaires sont dessinées après l'image principale, dans l'ordre de votre liste.

Chaque vue supplémentaire redessine toute la scène

Avec deux moniteurs, la scène est dessinée trois fois. Utilisez les vues supplémentaires là où elles comptent, et désactivez-les ailleurs.

Changer de caméra depuis un script​

Une scène est dessinée à travers une seule caméra à la fois. Un script peut vérifier quelle caméra est active et passer à une autre :

ctx.camera.entity();
ctx.camera.setActive(securityCam);
ctx.camera.pose();

C'est toujours le transform de la caméra qui décide de sa position. Écrivez-y pour déplacer la caméra. En modes orbit et firstPerson, les contrôles fixent la rotation : une rotation que vous écrivez est donc écrasée. La position que vous écrivez, elle, est conservée. Voir l'API ctx.

Si des contrôles de jeu pilotent une caméra, le mode de contrôle propre à cette caméra est ignoré. Sinon, les deux entreraient en conflit à chaque image.


Suivant : Prefabs — réutiliser des groupes d'objets et dessiner des milliers de copies.