Changer une couleur dans une texture dans Unreal Engine

Dans un article précédent j’avais expliqué comment changer la couleur d’une image PNG avec du code C++. Dans celui-ci je voulais montrer mon design spaghetti pour le faire dans Unreal Engine.

Mon but premier est de pouvoir changer la couleur de peau de mes personnages le plus facilement possible. J’ai donc décidé d’avoir un matériel avec un paramètre qui me permettrait de sélectionner la couleur désirée. Pour permettre cela, j’ai modifié la texture originale pour mettre du magenta (FF00FF) où il y aura la couleur à modifier. Voici une capture d’écran du résultat dans Unreal Engine:

On peut observer dans le milieu en bas complètement qu’il y a un paramètre qui permet de choisir la couleur désirée. Ce n’est pas obligatoire mais j’ai gardé la possibilité d’utiliser la texture originale avec un paramètre nommé Enable.

En général, ce que je voulais montrer, c’est la complexité d’utiliser un langage de script visuel. Peut-être que c’est juste à cause de mon expérience dans d’autre langage de programmation, mais la façon d’extraire les composants RGB d’une image nécessite un paquet de boite et de connexion.

Le plus important c’est le résultat final, alors le voici.

Personnage avec une couleur de peau personnalisé

MagicaVoxel

Dans mon dernier article, j’avais parlé de MagicaCSG, un logiciel dont ma fille avait maitrisé les bases assez rapidement. Cette fois-ci, ce sera le tour de MagicaVoxel, un autre logiciel gratuit de ephtracy. Il est disponible pour macOS et Windows et permet de concevoir assez facilement des modèles 3D en voxel. L’idée est simple: on utilise des cubes de couleur pour bâtir un objet 3D complexe.

Mon garçon de 13 ans qui s’initie à la conception de jeux vidéo a poussé l’exercice plus loin que de bonnement faire un mesh texturé dans MagicaVoxel. Il voulait l’animer et l’importer dans l’engin de jeu Unreal. Pour faire l’ossature et l’animation, il s’est servi de Mixamo. Pour y utiliser son modèle 3D, il l’a d’abord exporté en format obj à partir de MagicaVoxel. Ceci va générer trois fichiers (.obj, .mtl et .png) qui devront être compressés en un seul fichier de format zip. C’est ce fichier qui sera importé dans Mixamo. Une fois les différents points sélectionnés sur le modèle pour définir le squelette, il faudra simplement choisir une animation et la télécharger.

Personnage dans Mixamo
Personnage dans Mixamo

Le fichier fbx téléchargé devra être importé dans Unreal Engine. Si tout fonctionne bien, ceci devrait créer le squelette, le mesh, la texture, le matériel, l’animation et les autres items nécessaires à l’engin de jeu.

Je vous laisse avec un gif du personnage animé dans Unreal Engine. Considérant qu’il s’agit du premier modèle 3D animé entièrement conçu par mon fils, je trouve le résultat assez bien réussi.

Personnage qui court sur place dans Unreal
Personnage qui court sur place dans un niveau de Unreal