UE4 et MagicaVoxel: un duo sympathique pour faire des jeux 3D au look “8 bits”

Vous avez envie de créer simplement des personnages et des univers entiers sans forcément connaitre la modélisation 3d ? Il existe un petit outil fort sympathique et gratuit permettant de créer des objets en voxels, c’est à dire en empilant une série de blocs comme des légos. En fait, c’est même beaucoup plus simple. Pour les aficionados de l’époque “Deluxe paint”, je dirais que c’est le Deluxe paint de la 3D ! Bref, l’éditeur d’objets, bien que minimaliste, est assez bien fourni.

Cet article m’a été inspiré d’une vidéo de Jean Meli (dit “Meletou”) que je remercie au passage et dont je mettrai la vidéo de présentation en fin d’article.

Tout d’abord, vous pouvez télécharger l’outil sur le site officiel. Il existe une version pour Windows et une pour Mac. A l’heure où j’écris ces lignes, il s’agit de la version 0.99a du 23 Novembre dernier. A priori, on approche de la v1, donc l’auteur semble estimer que l’outil est aujourd’hui suffisamment mur pour être utilisé en production. Il faut noter que l’éditeur est aussi accompagné d’un World Editor, c’est un autre outil qui peut travailler avec plusieurs objets et créer des scènes complètes. Je ne vous en parle pas ici car nous allons utiliser Unreal Engine, donc c’est superflu dans notre cas. Toutefois, cela peut -être pratique pour créer la maquette d’un univers. Je ne peux vous garantir qu’on sera capable d’importer la scène directement, sans un peu de code. Mais ce n’est pas le sujet de l’article.

Je n’ai pas pris la peine de créer moi-même un objet, mais j’ai pu voir une vidéo qui montrait que c’était vraiment très simple et que les raccourcis clavier son très pratique. On peut travailler avec des lignes, des cercles, des surfaces 3D (cube/Sphère), etc. Mais la ligne et la brique (cube 1 unité) est déjà suffisante pour faire un tas de choses. Voici un personnage réalisé avec l’éditeur qui est disponible dans les exemples:

magicav1

Travailler avec des voxels, ça donne un petit look “Minecraft“, c’est normal 😉 Bon, il faut savoir que l’outil travaille en effet avec des blocs, mais qu’il peut aussi exporter sous forme de Trimesh, c’est à dire un objet composé de “triangles”. Et cela, de façon relativement optimisée. En effet, un bloc fait 6 faces quadri – donc 12 faces triangulaires), on pourrait penser que 2 blocs collés font 24 faces triangulaires. Heureusement, il y a une forme de fusion et on ne travaille pas avec des blocs, mais bel et bien des objets “optimisés” trimesh. Au début, en chargeant l’objet exporté (format Wavefront .obj) sous Blender, j’ai cru qu’on pouvait encore simplifier un peu, mais je n’en suis plus si sûr. Voici une importation sous Blender:

magicav2

Sous Blender, les couleurs sont bien importées. En fait, MagicaVoxel exporte le fichier .obj accompagné d’un material bien formé, c’est à dire un fichier “.MTL” et sa texture accompagnante. D’ailleurs, l’UVMapping et la taille du fichier de texture est assez optimisé également:

magicav3

Il s’agit juste d’une ligne avec les différentes couleurs (256×1). Une fois importé sous UE4, cela donne ça:

magicav4

Le mesh de collision est aussi bien importé:

magicav5

Bon, alors, quoi faire de tout cela ? De jolis décors au look 8 bits… mais coté animations, on fait quoi ? A ma connaissance, l’outil ne permet pas de créer des animations, ou alors, il faudra le faire image par image en changeant le modèle. Une autre solution consiste à ajouter un skeleton via un logiciel de modélisation et de générer le Weight Paint pour associer le trimesh à ce skeleton. De fait, quand on importera le mesh, on le fera en mode skeletal mesh. Cela demande un peu de travail, mais comme pour animer n’importe quel personnage qui a été modélisé au final. Jean me signale également dans les commentaires qu’on peut utiliser Mixamo (voir ci-après dans les commentaires).

Bon, vous vous attendiez à ce que je vous explique comment creuser le sol par exemple ? N’oubliez pas que pour UE4, l’objet reste un trimesh. Si vous importez un château, vous ne pourrez pas le désassembler brique par brique, car en mémoire, ce n’est plus un voxel. Toutefois, l’outil permet également d’exporter en format voxel. La description du fichier est ici. Il reste que si vous voulez vraiment travailler en voxel, il vous faudra ici réaliser votre propre “constructeur” d’objet 3D. C’est possible, ce n’est pas si compliqué, mais il en faudra beaucoup plus pour faire quelque chose qui ressemble à atomontage c’est clair !

Bref, c’est pour jouer, faire des petits jeux sympas, cela ne vous fera pas entrer dans la dimension du véritable voxel sous UE4. D’ailleurs, si on peut le faire en faisant preuve d’ingéniosité et en développant des modules particuliers, il ne faut pas oublier qu’à la base UE4 est prévu pour faire de la rasterisation. Aujourd’hui, on triche avec des shaders et la possibilité de travailler les matériaux d’une façon assez particulière, mais toute la gestion de la physique est alors inadaptée. Et les optimisations difficiles… Et même nos cartes graphiques sont optimisées pour la rasterisation. Peut-être qu’un jour on verra des cartes 3D voxels apparaitre en destination du grand public. Ce sera une sorte de retour en arrière, mais profitable puisqu’on pourra aller au delà de ce qu’on fait aujourd’hui, en profitant de “la matière”, c’est à dire de l’intérieur des objets.

Dans tous les cas, que vous souhaitez utiliser MagicaVoxel ou non, c’est un petit soft à connaitre. Je vous laisse avec cette vidéo de présentation de Jean et vous dis à très bientôt:

Edit au 19/01/2018:

4 réflexions sur « UE4 et MagicaVoxel: un duo sympathique pour faire des jeux 3D au look “8 bits” »

Laisser un commentaire