Objets et scènes
Tout votre projet est fait d'objets, et ce sont les scènes qui décident quand ces objets apparaissent. Voici comment objets, composants et scènes s'articulent.
L'éditeur parle d'objet (object). Le moteur et l'API de script parlent d'entité (entity). Cette documentation n'emploie entité que lorsqu'il est question de code.
De quoi est fait un objet
Un objet contient deux sortes de choses :
- Les composants sont ses réglages. Ils décident de ce qu'est l'objet : son nom, sa position, son apparence, ce à quoi il réagit. Un objet ne peut avoir qu'un seul composant de chaque sorte.
- Les objets enfants sont d'autres objets placés à l'intérieur. Chaque enfant a ses propres composants.
Voici une lampe avec quatre composants :
Objet "Lampe"
├── Meta son nom, si elle est activée, si elle est visible
├── Transform où elle se trouve, comment elle est tournée, sa taille
├── Model quel modèle 3D dessiner
└── Events ce à quoi elle réagit
Ce sont les noms utilisés par le moteur. L'inspecteur affiche Meta sous le nom General.
Voici la même lampe avec une ampoule à l'intérieur. L'ampoule est un objet à part, avec ses propres composants :
Objet "Lampe"
└── Objet "Ampoule" ← un objet à part
├── Transform ← avec ses propres composants
└── Light
Une vraie scène ressemble à ceci. Les composants suivent chaque nom, et les enfants sont décalés sous leur parent :
Objet "Salon" ◆ Anchor ← une scène : elle a une ancre
│
├── Objet "Lampe" ◆ Transform ◆ Model ◆ Events
│ └── Objet "Ampoule" ◆ Transform ◆ Light
│
└── Objet "Table" ◆ Transform ◆ Model ◆ RigidBody ◆ Collider
Tout ce qui figure sur ce schéma est un objet. Ce sont ses composants qui décident s'il s'agit d'une scène, d'une lampe ou d'un corps physique.
Utilisez un composant pour une propriété de l'objet lui-même. Utilisez un objet enfant pour une chose distincte qui doit se déplacer avec lui.
Déplacer la lampe déplace l'ampoule, parce que l'ampoule est dans la lampe. Retirer le composant de modèle de la lampe ne retire pas l'ampoule.
Construire des objets avec des composants
Il n'existe pas de liste de types d'objets parmi lesquels choisir. Vous combinez des composants pour obtenir ce qu'il vous faut :
| Donnez à un objet… | …et vous obtenez |
|---|---|
| une géométrie + un matériau | une forme visible |
| une référence de modèle | un modèle 3D importé |
| un composant de lumière | une lumière |
| un composant de texte | un texte |
| un corps rigide + un collider | un objet que la physique peut déplacer |
| une ancre | une scène |
| un script ou un patch | un objet doté d'un comportement |
Voici par exemple comment faire une balle qui rebondit :
- Ajoutez une géométrie en sphère et un matériau. La balle devient visible.
- Ajoutez un corps rigide et un collider. La balle tombe et rebondit.
- Ajoutez un script. La balle peut maintenant faire quelque chose quand elle touche le sol.
Chaque composant ajoute une capacité. Retirez le composant, et la capacité disparaît avec lui.
Scènes, objets et logique de l'espace
Vous croiserez trois sortes d'objets. Ils ne se ressemblent pas, mais ce sont tous des objets, avec des composants différents :
| Ce que c'est | Ce qu'il a | Ce qu'il n'a pas |
|---|---|---|
| Une scène | une ancre, et des enfants | un transform |
| Un objet ordinaire | un transform, et tout ce dont il a besoin | une ancre |
| Un comportement de l'espace | un script ou un patch, et aucun parent | un transform, une ancre |
Une scène n'a pas de transform, parce que sa position vient de l'objet réel auquel elle est ancrée. Un comportement de l'espace n'a pas de transform, parce qu'il n'est placé nulle part dans le monde. C'est uniquement de la logique qui continue de tourner.
Besoin de trois matériaux sur un même modèle ? Utilisez les slots de son composant de matériau. Besoin de deux exemplaires d'autre chose ? Utilisez des objets enfants. Une lampe à deux ampoules, c'est un objet lampe avec deux enfants.
Chaque objet a aussi un nom, pour que vous puissiez le retrouver, et peut avoir un parent : l'objet dans lequel il se trouve.
Activé et visible
Dans l'inspecteur, les interrupteurs Enabled et Visible se ressemblent, mais ils ne font pas la même chose.
- Désactivé, l'objet sort de l'expérience. Il n'est pas dessiné et on ne peut pas le toucher. Ses scripts s'arrêtent et ses événements ne se déclenchent plus. Tout se passe comme s'il n'existait pas.
- Invisible, l'objet n'est simplement plus dessiné, et on ne peut plus le toucher. Il est toujours là : ses scripts continuent de tourner, et la physique le heurte toujours s'il a un collider (voir ce qui compte comme solide).
Par exemple :
- Un mur invisible qui arrête quand même le joueur : rendez-le invisible.
- Une récompense qui apparaît plus tard : laissez-la désactivée jusqu'au moment voulu.
Parents et enfants
Les objets forment un arbre. Quand vous déplacez un parent, ses enfants le suivent et gardent leur place par rapport à lui. C'est ainsi que l'on construit tout ce qui a plusieurs pièces : une carrosserie qui contient quatre roues se déplace comme une seule voiture.
Ses enfants sont supprimés aussi, ainsi que leurs propres enfants. Pour en garder un, faites-le d'abord glisser hors de l'objet.
Vous ne pouvez pas placer un objet à l'intérieur d'un objet qu'il contient déjà. L'éditeur ne le permet pas.
Une scène est le sommet de son arbre. Chaque objet que vous ajoutez à une scène se trouve dans l'objet de la scène, directement ou à l'intérieur d'un autre objet. Tout autre objet sans parent n'appartient à aucune scène. Il appartient à tout l'espace, comme l'explique Logique pour tout l'espace plus bas.
Scènes et ancres
Une scène est un objet doté d'une ancre. L'ancre décide quand la scène apparaît :
| Ancre | Votre scène apparaît quand… |
|---|---|
image | la caméra reconnaît une image imprimée |
qr | un QR code est scanné |
geo | le visiteur se trouve à un endroit donné |
face | un visage est détecté |
surface | le visiteur la pose sur un sol, un mur, un plafond ou une table |
panorama | un environnement à 360° s'ouvre |
3d | tout de suite : c'est une scène 3D normale, sans AR |
Le VPS place le contenu à l'aide d'une carte scannée d'un lieu réel. Ce n'est pas un type d'ancre à part. Configurez une scène surface, puis activez le VPS.
Plusieurs scènes sur un même marqueur
Les scènes qui ont le même déclencheur (la même image, le même QR code ou le même lieu) forment un groupe. Une seule scène du groupe s'affiche à la fois.
Servez-vous-en pour raconter une histoire. La même affiche ouvre le premier chapitre, puis, plus tard, le deuxième. Il vous suffit de changer la scène active du groupe.
L'éditeur ajoute deux événements pour afficher et masquer une scène : on-detect l'affiche et
on-lost la masque. Ce sont des événements ordinaires, que vous pouvez modifier. Vous pouvez par
exemple garder le contenu à l'écran quand le marqueur sort du champ de la caméra. Les visiteurs
préfèrent généralement cela : sinon, le contenu disparaît dès que leur main tremble.
Réglages d'une scène surface
Les scènes surface ont trois réglages distincts, faciles à confondre :
- Les surfaces acceptées : sol, mur, plafond, table.
- La façon de placer le contenu : automatiquement sur une surface détectée, ou à l'endroit que le visiteur touche.
- Le moteur de suivi : ce réglage ne compte que sur le web. Dans les applications natives, il n'a aucun effet.
Logique pour tout l'espace
Un objet doté d'un comportement et sans parent n'appartient à aucune scène. Il appartient à tout l'espace. Il continue de tourner pendant que les scènes vont et viennent, et il reçoit tous les événements, où qu'ils se produisent dans l'espace.
Utilisez-le pour un compteur de points, un contrôleur global, ou pour retenir ce que le visiteur a choisi. Un script placé dans une scène s'arrête dès que cette scène s'arrête.
Comment l'éditeur désigne les objets
L'éditeur affiche des étiquettes comme model, primitive ou text. Il choisit l'étiquette d'après les composants de l'objet, qu'il examine dans cet ordre :
référence de splat → splat
model + skinning → animated model
model → static model
video → video ← examiné avant geometry
text → text
audio → audio
light → light
geometry → primitive
tout le reste → object
Un plan qui lit une vidéo porte donc l'étiquette video, et non primitive. Vous ne pouvez modifier le matériau et la géométrie que sur les primitives et les modèles statiques.
Suivant : Composants — ce que contrôle chaque composant.