Code de changements d’armure fonctionnel

J’en ai bavé – bien plus qu’il n’était raisonnable – mais c’est fait : je suis à présent capable d’ajouter en temps réel un mesh animé à un personnage. Ce n’est pas parfait, j’ai ajouté un gant, que j’ai un peu trop agrandi pour englober toute la main, et les phalanges se sont éloignées l’une de l’autre, preuve que j’ai encore beaucoup à apprendre en matière de rigging, soit de création de squelette pour animer un modèle, mais ça marche et ce sera parfait si je ne change pas fondamentalement la taille des meshes.

La seule vidéo un peu potable que j’ai trouvée utilisait 3DS Max et non Blender, et en plus date de 5 ans, et toutes les autres que j’ai regardées partaient dans tous les sens. Une galère pas possible. Mais par déduction j’ai pu comprendre que le secret résidait dans la manière de gérer le fichier du modèle au format FBX.

1° Depuis Blender, sélectionner dans le modèle uniquement le root et le mesh, ignorer les éléments du Pose mode (Pose et root)
2° exporter au format FBX uniquement les types d’objets Armature et Mesh et cocher Limit to Selected Objects, appliquer un smoothing par face dans Geometry
3° Dans Unreal, importer selon l’armature UE4_Mannequin_Skeleton, n’importer ni textures ni matériaux, tout le reste peut rester en default.

Bon, tout ça, ce n’est rien, reste à modéliser et texturer toutes les pièces d’armure pour toutes les races, mais ça, c’est juste du travail.

Chercher l’information prend plus de temps que l’assimiler

La minimap est terminée, ainsi que la carte principale. C’est au stade de prototype, soit bien moche, mais fonctionnel.
Je m’attaque donc, avant l’inventaire, livre et barre de sorts et autres éléments d’interface, à un problème qui me taraude depuis longtemps : les armures.
Changer une pièce d’armure pour une autre est la base d’un jeu médiéval. C’est un processus extrêmement simple dans Unreal, pour autant qu’il soit possible de mettre la main sur l’information.
Des dizaines de vidéos circulent, pour un trouver une seule correcte j’y aurai passé une journée entière.
Là, je tiens un bout de laine qui semble mener à la pelote et je tire, je tire, je tire…

Un peu vert, quand même

J’en suis à la troisième vidéo de création de minimap, réalisée par Ryan Laley, qui a pourtant l’air de connaître son affaire, et je tombe sur des choses suspectes : placer un délai à l’initialisation d’un élément d’interface pour être sûr que son parent a bien été créé avant lui, opérer des calculs avec des valeurs fixes au lieu d’aller rechercher ces valeurs dans les objets concernés ou encore placer des opérations complexes dans le Tick d’un objet, soit la meilleure manière de saturer un CPU…

Le problème, c’est que je n’ai pas le choix. Epic avait publié un projet gratuit qui gérait toutes les opérations d’une minimap mais il ne comporte aucun commentaire – bonjour pour comprendre comment tous les petits bouts de blueprints s’articulent – et il est outdated. Donc, je dois bien me rabattre sur un tutoriel de la communauté ce qui me permet de comprendre, et donc apprendre, des concepts au fur et à mesure que je suis les vidéos. Seulement voilà, en un mot comme en cent, c’est de la merde.

Je dois donc faire exactement comme Ryan, sachant que je devrai rectifier ses erreurs une fois que j’aurai tout terminé.

J’ai commencé à programmer des ordinateurs en 1980 et, depuis, j’ai tellement rarement lu un code écrit selon les règles de l’art et correctement commenté, que j’en suis – depuis longtemps – arrivé à la conclusion que les informaticiens sont d’infects bricoleurs. Un peu comme les dentistes. Ou les avocats. Ou presque toutes les professions, en fait. Tu dois en essayer dix pour trouver un bon, ce qui est fâcheux en ce qui concerne les dentistes, et je sais de quoi je parle !

Ce qui me permet, plaisir non dissimulé, de rappeler que les musiciens, eux, n’ont pas droit au luxe de la médiocrité. Si ta note ne sort pas au bon moment ou n’est pas juste, tout le monde l’entend et tu passes pour un con, sans appel. Et ça aussi j’en parle en connaissance de cause. Si TooLs était encore dans le coin, il ne pourrait qu’approuver.

Ca peut paraître con

Mais je travaille sur la minimap.
Terminé le temps béni où Neverwinter Nights faisait tout le boulot, maintenant je dois tout faire moi-même !

Pour créer une minimap, je dois me farcir cinq tutoriels de trente minutes. Bon, évidemment, c’est de la minimap de course, où je pourrai afficher tout ce que je veux comme je le veux, mais c’est du boulot.
Un boulot qui chaque fois me fait progresser dans ma compréhension d’Unreal.

De toutes façons, j’ai le temps, je ne peux pas terminer la carte de Syrthe car j’attends la version 4.26 qui offre des possibilités de création de meshes directement dans l’éditeur sans passer par Blender. J’ai un peu testé sur la version preview 5 de la 4.26 mais j’avoue que je vais attendre un tutoriel un peu mieux construit que ce que j’ai vu jusqu’ici.

J’attends aussi la 4.26 pour des nouveautés très importantes telles que la division en grille des univers vastes – ce qui va je l’espère remplacer la world composition que je déteste – l’eau intégrée au moteur sans recourir à des matériaux externes – lacs, mers et rivières. Je vais aussi commencer à utiliser le plugin Megascan qui permet d’importer directement dans le moteur les objets Megascan, soit ce qu’on fait de mieux dans l’industrie en matière de modèles texturés par des pros en qualité photo-réaliste.

Ca bosse quoi, beaucoup trop lentement à mon goût, mais des choses avancent et, surtout, je n’ai pas encore tout balancé par la fenêtre.

Nouveau matériel

Nouvelle machine de développement montée et installée, avec nouvel écran 49″, qui change la vie en termes de productivité, me permettant d’avoir simultanément à l’écran Blender, Unreal et une page web, entre autres.

Pour la station de travail, j’ai vu large, processeur 24 threads, 32 Go de RAM, ne me reste qu’à recevoir la RTX3080 actuellement en rupture de stock.

Tout ce matériel devrait me permettre de travailler dans les meilleures conditions, je ferai l’inventaire des prochains développement d’Althea 5 dans les prochains jours.