Forum Fangame

Bug Catcher

Posté à 00h58 le 04/05/20

Merci pour vos encouragements ! Fini le fun, on rentre dans le tas !

Lorsqu'on crée un jeu, il faut se décider entre deux logiciels qui serviront de moteur de jeu : Unity ou Unreal Engine 4 (abrégé UE4).
Je choisis Unreal, c'est bien plus "artist-friendly".
Dans ce UE4, on importe tous nos fichiers externes (notamment les modèles 3D, les textures 2D, les sons...), et on créé une scène avec tout ça.

Exemple d'une scène par défaut de UE4


La première étape concrète pour l'environnement, c'est la topologie. Autant pour les bâtiments on peut se contenter d'un sol plat, autant pour des paysages extérieurs il faut des pentes et des montagnes. On pourrait modéliser le terrain "à la main" depuis le moteur de jeu. Mais en enviro, mieux vaut opter pour une méthode procédurale.
Procédural, c'est le mot à la mode dans le métier. Ça veut dire qu'à tout moment, on peut modifier notre œuvre sans avoir à tout recommencer. Imaginez que vous sculptez des montagnes qui forment un U, puis vous sculptez tous les petits détails sur vos montagnes (l'érosion par exemple), puis vous peignez tout en vert sauf les hauteurs en blanc. Cool, mais si finalement vous changez d'avis, et que vous voulez des montagnes qui forment un O ? Ça demanderait de sculpter d'autres montagnes, avec d'autres petits détails, et de repeindre les hauteurs en blanc... C'est une méthode destructive, car c'est difficile de revenir en arrière, de changer d'avis. Et en jeu-vidéo, on aime bien changer d'avis.

Je veux donc faire de la topologie procédurale. Càd à partir d'un simple carré plat (un plane), appliquer une suite de procédures (/de règles) qui vont le transformer en paysage. Ça, UE4 ne le fait pas encore. Il va falloir bosser sur un autre logiciel, spécialisé dedans : Instant Terra.

Avec seulement deux règles, on peut déjà obtenir un résultat cool.

Par contre, ça demande beaucoup plus de travail pour construire une grande suite de règles si on souhaite obtenir un résultat plus précis. C'est le problème du procédural : on passe énormément de temps dessus, plus que si on avait sculpter "à la main". Mais au bout du compte, on gagne du temps plus tard, quand on change d'avis et qu'on veut retoucher le terrain.

Mon terrain avec un nombre incalculable de règles.


Maintenant qu'on a ce terrain sur Instant Terra, reste à l'importer sur UE4.
Instant Terra exporte notre terrain sous la simple forme d'une simple image d'une vue aérienne en noir et blanc : une height map. Plus c'est haut, plus c'est blanc.

UE4 va ensuite interpréter cette height map, et reconstituera la montage au milieu.
On peut faire de même avec d'autres map, pas pour la hauteur, mais pour d'autres infos, comme le type de terrain.
Ainsi, plutôt que de peindre à la main les hauteurs en blanc, on peut importer une map qui dira à UE4 où mettre le terrain "neige".

Ici, je transmets une map qui précise où UE4 doit mettre des chemins de terre.


On importe plusieurs map en noir et blanc sur UE4, et le logiciel interprète ça pour en faire un paysage en 3D, comme la prévisualisation d'Instant Terra.

Voilà, dîtes-moi si c'est trop technique pour vous. Surtout la dernière partie où j'explique l'importation de map, c'est ptet pas nécessaire. Est-ce que vous connaissez un peu Unity ou UE4, ou tout ça est vraiment nouveau pour vous ?

Posté à 12h37 le 05/05/20

Salut ! Je connais Unity de très loin parce que j'en ai eu besoin pour mon projet de SI, mais c'est tout. C'est super intéressant, et présenté de manière très claire.

Je me posais une question : pour la génération procédurale, tu as dû faire une sorte d'algorithme du coup ? Si oui, est-ce que tu peux en décrire le fonctionnement général ? Je trouve la génération d'environnements super intéressant, et j'aimerais bien en savoir plus !

Posté à 23h35 le 05/05/20


Cette vidéo tuto montre les bases du logiciel. C'est le meilleur moyen pour toi de visualiser comment ça fonctionne.
Le logiciel a toute une bibliothèque de "nodes", chaque node étant une procédure plus ou moins complexe.
Le node de base, c'est "noise". Ca génère juste une map 2d aléatoire comme celle-ci :

Et à partir de là tu peux gérer avec un node la hauteur des zones blanches et des zones noires (pour dire que lorsque c'est blanc, le terrain a une élévation de 120m par exemple, et quand c'est noir, c'est 0).
Puis gérer les courbes d'élévation avec un autre node, pour faire des pentes rugueuse et non-uniformes.
Ou au contraire utiliser un node "smooth" pour adoucir le terrain, le rendre moins abrupt.
Tu as ensuite des nodes "magiques" beaucoup plus balèzes, qui génèrent automatiquement de l'érosion par exemple.

Ce sont des nodes qui appliquent des algorithmes automatiquement à une map qui à la base n'est qu'un noise en 2D, et le logiciel interprète le résultat de cette map 2D transformée par les algo pour offrir une visualisation en 3D. C'est le même principe que j'expliquais pour l'exportation vers UE4 !

Au final ça n'a rien d'artistique, c'est vraiment un travail de logique, un peu comme la programmation mais en facilité puisqu'on te propose des nodes pour te mâcher le travail, plutôt qu'écrire du code. Je parle d'Instant Terra, qui est issu d'une startup montpelliéraine, mais il y a d'autres logiciels étrangers plus connus comme World Machine.

Connexion

Inscription

Forum