Lors des ces deux jours, j'ai énormément échangé, surtout autour de Blender et Godot et des formats d'échange et d'interaction. Cela m'a fait du bien de pouvoir discuter avec des professionnels et des techniciens, c'était ma première immersion 'pro' dans le monde de la 3D en fait
Merci à tous d'avoir rendu ce déplacement possible, en particulier Mopi et vv221, qui nous ont chaleureusement accueillis. C'était vraiment intense, mais j'ai appris plein de petits trucs, découverts des astuces techniques, de nouveaux sites de ressources et fait quelques rencontres. J'ai en particulier pas mal échangé avec Julien Duroure (
http://julienduroure.com/fr/), un des mainteneurs du plugin glTF pour Blender, formateur et freelance sous Blender (entre autres). J'ai aussi beaucoup discuté avec Philippe Coval (
https://github.com/rzr et
http://rzr.online.fr/), qui fait du Internet of Things avec de la VR, le tout de façon KISS. Un gars passionnant qui réfléchit aux rapports entre les objets et leurs doubles numériques, la façon on pourrait designer en partant de fonctionnalités en 3D virtuelle... Bref, quelqu'un avec qui on peut se perdre à discuter pendant des heures. On a aussi essayé de faire marcher un Vive sur mon petit portable, sans succès
Ça a bien nourri ma réflexion personnelle sur la façon d'aborder notre interaction avec le monde de Khanat et les façons dont on pourrait jouer avec le quatrième mur. Jonathan Perrinet (
https://dokat.fr) était aussi très intéressant (conférence sur Godot et Réalité Augmentée), mais j'ai moins eu l'occasion de parler avec lui, si ce n'est pour l'inciter à partager un bout de code qu'il avait fait sur GitHub. Il estimait que ce n'était pas grand chose, ni très adaptable, mais ça pourrait être utile (c'est pour brancher des caméras et des Arduino sur Godot, à compléter sur
https://github.com/dokat/godot_ar ).
En dehors des éléments de compréhension assez globaux pour mettre en place notre chaîne de production d'assets (je comprends un peu mieux comment Godot fonctionne, de façon générale), il y a quelques points très importants que j'aimerais évoquer avec vous en priorité. Pour le reste, cela viendra au fur et à mesure lors de mes propositions de mise en place du pipeline. Il faut que les choses maturent, même si j'aurais besoin de prendre un peu de temps pour que ça prennent forme correctement sans trop tarder.
Tout d'abord, je pense finalement qu'on devrait utiliser glTF comme format d'import dans Godot/export depuis Blender. Julien Duroure me l'a bien vendu, et il m'a aussi expliqué qu'ils étaient en recherche de cas d'usage qui ne fonctionnent pas pour améliorer le plugin Blender (
https://github.com/KhronosGroup/glTF-Blender-IO). Lui se consacre surtout à la partie import, mais il suit le reste de toute façon. De toute façon, je pense préférable de s'appuyer sur un standard mis en place par des gens sérieux comme le Khronos group que sur un plugin tenu par un seul gars, même de bonne volonté. C'est un gage de pérennité. En outre, le plugin d'export est désormais dans le Core de Blender (ce n'est plus un addon), donc il sera bien suivi de ce côté. Et au niveau de Godot, Juan Linietsky semble convaincu aussi (
https://godotengine.org/article/we-should-all-use-gltf-20-export-3d-assets-game-engines), gage d'intégration future là aussi. Je vais donc reprendre mes tests avec glTF. Les soucis semblent surtout concerner les animations, surtout quand on a des Bones de controle en plus de ceux de déformation. Pour l'avenir et l'arrivée de Eveything nodes dans Blender (le boulot de Jacques Lucke :
https://blenderartists.org/t/everything-nodes/1116074), j'ai demandé à Julien s'ils envisageait qu'on puisse exporter les animations nées de Animation Nodes (procédurales et nodales, basées sur des drivers, super versatile et puissant pour du mécanique/industriel), on a fait un test, et ça ne marche pas pour l'instant. Mais il m'a dit que ça pourrait les intéresser. Ce serait un gros plus pour plein de petites animations simples. De façon générale, si j'ai bien compris, glTF accepte les extensions internes, il est modulable (en fait il est constitué d'un json, entre autres). Il suffit juste que les infos soient bien enregistrées lors de l'export depuis Blender puis bien lues lors de l'import chez Godot. En faisant nos essais, il a ainsi (re)découvert que même si on n'exporte pas les matériaux depuis Blender (si on les a déjà dans Godot par exemple), il crée malgré tout les slots et les affecte aux bonnes zones du mesh. Ce qui est bien cool
J'ai aussi beaucoup discuté avec Julien et une autre personne (dont j'ai oublié le nom) à propos de rigging et d'animation. Et j'ai découvert qu'on avait un énorme manque de ce point de vue. Personnellement je n'ai jamais vraiment fait ce genre de truc si ce n'est pour découvrir/apprendre, et ça va être crucial assez vite. Julien m'a montré quelques trucs et astuces, mais de toute façon, ça prend énormément de temps. Je pensais que j'étais particulièrement mauvais, mais ce n'est pas que ça. Lui, pour faire un rigging professionnel d'un dinosaure pour un Musée, a eu besoin de une semaine ETP pour faire le squelette de déformation, appliquer le weight painting, créer les bones de contrôle (il n'y avait pas d'interface de commande, qui serait venue en plus). C'est extrêmement chronophage. À garder en tête, car c'est préalable à toute animation. Et ce n'est pas automatisable. Par contre, ça m'a convaincu de bosser sur un workflow simplifié comme je le prévoyais, en évitant au maximum les sculpts HD puis retopologie et bake sur Lowpoly, dépliage d'UV etc. D'autant que j'ai appris aussi que les Decals sont prévus pour la 3.2 de Godot, qui arrive « SOON »
(
https://github.com/godotengine/godot/issues/21185) Donc je pense continuer à comprendre/tester cette technique de medium poly modeling, inspirée de Alien Isolation et Star Citizen, au moins pour tout ce qui est hard-surface.
J'ai aussi mieux compris la façon dont le scripting, les addons et les scènes fonctionnaient dans Godot et je vais essayer de faire en sorte qu'on ait le maximum de choses qui soient modulables depuis Godot directement. Je l'avais expliqué à quelques-uns, dans OpenNeL, pour avoir une caisse dans diférents états, il me fallait modéliser tous les états et exporter chacun comme un modèle (ou bien l'animer dans Blender et exporter etc.). J'ai commencé à déporter dans Godot, avec mon test de coffre, composé d'une cuve et d'un couvercle. Ce sont deux éléments recombinés dans une scène Godot, et osquallo a pu mettre un petit script et des paramètres pour qu'on puisse varier l'ouverture. J'ai aussi conçu le shading pour qu'on puisse moduler certaines couleurs directement dans Godot. L'idée est de pousser ce concept au maximum, de façon à ce que le Level Design ait le maximum d'options par la suite, sans devoir en appeler à un modeleur dès qu'il y a besoin d'un objet quelconque. On aura un catalogue d'assets beaucoup plus versatile. Et sans que cela ne donne forcément plus de boulot, voire moins qu'avec OpenNeL. Il faut juste passer du temps en amont pour comprendre les objets et voir ce qui peut être modularisé et laissé en charge à Godot. Là, c'est de discuter avec Philippe Coval qui m'a fait avancer sur ce point, clairement.
Vite fait en passant, il y a un petit outil qu'il serait bon d'aller voir, c'est Godot Git Control, afin de suivre correctement le projet. Ça va vite devenir indispensable qu'on soit un peu carré sur la gestion du projet. C'est un plugin Godot qu'on m'a indiqué pendant le WE, mais je n'ai pas encore réussi à le faire marcher :
https://godotengine.org/asset-library/asset/36 La personne qui me l'a indiqué le connaissait mais ne l'utilisait pas. (j'ai fait une Issue sur mon souci :
https://github.com/funabab/godot-git-control/issues/13 )
j'ai aussi redécouvert ArUco, une bibliothèque de symboles servant à la réalité augmentée :
https://www.uco.es/investiga/grupos/ava/node/26 Je me suis rappelé qu'on pourrait jouer avec ces symboles, je ne sais plus si on en avait parlé.
On m'a aussi fait découvrir ShaderToy (
https://www.shadertoy.com/), un super site où les gens déposent des codes de shaders. Donc parfait pour apprendre à faire des shaders, prendre des inspirations etc. Je me suis dit que ça pourrait plaire à osquallo (ou d'autres
)
Et, pour finir, c'était aussi l'occasion de pas mal causer avec Stan' : de 0AD, de Blender, de modelling et de texturing, et c'était bien agréable de se voir plus que vite fait entre deux stands.
En conclusion, le Grafik labor, c'était bon, mangez-en \o/