Physique
La physique est facultative et largement automatique : le sol est solide sans que vous le demandiez, et ce que vous marquez comme dynamique tombe. Les règles ci-dessous expliquent les deux ou trois cas où elle ne se comporte pas comme on l'attend.
Ce qui compte comme solide
Une chose est solide si vous lui avez donné un corps rigide, ou si elle a une forme et que rien au-dessus d'elle n'en a déjà revendiqué une. Le sol vous arrête parce que c'est un sol — vous n'avez pas à penser à le marquer.
En remontant depuis un objet :
| L'objet a… | Résultat |
|---|---|
| un corps rigide | il est son propre corps |
| un corps rigide réglé sur none | rien n'est solide ici, enfants compris |
| un collider — même invisible | solide |
| de la géométrie, et il est visible | solide |
| de la géométrie, mais il est masqué | pas solide |
| rien de tout cela (un groupe, une lumière) | pas solide |
Deux choses en découlent, et toutes deux sont utiles :
Un collider signifie que c'était voulu, il reste donc solide même invisible. C'est exactement ainsi qu'on fait un mur invisible : un collider et pas de géométrie. Les visiteurs se cognent à rien du tout.
La géométrie n'est solide que tant qu'on la voit. Masquez une forme décorative et elle cesse aussi de bloquer les choses.
Une fois qu'une forme a rejoint un corps plus grand, elle y reste même masquée. Pour l'en sortir, supprimez l'objet ou réglez son corps rigide sur none.
D'où viennent les formes de collision
Donnez un collider à un objet et c'est celui-là qu'il utilise. Sans collider, le moteur déduit une forme de la géométrie :
| Géométrie | Vous obtenez |
|---|---|
| box, sphere, cylinder, capsule, cone | la forme correspondante |
| les trois polyèdres | une enveloppe exacte |
| plane, circle, ring, triangle | une dalle fine à double face |
| torus | un anneau de sphères qui se chevauchent |
| extrude, lathe | une forme de maillage exacte |
| un modèle 3D importé | rien — voir ci-dessous |
C'est de très loin la surprise la plus fréquente en physique. Déposez un GLB dans une scène, marquez-le dynamique, et il traverse le monde. Ajoutez un collider — une boîte ou une capsule est presque toujours la bonne réponse — et il se comporte bien.
Une forme de maillage (issue d'extrude, de lathe ou d'une géométrie importée) convient à un sol ou un mur statique. Sur quoi que ce soit qui bouge, elle traverse les choses et tressaute. Prenez plutôt une boîte, une sphère, une capsule ou un cylindre — les formes simples sont aussi bien plus rapides.
L'échelle est cuite dans la forme : redimensionner un objet redimensionne ce avec quoi il entre en collision.
Déplacer un corps physique
La physique possède la position d'un corps dynamique et réécrit votre modification au pas suivant. On dirait que l'éditeur vous ignore.
Déplacez-le avec une impulsion ou une force, et posez-le quelque part avec un teleport — réapparitions, points de passage, « retour au début ».
Depuis un script, c'est ctx.physics.teleport(...) et ctx.physics.applyImpulse(...) — voir
la référence ctx. Si vous voulez un personnage qui
marche, les contrôles de jeu s'occupent de tout cela.
Lire la vitesse de quelque chose ne coûte presque rien et accuse environ une image de retard — parfait pour « est-ce que je bouge ? », pas pour des calculs exacts.
Réglages du monde
Gravité, friction par défaut, rebond et qualité du solveur se règlent par projet et peuvent être surchargés par space. Les changements s'appliquent immédiatement, sans redémarrage.
Un corps individuel peut surcharger friction et rebond ; laissez-les tranquilles et il hérite de ceux du monde.
Collisions
Quand deux choses se touchent, les deux sont prévenues : un événement on-collide se déclenche sur
chacune, et chacune apprend ce qu'elle a heurté. Dans un événement vous pouvez restreindre cela à
des objets précis, ou le laisser ouvert.
Contrairement à un toucher, elle ne se déclenche que sur les objets qui se sont réellement touchés. Posez l'événement sur la chose qui entre en collision.
Quand la physique tourne
| Où | Physique ? |
|---|---|
| Lecteur (web) | oui |
| Application ARClip | oui |
| Éditeur | non — rien ne tombe pendant que vous travaillez |
Même dans le lecteur, le moteur ne démarre la physique que si une scène en a besoin : quelque chose de dynamique ou de kinématique, des contrôles de jeu, ou un corps plus un script. Une scène de décor statique ne la paie pas — sur le web, cela épargne à vos visiteurs un téléchargement de plusieurs mégaoctets.
La vérification est vivante : une balle qu'un script crée en cours de session fait démarrer la physique pour elle-même.
Suite : Lumières — et ce qui s'anime en douceur.