Créer un terrain pour le client Godot
Mise en place d’un premier terrain pour le client de test solo sous Godot (Milestone 0.1)
Création du terrain grâce au plugin de Zylann Heightmap terrain. Ce plugin est très intéressant pour prototyper, mais il est particulièrement lent car écrit en GDSCript (ce vidéaste en estime la consommation à près de 100FPS pour son prototype de jeu). Il ne sera donc pas la solution pérenne sous sa forme actuelle.
Il s’agit d’un générateur de terrain avec une gestion intégrée du Level Of Detail (et des outils de modélisation) qui se base sur une Heightmap et une SplatMap. Il est donc impossible de faire des surplombs ou de creuser des cavernes directement. Il intègre néanmoins un outil permettant de faire un trou dans le terrain, où l’on pourra placer un autre modèle représentant une éventuelle caverne.
Il a écrit une documentation détaillée.
Les dalles possibles font des tailles par défaut : 513, 1025, 2049 ou 4097 qui correspondent respectivement à 512, 1024, 2048 et 4096 unités au carré(donc mètres). Vu qu’on va utiliser son Shader optimisé (que Zylann appelle le classic4) avec 4 matériaux, je pense qu’il est mieux de partir sur de petites zones, qu’on assemblera. La question demeure de savoir comment on assemblera les plaques les unes à côté des autres, la génération se faisant à l’aide de Heightmap.
Par défaut, les textures sont appliquées avec une densité de 512 pixels pour 10m. Afin de conserver la densité de texel de 1024 pixels au mètre, il faut jouer sur le rapport entre la taille de la plaque et la densité d’UV :
- soit changer le Map Scale à 0,05 en X, Y et Z, ce qui a pour effet de changer la taille de la dalle (de la diviser par 20 en longueur, largeur et hauteur) ;
- soit changer le U Ground Uv Scale, de 10 à 0,5. Ce qui a pour effet de densifier les UVs sans changer la taille de la dalle : méthode retenue.
Les textures générées
Pour pouvoir être utilisées par le terrain, les textures doivent être réparties comme suit :
- un fichier avec l’Albedo (RGB) plus le Bump/Height en Alpha ;
- un fichier avec la NormalMap (RGB) plus la Roughness en Alpha.
Le premier batch est prévu avec des textures de 1024px, comme suit :
- dallage irrégulier de pierres ;
- sol de pierres moussues ;
- sol rocheux ;
- mur rocheux.
Mise en place d’un Open World sous Godot (Milestone ?)
Thowsen Media a commencé à développer un outil pour Godot qui permet de générer un terrain de très grande taille pour un Open World : WorldShaper. Ce pourrait être intéressant de le contacter s’il continue le développement et que le besoin s’en fait sentir.