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
| Mode | Le visiteur… |
|---|---|
none | ne peut pas déplacer la caméra ; c'est vous qui la déplacez |
orbit | fait glisser pour tourner autour d'une cible, et fait défiler pour zoomer |
fly | vole librement avec les touches et la souris |
firstPerson | regarde autour de lui depuis sa place, avec le pointeur capturé |
lock | a le pointeur capturé, pendant que la caméra continue de suivre son objet |
lock pour un personnagefirstPerson 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églage | Ce qu'il fait |
|---|---|
target | le point autour duquel tourne la caméra |
enableRotate · enablePan · enableZoom | les gestes autorisés |
minDistance · maxDistance | jusqu'où le visiteur peut s'approcher et s'éloigner |
minPolarAngle · maxPolarAngle | jusqu'où il peut passer au-dessus et en dessous |
enableDamping · dampingFactor | combien de temps le mouvement glisse après qu'il a lâché |
autoRotate · autoRotateSpeed | une 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
fovest 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.nearetfardélimitent la zone dessinée. Tout ce qui est plus proche quenearou plus lointain quefarest coupé.
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.
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.