Bonjour,
d'abord merci pour ce boulot de fou !
J'essaie d'exporter certaines pièces ou ensemble en .glb pour les visualiser dans un moteur 3D (three.js). Lorsque j'exporte en .glb une sélection d'objets du squelette, tout va bien.
Lorsque j'ajoute les insertions musculaires, j'avais quelques bugs, liés aux modificateurs (Solidify et Subdivision) qui ne sont pas exportés en glb. J'ai trouvé une solution en convertissant les objets en mesh, ce qui applique l'ensemble des modificateurs directement dans Blender. Ainsi les objets s'exportent correctement en glb.
Mais dès que j'essaie de rajouter des ligaments ou des muscles, j'ai un autre problème. ils se retrouvent en 0,0,0 au lieu d'être à la bonne place.
J'ai tenté là aussi de convertir les objets en mesh pour appliquer les modificateurs, mais cela ne change rien.
Je suis encore débutant sur Blender, mais je crois comprendre que les ligaments et muscles sont liés à l'armature et que cela ne s'exporte pas en glb.
Auriez-vous une idée de quelle manip je pourrais faire pour "fixer" la positions des muscles et ligaments avant mon export en glb ?
Cordialement,
B. Roux
Bonsoir. Merci!
En principe, chaque objet a son origine au centre de sa géométrie et ses coordonnées sont enregistrées dans les 'Delta transforms' (Dans Properties>Object>Transforms>Delta transforms); ce qui permet de les sélectionner facilement, et les faire revenir à leur place quand on annule toutes les translations/rotations/scale (Alt+G; Alt+R; Alt+S).
Il semblerait que la conversion ne tient pas compte des Deltas transforms et replace les origines -et donc l'objet- au point (0,0,0).
Pour que leurs coordonnées soient préservées, il suffit alors de mettre le curseur sur l'origine du monde (0,0,0) avec 'Shift+C' de sélectionner tous les objets, d'aller dans Object>Set Origin>Origin to 3D cursor (En haut de la vue 3D).
Toutes les coordonnées de déplacement seront à zéro et ça devrait résoudre le problème.
Pour information, les delta transforms sont une couche de transformations qui n'est pas affectée par les manipulations de la vue 3D. Ça m'a aussi intrigué au début, mais c'est très utile.
N.B.:Pour afficher/masquer les origines, aller dans Overlays>et cocher/décocher la checkbox 'Origins(All)' (icône de double cercles superposés en haut a droite de la vue 3D)
Ok, je comprends le principe. Je vais essayer ça dès que possible. Merci beaucoup !
Hello,
j'ai fais pas mal de test mais toujours le même problème.
Exemple : si je prend une sélection de l'épaule avec le squelette et l'articulation, les origine sont par défaut au centre des géométries. Lors de l'export en .glb, j'ai bien le squelette à sa place mais tous les éléments articulaires sont en 0,0,0, les uns sur les autres.
Si je modifie les origines au curseur 3D (pour le squelette et pour l'articulation) et que j'exporte en .glb, alors le squelette est toujours bien à la même place, alors que les éléments articulaires se retrouvent de nouveau proche de 0,0,0, mais un peu éclatés.
Ce qui m'interroge c'est que le squelette s'exporte très bien, ou que soient les origines : au centre de la géométrie ou au curseur 3D en 0,0,0. Et il en va de même pour les insertions musculaires où je n'ai aucun soucis de placement lors de l'export. Par contre, pour les articulations et les muscles, les éléments ne restent pas à leur place.
J'en conclu que le soucis ne vient pas des origines mais d'autre chose.
J'ai fais d'autres tests en ajoutant dans un nouveau fichier la collection Squeletal system, ou bien Muscular insertions, tout est bien en place dans Blender et tout s'exporte bien à sa place.
Si j'ajoute la collection "joints", les articulations s'affichent correctement à leur place dans blender, mais à l'export en glb tout est mal placé et re-centré vers 0,0,0 (plus ou moins)
En faisant des tests j'ai réussi à reproduire cela dans Blender, lorsque je sélectionne les meshes et que je fais "Aimanté / Sélection vers curseur", alors tous les meshes se retrouvent sur l'axe central, ce qui est très similaire à ce que j'ai lors de l'export en .glb.
Mais je n'arrive pas à m'expliquer pourquoi cela se produirai lors de l'export....
Hormis cette piste, je ne trouve pas ce qui peut être différent entre un mesh du squelette et un mesh d'articulation, et qui expliquerai pourquoi ces meshes ne sont pas à la bonne place lors de l'export.
Est-ce que les éléments articulaires et musculaires subissent d'autres modifications ou transformations (liens, rig, déformation, animation...) pour être placé à la bonne place dans Blender et qui ne s’exporteraient pas en .glb ?
Cordialement,
Bonjour Bertrand,
Vous avez raison; le même problème apparaît de mon côté.
En faisant une recherche rapide, il semblerait qu'il s'agit d'un défaut à résoudre au niveau du programme lui-même, et qui existe depuis 2.8:
https://github.com/KhronosGroup/glTF-Blender-IO/issues/193
Après un petit essai, je vois que ce problème n'existait pas sur la version 2.79. Une solution, faute de mieux, est donc d'installer une version 2.79:
https://download.blender.org/release/Blender2.79/
Les objets sont copiables-collables ('Ctrl+C'; 'Ctrl+V') d'une fenêtre à l'autre.
Attention les raccourcis sont différents (Right-click select).
Il est nécessaire d'installer l'add-on Export Gltf sur 2.79:
Pour l'installer, il faut le dézipper, Aller dans
glTF-Blender-Exporter-master>Scripts>Addon et rezipper seulement l'addon
Ensuite, depuis Blender2.79:
File>User Preferences>Install add-on from file
et sélectionner ce dossier zippé.
L'export permet alors de générer un .glb ou un .gltf qui respecte les positions.
N.B.:l'addon en question ne fonctionne par contre pas sur >2.8
Bon, j'ai un peu galéré mais j'ai enfin Blender 2.79, j'ai téléchargé et installer l'add-ons pour exporter en glb.
l'interface de la version précédente de blender est un peu différente et j'ai eu un peu de mal à retrouver mes marques.
J'arrive par copier/coller à importer mes mesh d'un blender à l'autre, et l'export en glb fonctionne. (Cris de joie !!)
Par contre, je n'ai plus de matériaux, et mon modèle est complètement blanc.
est-ce que les matériaux sont compatibles d'une version à l'autre ? Y a-t-il une technique pour lier ou importer la librairie de matériaux ?
Les matériaux de l'atlas sont créés dans et pour le moteur de rendu 'Eevee' qui a l'avantage de permettre de voir le rendu final en temps réel et donc de naviguer dedans.
Comme Eevee est absent de la version 2.79, mais surtout que l'exporter ne permet pas d'associer le matériau, il semblerait que non.
J'ignore quelle est la finalité de ce format mais il est à prévoir que certaines fonctions disponibles dans Blender seront à recréer lors d'une exportation dans un autre programme; et les matériaux semblent en faire partie.
Même s'il était possible d'interpréter le matériau utilisé dans l'atlas, ces matériaux ont tous été modifiés par l'utilisation de 'nodes', dont certains très aprticuliers, liés au script python intégré dans l'atlas, qui rendent possible l'utilisation des plans de 'cross-section'.
C'est pour ça que les plans sont toujours ajoutés quand les objets sont collés dans une autre fenêtre, alors qu'ils n'ont pas été sélectionnés.