Nous expliquons ici quelles sont les possibilités actuelles sur klar.land pour représenter les données 3D et comment les données doivent être préparées en conséquence pour obtenir des résultats satisfaisants.
Programm
Nous recommandons le programme blender pour la génération de données 3D.
Un fichier glb est exporté de blender, qui doit contenir les textures cuites et toutes les animations et matériaux compressés au mieux.
La meilleure performance de l’affichage 3D dans le navigateur web est obtenue en comprimant et en réduisant au maximum les composants/vertices. En fin de compte, cela sert l’expérience positive de l’utilisateur.
Format des données
klar.land traite les données au format glb/gltf avec des noms d’objets qui y sont spécifiquement mentionnés et qui servent de base à l’interaction. La dénomination est indiquée plus loin dans ce guide.
Télécharger des données
Dans le menu Admin, les personnes disposant des droits d’accès appropriés peuvent créer un nouveau « stage » pour télécharger les données 3D.
Pour cela, il suffit de glisser-déposer le fichier glb dans le champ prévu à cet effet. La barre de chargement indique la progression du téléchargement. Tant que celui-ci est en mouvement et que le téléchargement n’est pas terminé, la fenêtre du navigateur ne doit pas être fermée.
Dans la zone de texte « JSON », les commandes d’interaction individuelles sont définies pour le fichier glb/gltf et l’environnement 3D. Tu trouveras les différentes possibilités de réglage et d’ajustement fin du « Stage » dans le guide JSON.
Matériel
1. pour les matériaux modifiables, il faut créer un objet appelé « MaterialHolder » qui contient tous les matériaux entre lesquels il est possible de passer.
Caméra
1. la caméra initiale (la vue que tu vois en chargeant la scène) doit s’appeler Defaultcam.
2. tous les autres noms de caméra doivent se terminer par cam.
Éclairage
1. les noms d’Arealights doivent commencer par Arealight et
2. Pointlights avec Pointlight.
Objets
1. les noms d’objets doivent également être attribués aux maillages correspondants
2. si plusieurs objets ont le même nom, par exemple pour plusieurs œufs, les noms devraient alors être « œuf_1, œuf_2, œuf_3 », etc.
3. les objets doivent être mis à l’échelle 1 avant d’être exportés.
4. pour les objets avec des textures vidéo, il est recommandé de créer des plans simples (rectangles) avec un mappage UV standard. Ceux-ci doivent avoir des matériaux différents si différents objets doivent être montrés avec des vidéos différentes à chaque fois. Les objets avec les mêmes matériaux reçoivent aussi la même vidéo.
Matériaux/textures
1. pour les matériaux en verre, le nom doit commencer par Glass.
2. les cartes d’occlusion d’ambiance baked seraient importantes pour les performances, car le calcul des ombres dynamiques nécessite beaucoup de calculs.
3. pour les Baked Ambient Occlusion Maps, un node spécial non standard est utilisé dans Blender. Il est préférable de l’extraire d’un fichier de mélange existant. Si tu ne disposes pas d’un fichier de mélange approprié, n’hésite pas à nous contacter.
Navigation dans la scène
Si la navigation sur le sol (c’est-à-dire cliquer n’importe où sur le sol) est souhaitée, l’objet sol doit s’appeler « _floor » et le pivot de l’objet doit être centré. Attention : dans la hiérarchie de Blender, seul l’objet mesh doit s’appeler « _floor ».
Comme alternative à l’objet _floor, tu peux aussi nommer un objet « _navMesh ». Celui-ci est automatiquement rendu invisible et le paramètre « userScale » du code Json permet d’indiquer la hauteur souhaitée en mètres au-dessus du _navMesh. Par rapport à l’objet _floor, tu as donc plus de possibilités d’adaptation.
Pour les appartements/pièces ou autres, il est recommandé d’utiliser groundspots. Ils empêchent notamment la navigation dans les murs. Pour cela, il suffit de créer juste au-dessus de l’objet de sol nommé « _floor » plusieurs plans (=rectangles) sans matériau, qui contiennent dans leur nom la chaîne de caractères « groundspot ». De plus, le code Json doit contenir les éléments suivants :
{ "Stage3dData": [ { "navigationmode":2, ..... } ] }
Animations
Les noms d’animation doivent commencer par le nom de l’objet correspondant.
Par exemple
Ei_1 vole sur la table de la salle à manger
Oeuf_2 dans le pot
IMPORTANT: Fais attention à la cohérence dans les noms utilisés dans les animations et les objets ! Aussi bien pour la création que pour les retouches/modifications !
Ne pas doubler les animations !
Informations dans une liste séparée pour les animations :
1. nom de l’animation (n’importe quel nom d’animation)
2ème groupe d’animation (si plusieurs objets deviennent cliquables après avoir cliqué sur un objet, ils doivent tous recevoir le même nom de groupe).
3ème couche d’animation (le bouton est cliqué et la caméra vole vers le spot de la caméra => couche 0, l’objet est cliqué et joue l’animation => couche 1, le sous-objet est cliqué et joue)
4. état d’animation (si tu veux que lorsque tu cliques à nouveau sur un objet, l’animation soit différente de celle du premier clic, la première animation doit avoir l’état 0 et la deuxième l’état 1 (par exemple, premier clic => la porte s’ouvre, deuxième clic => la porte se ferme))
5. objet déclencheur d’animation (objet qui doit déclencher l’animation au clic)
6. caméra d’animation (caméra sur laquelle on doit passer quand on a cliqué sur l’objet déclencheur)
7. animations avec timecode (les noms exacts des animations comme indiqué dans le programme 3D, y compris les timecodes quand elles doivent être jouées)
(tu trouveras plus d’informations sur les animations ou leur dénomination dans le guide JSON)