Dernière mise à jour, : 11/11/2008 à 21h47

Current Project : NO FUCKING IDEA §

Le Terrain sous Unrealed

Quelque chose de très agréable dans les jeux les plus récents est de pouvoir se balader en exterieur dans de grands terrains herbeux, sous un soleil radieux et de se faufiler entre les arbres, le tout entouré de bruits d'oiseaux, dans un magnifique couché de soleil, où au contraire d'être dans une plaine ravagée, sous une pluie battante, arme à la main, dans une tranchée boueuse, en train de regarder les autres mourir héroïquement au combat. Malheureusement, ce n'est pas si simple avec les moteurs actuels, les terrains étant souvent un peu difficile à gérer.

Heureusement, c'est simple avec le Moteur Unreal, le terrain étant tout simple à gérer une fois que les principes de base sont assimilés. Le terrain sous Unrealed, est avant tout une texture en noir et blanc, représentant une vue de dessus du terrain, sur laquelle plus la valeur de gris est claire (et se rapproche du blanc), plus le point est élevé. Inversement, plus la valeur de gris est sombre (et se rapproche du noir), plus le point est bas. A partir de cette texture, le moteur créé une gigantesque pièce de géométrie formée de Quads. Un quad, dans ce contexe, est un ensemble de deux triangles formant un carré et donc une parcelle du terrain. Le terrain est ensuite divisé en secteurs, regroupant tous le même nombre de quads et nécessaires à l'optimisation : si un secteur n'est pas affiché, cela fait une grande partie du terrain qui n'est pas calculée et donc, cela optimise les performances. Inversement, dès qu'une minuscule partie d'un secteur est visible, tout le secteur est chargé, ce qui permet de rendre le tout plus fluide. Le mappeur s'occupe essentiellement de créer la texture en niveau de gris, que l'on appelle "HeightMap" (littéralement "carte des hauteurs), des textures qui sont appliqués sur le terrain, et de tous les éléments exterieurs.

Préparer

Le Terrain ne peut être placé que dans une zone particulière. De plus, pour avoir un terrain de dimensions respectables, ils est préférable de voir toujours GRAND !

Nous allons commencer par soustraire un cube de dimensions 8192*16384*16384 (donc deux fois plus large et long qu'il n'est haut). Une fois soustrait, vous vous rendrez compte que ces dimensions sont vraiment gigantesques, et que donc le terrain sera immense. Que Nenni ! Une fois tout paramétré et le terrain créé, cela semblera petit, ou du moins, pas si grand que cela.

Donc, votre cube est soustrait. Les parois de ce cube ne seront pas affichées en réalité, car vous utiliserez une Skybox (qui est un des prochain tutorial de la série). Il est donc conseillé d'appliquer une texure voyante et que vous ne confondrez pas avec une autre : elle existe et est créé spécialement pour cet usage : dans le package WM_texture, dans le groupd Editor, se trouve une texture nommé "sky" : toute bleu avec le mot "Sky" marqué en blanc dessus. Choisissez là et appliquez là sur toute les faces de votre cube. Je vous conseille d'aller dans les propriétés de vos surfaces et de l'agrandire 16 fois :

Cube Vide

Votre Cube est créé. Avant de pouvoir commencer à faire quoi que ce soit, nous allons devoir ajouter un actor particulier : allez dans l'actor browser, et dans l'arborescence, cherchez l'actor "zoneinfo" situé ici :

Zoneinfo dans l'actor browsze

Ajoutez le au milieu de votre cube. Ouvrez ses propriétés. Pour des questions pratiques, je ne saurais trop vous conseillez d'aller dans l'onglet Display, et dans le paramètre "drawscale", mettre "5" pour multiplier la taille de la zoneinfo et la rendre plus visible (car votre cube est énorme et vous risquez de la perdre.
Ensuite, dans l'onglet "zoneinfo", Changez "bterrainzone" à True (vrai). Votre cube est maintenant prèt a accueillir votre terrain.

L'Heightmap

L'Heightmap est l'élément le plus important de votre terrain, car C'EST votre terrain. Deux manières sont possible : vous pouvez la créer dans l'editeur à partir de rien, ou créer la texture depuis un logiciel de dessin quelconque (même Paint fait l'affaire), et l'importer. Nous allons voir la méthode "editeur", celle que vous utiliserez le plus souvent.

Création du terrain

La création du terrain se fait avec l'outil nommé "Terrain Editing Tool", il est représenté par des petites montagnes :

Terrain Editor Tool

Cliquez donc sur cet outil, une fenêtre s'ouvre :

Fenètre d'édition

C'est là que vous allez travailler pour le terrain. Notez que vous pouvez fermer cette fenètre simplement en cliquant sur l'outil "camera libre" dans la barre d'outil de gauche. Cliquez sur la petite page en bas à gauche de la fenètre pour créer une nouvelle Heightmap, et donc un nouveau Terrain :

Création d'un nouveau terrain

Une nouvelle fenêtre s'ouvre (oui beaucoup de fenêtre vont s'ouvrir pendant ce tutorial), dans laquelle nous allons spécifier les dimensions de l'Heightmap.

Fenètre de paramètres du nouveau terrain

La première ligne est "Package". Dans le champ de texte correspondant, entrez MyLevel. Faites attention à ne pas faire de Fautes : MyLevel est un package fantôme, qui s'intègre à votre map et évite d'avoir à créer et sauvegarder des packages exterieurs. Ne Sauvegardez Jamais le package mylevel, même si l'editeur vous le demande.
Dans la ligne group, entrez ce que vous voulez, ou laissez un blanc. Je mettrais "Terrainfo".
Dans la ligne "Name", entrez un nom pour votre Heightmap. Je vais l'appeller "Terrainmap1".
Les deux lignes en dessous, Xsize et Ysize sont très importantes : il s'agit de la taille de votre terrain. Mais attention ! Si il y a marqué "256", ce n'est pas que votre terrain fera 256 unités de cotés : les dimensions que vous entrerez ici sont le nombre de quad de long de votre terrain. Sachant qu'un Quad mesure 64 unités, vore terrain fait donc pour l'instant 256 quads de coté, il mesure en réalité 256*64=16384. Donc, laissez à 256. rappellez vous donc que quand vous ferez des terrains, la valeur que vous devrez inscrire dans ces deux cases est égale à la taille du cube que vous avez soustrait, divisés par 64. Cliquez maintenant sur "OK".

Plusieurs choses se passent : d'abord, un actor suplémentaire est apparu dans votre map, qui est identique au terrain editing tool : de petites montagnes dans un carré.
De plus, quelque chose est apparu dans la fenètre du terrain editing tool : votre Heightmap est trouvée et reconnue. A ce stade, vore terrain existe presque : pour le matérialiser, il faut assigner une texture au terrain. Là ca va devenir plus complexe.

Les Layers

Les Layers sont un système assez casse-pied à comprendre, mais qui est indispensable car il sert à ajouter les textures du terrain. Pour commencer, rebuildez votre carte et passez en mode wireframe :

Terrain Wireframe

Comme vous le voyez, votre terrain est là ! il existe, malheureusement, n'ayant pas de texture, il n'est pas visible et n'a pas d'existence physique : il existe en théorie, mais si vous placez un playerstart, vous verrez que vous passerez à travers. Pour le rendre solide, il faut ajouter un LAYER.

Dans le Terrain Editing Tool, allez dans l'onglet "Layer" :

Onglet Layer du Terrain Editor

Comme vous le voyez, aucune texture n'est assignée à votre terrain.
Pour remédier à cela, la première chose à faire est de choisir une texture que nous voulons appliquer. Nous allons commencer par une texture d'herbe tout ce qu'il y a de plus classique : choisissez-en une dans le package "ArboreaTerrain", et sélectionnez-là :

Texture choisie pour le terrain

Ensuite, dans le Terrain Editing Tool, dans l'ongle "Layer", cliquez sur la première case rouge marquée "UNDEFINED", puis sur le bouton "New". : Un nouvelle fenêtre s'ouvre :

Onglet de paramètres du layer

Nous allons devoir entrer plusieurs propriétés :

Les deux cases suivantes : Alpha Height et AlphaWidth sont des propriétés particulières. Sachez que vous devez TOUJOURS mettre les même valeurs que vous avez mis à la taille de votre Heightmap, soit ici, 256 et 256.

Ensuite, entre en jeu l'Alphafill. L'alphafill est une propriétée qui sert à déterminer le degré de transparence par défaut de votre texture. Quand vous ajoutez la PREMIERE texture de votre terrain, comme nous sommes en train de le faire, il faut IMPERATIVEMENT que cette texture soit blanche : cliquez donc sur le petit "+" à coé de Alphafill et entrez les valeurs suivantes : A=0, B=255, R=255 , G=255 :

Paramètrage du premier layer

Cliquez en suite sur "OK". Si vous aviez déja rebuildez, votre terrain apparait d'un coup ! Sinon, vous devrez rebuilder pour le voir apparaitre sous vos yeux ébahis :

Le terrain apparait après avoir reçu une texture

Il va falloir commencer à modeler le terrain avant d'aller plus loin, et c'est la partie la plus interessante, donc vous avez de la chance !

Mettre un terrain en forme

Pour mettre en forme votre arpent de terre, le Terrain Editing Tool vous propose toute une variétée de fonctions que nous allons explorer en détail.

Avant d'aller plus loin, dans le Terrain Editing Tool, cliquez sur l'onglet "Terrain" et sélectionnez votre Heightmap. En effet, certains outils ont des fonctions sur le terrain en lui-même, mais ont aussi des effets sur les textures, que nous étudierons plus tard, c'est le cas des outils "Painting", "Smoothing", "Noise" entre autre :

Selection de l'Heightmap sur laquelle nous allons travailler

Nous allons pouvoir commencer.

Vertex Editing : c'est l'outil sélectionné par défaut, et sans doute, le plus utile. Tout d'abord, quand vous placez vore souris sur le terrain, vous remarquerez que votre poineur a une forme bizarre : un point rouge et deux cercles jaunes placez autour : le point rouge signale le vertex centrale : c'est le centre de votre pinceau. Les deux cercles jaunes déterminent l'étendue de votre travail : ce qui est à l'interieur du premier cercle est fortement affecté par vos actes, ce qui est dans le deuxième cercle l'est moins, ce qui est hors des cercles n'est pas touché. Vous pouvez modifier la largeur des deux cercles avec les deux petites jauges "inner radius" et "outer radius" du terrain editing tool. Pour utiliser le vertex editing, cliquez sur votre terrain en ayant sélectionné l'outil dans la liste sur la gauche (dans le terrain editing tool) :

Selectiona vec le Vertex Editing Tool

Tous les vertices sous votre pinceau son sélectionnés. Ils ne sont pas tous de la même couleur : plus un vertex est clair, plus l'effet de vos actions sera fort. Plus il est fonçé, moins il sera affecté.
Rien qu'avec ce outil, il est possible de créer une grande partie du terrain : une fois que des vertices sont sélectionnés, vous pouvez les monter et les descendre en appuyant simultanément sur la touche "control" et les deux boutons de vore souris. Bougez ensuite votre souris vers l'avant ou l'arrière pour monter ou baisser le niveau de votre terrain :

Action sur le terrain du Vertex Editing

Maintenant que vous maitrisez cet outil, vous pouvez déjà modeler grossièrement votre terrain, et nous l'affineront après. Essayez de placer un creux pour un futur lac, des montagnes autour de votre map et bien sur quelques paliers à l'interieur pour faire varier les hauteur et rendre le tout plus réaliste et interessant.

Une fois que vous avez créé une partie de votre terrain à l'aide de cet outil, observez le résultat :

Un terrain plus que grossier est créé

Painting : Un autre outil pour modifier votre terrain est l'outil painting. Il est très puissant et c'est là son problème : il n'est pas du tout progressif. Aussi, il vous faudra ajuster le paramètre "Strenght", dans le terrain editing tool, qui détermine la force de votre pinceau. Pour l'outil Painting, n'hésitez pas à la réduire à moins de 50 % : 40% est un bon compromis.

Ensuite, placez votre pinceau sur votre terrain. Appuyez sur la touche "control" de votre clavier et bougez votre souris en gardant le boutton gauche enfonçé : le terrain au dessus duquel vous passez s'élève. Vous pouvez le baisser en répétant l'opération mais en utilisant le clic droit. Si le résultat est plus lisse que le vertex editing il est aussi plus difficilement controlable. Voici une autre partie de mon terrain après avoir utilisé l'outil painting :

Terrain grossier avec l'outil Painting

Bien que le résultat soit plus crédible, il subsiste un défaut majeur : tout est trop abrupte et le sol est parfaitement plat entre quelques petits monts. Bref, ce n'est pas REALISTE. Heureusement qu'il existe un outil très puissant pour remédier à cela.

Smoothing : Littéralement "lissage", le smoothing permet d'adoucir les reliefs escarpés des terrains et à rendre plus douces les pentes. De la même manière que l'outil painting, il est exessivement puissant, et il faudra ajuster le paramère "strenght" avec beaucoup de moderation.

La meilleure manière d'utiliser ce outil est de le passez d'abord rapidement sur les montagnes pour les rendre plus lisses, puis de passer lentement sur leurs flancs pour adoucir les pentes et les prolonger en grignotant le terrain plat, gagnant ainsi en relief et en réalisme. Une combinaison "modelage grossier avec le painting"+ smoothing donne rapidement des résultat agréables et réalistes :

Terrain smoothé

Le Terrain que nous avons commencé étant très étendu, ne vous forcez pas à modeler le Terrain en entier, une partie suffirat largement à tout ce que nous ferons.

Texturez un Terrain

Votre Terrain est entièrement recouvert de la texture que vous avez choisis au début. Or, l'herbe à 300m mètres de hauteur c'es peu crédible. Ouvrez le Terrain editing ool et cliquez sur l'onglet Layer. Logiquement, vous avez votre Texture et de nombreuses cases rouges "Undefined". Pour commencez, choisissez une texture de pierre dans le texture browser :

Texture de roche

Cliquez sur la première case rouge, puis sur le bouton "New"; Dans le petit pop-up qui s'ouvre, mettez le package mylevel, le même groupe que tout à l'heure, un nom comme "roche1", puis, dans Alphafill, mettez A à 255 e laissez R,G et B à 0, puis cliquez sur OK :

Un nouveau layer est créé

Assurez vous que votre nouveau Layer est bien sélecionné, puis choisissez l'outil Painting. Mettez le paramère Strenght à 100%, réduisez le Pinceau, puis, en maintenant la touche CTRL et le bouton gauche de la souris enfonçés, passez le pointeur sur vos montagnes :

Application de la texture de roche

Votre Layer se place déjà sur le terrain. Passez le pinceau sur toutes vos montagnes :

La texture de roche a été appliquée sur les montagnes

Le Résultat est déjà plus normal, mais il subsiste pas mal de défauts. Pour commencer, les textures son trop petites et leur répétition est très visible. Le résultat est très disgracieux. Pour régler le problème, choississez l'outil "Tex Scale", qui se trouve être le dernier de la liste. Une fois qu'il est sélecionné, vous pouvez étirer vore texture en maintenant la touche CTRL enfoncé ainsi qu'un des boutons de la sourie. Si vous procédez avec le bouton gauche, vous étirez la texture sur l'axe Y, et si vous le faites avec le bouton droit, vous le faies sur l'axe X. En à peine cinq secondes, vous obtenez un résultat bien plus satisfaisant :

Mise à l'échelle de la texture

Vous pouvez étirer aussi la texture de base qui est également très répétitive. Mais on ne peu pas s'arréter là : choisissez une texture entre roche et Herbe (la première du package Arborea par exemple), et dans l'ongle Layer, cliquez sur la troisième case (qui devrait être la première à être marquée "Undefined". Cliquez sur new, et mettez les mêmes paramètres que pour la texture précédente, mais en changeant le nom en Roche+herbe. Appliquez la texture à toutes les jonctions enre roche et herbe, puis étirez là raisonnablement :

Troisième texture de transition

Ca prend forme. pour Terminer, vous n'avez qu'à ajouter autant de Layers que vous en avez besoin. Dans mon cas, il fallait une texture pour le fond du lac et une pour le rivage, une pour faire un sentier de Terre et une pour assurer la transition avec l'herbe, et deux trois petites choses juste pour faire joli : voici le résultat de mes textures (N'hésitez pas à multiplier les layers juste pour décorer, ca sera même tant mieux).

Textures finies

Il y a encore au moins un ou deux défauts sur ce Terrain : D'abord les textures sont très bien mises, mais elles tranchent énormément les unes avec les autres, il faudrait que la transition entre chaque soit plus "douce".

Cela peu se faire avec l'outil "smoothing". SI vous sélectionnez un de vos layer au lieu de sélectionner vore Heightmap, l'outil n'adoucira pas les pentes mais rendra meilleures les transitions entre les différenes textures. Faites le successivement avec toutes vos textures, en passant le pinceau sur les transitions entre texture.

Smoothing de textures

Au final, on a un terrain plus "propre" dirons nous :

Les textures contrastent moins fortement

Maintenant que vous savez faire un terrain et le texturer, interressons nous à d'autres outils que nous n'avons pas encore utilisé : Flatten, et quelques autres :

Outils en vrac

Flatten : Régulièrement, vous ferez une montagne ou un gouffre et vous vous apercevrez qu'elle est ratée, ou mal placée ou juste que finalement, vous n'en avez pas besoin. Vous ne pourrez pas aplatir le terrain avec les outils que vous avez vu jusqu'ici, il restera forcement des creux et des bosses.

Vous pourrez résoudre le problème avec l'outil flatten. Sélectionnez-le et sélectionnez votre heightmap (si vous gardez un layer sélectionné, ça ne marchera pas) :

Flatten inefficace

L'outil flatten est simple : maintenez la touche controle et le bouton gauche de la souris enfoncé. Tout le terrain sur lequel vous passerez prendrz l'altitude du point d'où vous êtes parti :

Applatissage du terrain par le Flatten

Vous pouvez ainsi combler un gouffre ou aplatir une montagne.

Visibility : c'est un outil qui permet de supprimer des quads. Son intérèt peu sembler un peu limiter, mais en fait, il permettra de supprimer les quads invisibles de votre terrain (ceux qui sont derrière une montagne dèrrière laquelle on ne peut pas passer). De plus, il peut vous permettre de creuser des tunnels dans une montagne (en utilisant des brushes, vous pouvez faire un couloir à travers la montagne).

Pour l'utiliser, rien de plus simple : sélectionnez-le, réglez la taille de votre pinceau, maintenez control et le bouton droit de la souris enfoncés. En le passant sur votre terrain, vous supprimez les quads. Vous pouvez les remettre en procédant de la même façon, mais en utilisant le bouton gauche de la souris au lieu du droit.

Tex Rotate /Tex Pan. Ces deux outils, comme leur nom l'indique, permettent de faire tourner ou de décaler des textures. Comme d'habitude, control+ un des bouton de la souris pour les faire fonctionner. Sur mon terrain, cela sera utile car les textures du rivage et du fond du lac sont les même mis à part leur couleur, aussi leur similitude est très visible, en en pivotant une, cela passera mieux. Je ferais la même chose sur ma texture de roche :

Terrain Final

© Copyright Hellkeeper 2004-2008, All right reserved.

Valid XHTML 1.0 CSS 2.1