L'éditeur de terrain de UnrealTournament2003

Écrit le 06/01/2004 par gko
Dernière mise à jour : 06/04/2006

Introduction

Tout d'abord, sachez que ce tutorial est un essai. J'ai voulu créer ce document pour aider ceux qui auraient un certain problème avec la langue shakespearienne. Car comme vous avez sans doute pu le constater, il y a bien des tutoriaux pour la création de terrain, mais la plupart sont en anglais. Le tutorial s'adresse donc avant tout aux mappers qui désirent créer un terrain pour ut 2003. Il est préférable d'être familiarisé avec l'éditeur et d'avoir des notions en mapping avant de vouloir créer un terrain. Ce tutorial n'expliquera pas par exemple, comment sélectionner une texture ou rechercher un actor.

Ce n'est pas non plus un simple tutorial qui explique en deux pages comment vite faire un petit terrain, mais plutôt un document qui vous permettra de vraiment comprendre comment fonctionne l'éditeur, afin que vous puissiez faire des paysages un peu plus élaboré qu'un champ avec une colline. Donc forcément, il va falloir être patient si vous voulez tout lire... ;) Les premières parties expliqueront le fonctionnement de l'éditeur, et la dernière (Mise en application) est un tutorial détaillant la création d'un terrain de A à Z. Bonne lecture !

N'hésitez surtout pas à m'envoyer des mails pour me poser vos questions, ou pour me dire ce qu'il manque, ce qui est bien et ce qui n'est pas bien dans le tutorial. romain_verdier@hotmail.com

Principe de fonctionnement

Le terrain dans Unreal 2003 est un actor qui génère un relief solide sous forme de " feuille ". Il supporte plusieurs couches de textures et nécessite de se trouver dans une zone vide pouvant le contenir. L'éditeur permet également de peupler ce terrain avec des statics meshes figurant le plus souvent la végétation.

Il vaut mieux, je pense, bien comprendre le principe de fonctionnement de l'éditeur avant de se lancer dans la création.

La création du terrain comporte 3 étapes :

1. La génération du relief à l'aide d'une texture en niveau de gris 8 bits
2. Le texturing du terrain, à l'aide de superposition de couches
3. La végétation du terrain. (facultatif)

Relief

Le relief du terrain est calculé à partir d'une texture en niveau de gris 8 bits. Cette texture est appelée heightmap. Sous UnrealEd (ued), le format de cette texture est codé [P8]. Le blanc va représenter l'altitude la plus haute, le noir, la plus basse. On va créer cette texture en général avec un logiciel de type Photoshop, puis l'importer dans le package myLevel de la carte sur laquelle on travaille, et enfin indiquer à l'acteur TerrainInfo que cela doit être l'heightmap.

Texturing

Le système utilisé pour le texturing du terrain repose sur la notion de couches. Une couche, ou layer, permet d'appliquer une texture sur le terrain. En superposant différents layers, il est donc possible d'appliquer plusieurs textures sur le même terrain.

Chaque layer est composé de la texture qu'il doit appliquer sur le terrain (herbe, rochers, neige... ) et d'une autre texture, appelée alphamap, qui va permettre de contrôler la superposition des couches.

Cette alphamap est une texture en RGBA8 qui possède une couche alpha. Sans rentrer dans les détails, cette texture est en niveau de gris. Les zones foncées de l'alphamap indiquent que la texture du terrain sera transparente (les couches inférieures seront visibles). Les zones claires indiquent que la texture du terrain sera visible (les couches inférieures seront masquées).

Il faut donc un premier layer0, qui contiendra la texture de base du terrain et une alphamap unie. Si l'on veut rajouter une texture sur le terrain, il faut créer un autre layer (layer1) pour cette texture, avec une nouvelle alphamap. Et ainsi de suite, jusqu'à ce que l'on ai texturé le terrain avec autant de texture que l'on veut. (31 layers disponible en plus du layer0).

Un exemple permet de comprendre (beaucoup) plus facilement :)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img1.jpg

Figure 1 : Les AlphaMaps des layers utilisés pour le texturing du terrain.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img2.jpg

Figure 2 : Le texturing obtenu sur le terrain, sachant que la texture de rochers est associée au layer0 de base, et la texture d'herbe au layer1.

Végétation

Bien que cette étape ne soit pas obligatoire, elle devient nécessaire si l'on veut mettre de la végétation sur son terrain. Il y aurait bien moyen de poser chaque static mesh de touffe d'herbe un par un puis de changer toutes les propriétés de collisions de ceux-ci, mais même les plus courageux d'entre vous oublieront vite, surtout sur un grand terrain. De plus, cela poserait des problèmes en terme de performance, comme nous le verrons plus tard.

Le principe ? Vous risquez d'être surpris, mais la aussi, il faut utiliser des layers avec des textures alpha. La plus importante est la DensityMap. Pour chaque layer, on associe un static mesh (arbre, touffe d'herbe, buisson... ) et une DensityMap. Les zones claires de la DensityMap indiquent qu'il va y avoir beaucoup de végétation et les zones sombres... vous avez deviné... où il en aura pas beaucoup (le noir indique qu'il n'y a pas de végétation).

Zone du terrain

Nous avons vu que le terrain doit être placé dans une zone vide. De plus cette zone doit accepter de contenir les terrains.

Avant de créer un terrain, il faut donc créer un brush assez grand pour contenir tout le terrain. Prévoir même un peu plus large. Ce brush doit être soustrait (substract) afin de former la zone du terrain. Mais pour définir cette zone comme étant une zone qui accepte les terrains, il va falloir placer un actor ZoneInfo dedans. Ensuite, il faut changer le paramètre bTerrainZone de Faux, à Vrai.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img3.jpg

Figure 3 : Mettre le booléen " bTerrainZone " à " Vrai " dans ZoneInfo.

Généralement, les faces du brush qui détermine la zone du terrain vont être définies en FakeBackdrop, afin de pouvoir faire un ciel au dessus du terrain. Je considère que vous connaissez le principe de la skybox. Néanmoins, je vous parlerais d'une nouvelle entité : la Sunlight, qui prendra place dans votre skybox pour fournir à votre terrain en extérieur un éclairage réaliste. Afin de pouvoir illustrer son utilisation, j'aborderais ce point dans la partie suivante.

Créer le terrain

Nous allons voir dans cette partie comment définir le relief du terrain, à l'aide d'une l'heightmap et comment donner une texture de base à ce terrain en définissant un premier layer. Nous verrons aussi rapidement comment utiliser une Sunlight pour éclairer le terrain.
Le terrain est en fait un actor. Cet actor se nomme TerrainInfo et il est disponible dans les actors Info. Il y a deux façons de créer un terrain dans Ued3.0. La première est la solution de facilité, qui est aussi la moins puissante. Elle fait appel à l'outil TerrainEditing pour paramétrer de façon transparente l'actor TerrainInfo. La seconde est celle que je préfère utiliser. Elle consiste à renseigner directement les propriétés de l'actor TerrainInfo.

Il est nécessaire que vous ayez défini une zone pour le terrain comme expliqué précédemment avant de créer le terrain

Avec l'outil TerrainEditing http://www.game-lab.com/images/tuts/ut2k3_terrain/img4.jpg.

Voyons d'abord la solution qui consiste à utiliser l'outil TerrainEditing :

=> Relief du terrain :

Il va falloir créer une heightmap pour définir le relief du terrain. L'outil TerrainEditing permet de créer cette texture directement. Cette fonctionnalité est disponible dans l'onglet Terrains de TerrainEditing.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img5.jpg

Figure 4 : L'icône entourée en rouge permet de créer une nouvelle heightmap, donc un nouveau terrain.

Cliquez sur l'icône représentant une feuille blanche, dans le coin inférieur gauche. Une fenêtre permet de sélectionner le package de texture dans lequel on veut sauvegarder son heightmap, et de déterminer la taille du terrain.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img6.jpg

Figure 5 : Enregistrez votre heightmap dans le package MyLevel, nommez votre heightmap "heightmap" pour plus de lisibilité. Donnez ensuite les dimensions de votre heightmap. 128*128 ou 256*256 sont un standard. Utilisez uniquement des puissances de 2, et X et Y de même valeur.

Appuyez sur OK, une texture en G16 est créée dans le package indiqué, avec le nom choisi. Et votre nouveau terrain (acteur TerrainInfo) va être créé et positionné au même endroit que la caméra dans la vue 3d.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img7.jpg

Figure 6 : On peut maintenant voir qu'une heightmap a été créée. En vous mettant en mode Wireframe dans la vue 3d, vous pouvez voir le terrain qui est tout plat. C'est normal, l'heightmap générée est uniformément grise.

=> Texture de base du terrain :

Il faut maintenant sélectionner une texture de base pour le terrain. Allez dans le texture browser, et choisissez une texture (herbe, rocher... ). Ensuite, revenez dans l'outil TerrainEditing, et affichez l'onglet Layers.

Sélectionnez le premier layer de la liste, qui est " undefined " comme les autres, et cliquez sur le bouton " new ".

http://www.game-lab.com/images/tuts/ut2k3_terrain/img8.jpg

Figure 7 : Donnez un nom à la texture, puis choisissez le package MyLevel. Choisissez l'échelle de la texture, en général, 16 ou 8 donne un bon résultat.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img9.jpg

Figure 8 : Un nouveau layer est créé... (En cliquant btn droit sur un layer, on obtient un menu qui permet de choisir rapidement une nouvelle texture alpha, une nouvelle texture pour le terrain ou d'afficher la grille)

Et ici, on se dit : " Bon, je recompile tout et j'ai mon beau terrain tout plat... ". Et vous avez raison, tout du moins en théorie. En pratique, il y a un problème au niveau de la texture alpha du layer. En effet, la texture RGBA8 a bien été créée, mais un de ses paramètres est mal initialisé ce qui empêche le terrain d'être visible, même après recompilation. Normalement, la texture devrait être une texture alpha, comme l'indique son nom, mais ici, il y a sûrement eu un petit oubli des développeurs. La texture n'est pas définie comme étant une texture alpha. Vous pouvez changer ça facilement dans les propriétés.

Allez dans le browser de textures, et dans le package myLevel (accessible par le menu déroulant) sélectionnez la texture du layer0. En suivant l'exemple de la figure 7, elle s'appelle texture_layer0.

Avec bouton droit>Properties vous ouvrez la fenêtre des propriétés de la texture. Dans Surface, mettez le booléen bAlphaTexture à vrai. La texture est donc à présent une alphamap valide, mais elle est totalement transparente. Il vous faut la rendre visible en utilisant l'outil painting (voir la partie sur les outils d'édition du terrain).

http://www.game-lab.com/images/tuts/ut2k3_terrain/img10.jpg

Figure 9 : Définir la texture du layer0 comme étant une texture alpha.

Apres un Build All, enfin, vous obtenez votre beau terrain tout plat. Ce terrain est bien entendu modifiable à l'aide des outils de modification du terrain. Allez voir la partie Outils d'édition du terrain pour voir comment faire.

Attention, comme je le disais précédemment cette méthode permet de rapidement faire un terrain en créant automatiquement l'heigtmap et les textures alpha nécessaires, mais elle est peu puissante. Notamment parce que le terrain créé n'est pas aux bonnes dimensions, qu'il est plat, qu'il faut donc le modifier avec les outils, et que pas mal d'options ne sont que disponibles dans l'actor TerrainInfo. C'est donc pour ça que l'on va voir à quoi ressemble cet actor.

L'actor TerrainInfo

L'autre façon de créer un terrain consiste à placer soit même et à paramétrer un actor TerrainInfo. Je vous recommande d'utiliser cette méthode, qui permet de vraiment faire le terrain que l'on veut. C'est une méthode différente de celle évoqué précédemment, donc si vous voulez l'utiliser, il va falloir créer une nouvelle map, avec une nouvelle zone pour le terrain.

Note : Tout ce qui va être dit dans cette partie là permettra aussi de comprendre comment configurer l'actor TerrainInfo qui est généré lorsque l'on utilise l'outil TerrainEditing (cf. partie précédente). En effet, dans ce cas, les paramètres sont rarement satisfaisants par defaut.

Commencez par placer l'actor TerrainInfo au centre de la zone que vous avez créée au préalable pour accueillir votre terrain.

=> Relief du terrain :

Ouvrez la fenêtre des propriétés du terrain (bouton droit>properties). Il va falloir choisir une heigtmap, puis paramétrer les dimensions du terrain.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img11.jpg

Figure 10 : Les propriétés du TerrainInfo. Il faut tout d'abord s'intéresser aux champs TerrainMap, et à TerrainScale

<> TerrainMap : C'est ici qu'il faut mettre votre heightmap. Celle-ci peut être créée par un logiciel de type photoshop. Il vous suffit de faire une image 128*128 ou 256*256 en niveau de gris, où le blanc représente l'altitude la plus haute, et le noir la plus basse, puis de l'enregistrer en .BMP. importez cette image dans le package MyLevel (sans cocher Generate Mipmap) et donnez lui un nom (ex : heightmap). Sélectionnez-la dans le browser, puis cliquez sur " utiliser ", dans les propriétés, pour la prendre comme TerrainMap. La méthode de photoshop permet de donner la forme de base à son terrain en utilisant les niveaux de gris. Il suffit ensuite de faire la finition avec les outils de modification du terrain (voir la partie Outils d'édition du terrain).

<>TerrainScale : Il y a 3 paramètres, X, Y et Z. Imaginez que vous vouliez un terrain aux dimensions : 10240*8192*4096. Les paramètres X, Y et Z sont liés à la taille de votre TerrainMap.

Si votre TerrainMap fait 128*128, il va falloir mettre X=80, Y=64 et Z=32. Pourquoi ? Car TerrainScale détermine l'échelle du terrain par rapport à la taille de l'heightmap (ou TerrainMap).

Ainsi, 10240/128=80, 8192/128=64 et 4096/128=32. De même, si votre TerrainMap a une taille de 256*256, il va falloir mettre X=40, Y=32, et Z=16 pour obtenir le même terrain.

Vous aurez sans doute besoins de modifier ces champs si vous avez utilisé le TerrainEditing tool pour créer votre heightmap. Les valeurs par défaut (64, 64, 64) sont généralement bien trop importantes.

<> Inverted : Par défaut, ce booléen est à faux, et indique donc que c'est la face supérieure du terrain qui est visible. Normal dans la plupart des cas. Néanmoins il est possible d'inverser le terrain pour que ce soit la face inférieure qui soit visible. Par exemple pour faire la voûte d'une caverne. Il suffit de mettre le booléen à vrai.

=> Texture de base du terrain :

La pose du premier layer de texture sur le terrain se fait grâce aux paramètres layers, toujours dans les propriétés du TerrainInfo.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img12.jpg

Figure 11 : Ouvrez layers, puis [0], vous avez ainsi accès aux propriétés du layer 0... lol

<> AlphaMap : Choisissez ici l'alphamap du layer. C'est une texture en niveau de gris avec canal alpha (RGBA8). Elle peut être créée sous photoshop. Choisissez une taille de 128*128 ou 256*256, et enregistrez-la en targa (.tga) 24 ou 32 bits. Importez la dans MyLevel en sélectionnant uniquement l'option " alpha ". Sélectionnez cette texture nouvellement importée dans le browser, puis cliquez sur utiliser (dans les propriétés du TerrainInfo, dans le champ alphamap) pour la définir en temps qu'alphamap du layer. Il sera possible de modifier cette alphamap avec les outils d'édition du terrain par la suite.

<> Texture : C'est là que vous devez indiquer le nom de la texture à appliquer sur le terrain.
Choisissez là dans le browser, puis cliquer sur le bouton utiliser du champ pour définir la texture du layer.

<> TextureMapAxis : Permet de choisir le mode d'alignement de la texture du layer.
TEXMAPAXIS_XY correspond à un alignement par rapport au plan (0,x,y). Cela correspond à un alignement par rapport au sol. De même, TEXMAPAXIS_XZ et TEXMAPAXIS_YZ correspondent respectivement à un alignement selon les murs parallèles aux plans (0,x,z) et (0,y,z). ces deux derniers choix sont à réserver par exemple aux textures des falaises.

<> TextureRotation : valeur de la rotation de la texture. Actualisée par l'outil TexRotate.

<> Upan : Décalage de la texture selon l'axe X. Actualisé par l'outil TexPan.

<> Uscale : Echelle de la texture suivant l'axe X.

<> Vpan : Décalage de la texture selon l'axe Y. Actualisé par l'outil TexPan.

<> Vscale : Echelle de la texture suivant l'axe Y.

L'actor Sunlight

Pour donner à votre terrain un éclairage réaliste, il vous faut une skybox et une sunlight. Pourquoi forcément une skybox ? Tout simplement parce que la sunlight est une light spéciale qui simule un éclairage en provenance du soleil, donc avec une portée infinie. Elle doit obligatoirement être placée dans la skybox.

C'est une light qui est orientable, donc lorsque vous la sélectionnez dans un des viewport, vous voyez une flèche rouge que vous pouvez dirigez dans la direction voulue en utilisant ctrl+btn gauche. Il suffit ensuite de régler les paramètres lightcolor de l'actor, vu que le lightradius ne sert a rien. Choisissez la couleur dans LightColor, puis réglez la luminosité (LightBrightness) en général trop élevée lorsque on choisi la couleur dans la palette.

Il est possible de mettre plusieurs sunlights dans une skybox.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img13.jpg

Figure 12 : Une sunlight dans la skybox permet de fournir un éclairage réaliste au terrain, avec un ombrage du relief crédible.

Distance Fog (brouillard)

Il est également possible de mettre un brouillard dans son terrain. Utilisez pour ça le distance fog. Ce n'est pas une caractéristique propre aux terrains, mais tout comme l'actor sunlight, cela peut incrémenter la qualité de votre environnement en extérieur. On trouve ça dans les propriétés de la zone qui accueille le terrain.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img14.jpg

Figure 13 : Après avoir mis dans les propriétés de la zone le booléen bDistanceFog à VRAI, vous pouvez modifier les propriétés du distance fog dans la rubrique ZoneLight de l'actor.

Les trois premiers paramètres vont servir à choisir la couleur du brouillard. Le mieux est de choisir la couleur en utilisant le champ DistanceFogColor, puis d'ajuster en réglant la luminosité (Ambient Brightness), la couleur (AmbientHue), et la saturation ( 0=couleur pure, 255=blanc) Vous pouvez par contre définir la distance à partir de laquelle il commencera à faire effet (DistanceFogStart). Au delà de la limite DistanceFogEnd, le brouillard est totalement opaque.

Textures du terrain

Là, ça va pas être très compliqué. Pourquoi ? Parce que nous avons en fait abordé tout ce que nous avions besoin de savoir, ou presque, dans la partie précédente. Il y a donc deux façons différentes de rajouter des layers de texture.

Pour chaque texture supplémentaire que vous voulez ajouter sur le terrain, il vous faut un nouveau layer. Chaque layer devra avoir sa propre alphamap. Il est préférable d'enregistrer toutes ces alpha textures dans le package MyLevel de votre carte, afin qu'ils soient sauvegardés en même temps que votre carte dans le fichier .ut2
Il y a deux façons de créer un layer.

La première consiste à utiliser l'outil TerrainEditing comme nous l'avons fait pour le layer0, dans la partie précédente. Sélectionnez un emplacement vide, puis cliquez sur " New ". Le reste de la démarche est identique à ce qui est expliqué dans la partie " créer le terrain ", au paragraphe : texture de base du terrain (figures 7 et 8). Mais cette méthode, je le répète encore une fois, est lourde et peu efficace, ne serait-ce que parce qu'il faut modifier les paramètres de chaque alphamap générée pour qu'elle fonctionne.

Utilisez plutôt la seconde méthode qui consiste à paramétrer directement l'actor TerrainInfo. Créez vos textures alpha avec Photoshop, comme je l'ai indiqué dans la partie " créer le terrain ", au paragraphe texture de base du terrain (figure 11), puis choisissez les pour les alphamaps de vos layers de texturing. J'utilise fréquemment une astuce qui consiste à copier une texture alpha existante, et à la modifier complètement avec les outils d'édition du terrain.

En fait, si vous avez bien compris le principe de hiérarchie des layers de textures, ça devrait aller. Cette hiérarchie est définie grâce aux textures alpha de chaque layers. Il faut absolument travailler layer par layer pour obtenir ce que l'on veut avec les outils d'édition du terrain sans trop se prendre la tête. J'explique : On peut être tenté de définir 5 layers (avec 5 alphamaps unies) car on veut 5 textures différentes sur le terrain, puis ensuite, vouloir les modifier avec l'outil painting, par exemple. Ce n'est pas la bonne solution. Vous risquez de batailler avec les alphamaps pour obtenir ce que vous voulez. Procédez plutôt en définissant un layer, avec une alphamap au bon format. Peut importe à quoi elle ressemble, vous allez la modifier avec les outils d'édition. Ici, une autre astuce consiste à rendre chaque nouvelle alphamap totalement transparente (avec l'outil painting) avant de commencer à la peindre. On voit ainsi le texturing du terrain, et on applique la nouvelle texture ou l'on veut sur le terrain en peignant avec les outils d'édition du terrain. Une fois que l'on a bien barbouillé le terrain avec la nouvelle texture, on peut définir un nouveau layer, avec une nouvelle alphamap et recommencer l'opération autant de fois que l'on veux. Mais pas plus de trente et une fois, sinon, y'a plus de place... Arf...

Végétation du terrain

Bon, là, on va voir deux trois trucs nouveaux. Enfin. Mais on reste toujours avec le principe des layers et des alphamaps...

Il ne faut surtout pas placer ses statics meshes à la main sur le terrain pour figurer la végétation. Cela impliquerait qu'il faille redéfinir les propriétés de collision pour chaque touffe d'herbe, et de plus, cela nuirait considérablement aux performances, car on ne peut pas toujours utiliser des antiportals dans des zones d'extérieur dégagées donc tous les statics serait calculés lors de l'affichage. Si vous ne comprenez pas trop cette phrase, ce n'est pas grave, passez à la suite. ;-)

En fait, en utilisant l'éditeur de terrain pour disposer sa végétation, les statics meshes ne seront visibles que dans un rayon défini autour du joueur. Donc, on gagne en performances, incontestablement. Attention quand même. Tout ça est relatif. La végétation reste très gourmande en ressources et un terrain avec une végétation dense risque de tuer votre framerate... A utiliser modérément.

On va voir encore une fois qu'il existe deux techniques différentes pour appliquer de la végétation sur un terrain. La première, consiste à utiliser l'outil terrain editing pour créer vos decolayers. Figure 14 : Dans l'outil Terrain Editing, allez sur l'onglet Decorations. Cliquez sur New, un nouveau decolayer est créé. En cliquant btn droit dessus, vous avez un menu qui vous permet de définir assez rapidement le static mesh de déco, et les alphamaps.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img15.jpg

<> Set Density Texture from Current : définit l'alphamap DensityTexture à partir de la texture sélectionnée dans le browser.

<> Set Color Texture from Current : définit l'alphamap ColorTexture à partir de la texture sélectionnée dans le browser.

<> Set Scale Texture from Current : définit l'alphamap ScaleTexture à partir de la texture sélectionnée dans le browser.

<> Set Static Mesh from Current : définit le static mesh de végétation associé au layer à partir de celui sélectionné dans le browser des statics.

<> Toggle Show On Terrain : change l'état du booléen ShowOnTerrain, dans l'actor TerrainInfo, et permet donc d'afficher la végétation sur le terrain, ou de l'effacer. Par defaut, cette valeur est à 0, donc la végétation est cachée.

Et là, vous vous dites avec un air complètement effaré : " Mais il n'a pas dis ce qu'est une DensityTexture ni une ColorTexture... etc... "

Oui, je ne l'ai pas dit, mais ça arrive. Il vous faut juste savoir que vous pouvez directement définir ces textures de cette façon.

Notez bien qu'il vous faudra obligatoirement aller modifier le rayon d'apparition de la végétation dans l'actor TerrainInfo, car sinon, rien ne sera visible sur le terrain.
Ca, c'est plutôt sympa comme transition, car justement, on va tout de suite parler de l'autre méthode qui consiste à paramétrer directement l'acteur terrain info et c'est encore celle que je vous conseille, car elle est plus puissante.

Regardons les propriétés à paramétrer :

http://www.game-lab.com/images/tuts/ut2k3_terrain/img16.jpg

Figure 15 : Ouvrez les propriétés de l'actor TerrainInfo, puis déployez l'arborescence TerrainInfo, tout en bas. Ouvrez ensuite DecoLayers, puis cliquez sur ajouter pour créer un nouveau DecoLayer. Principales propriétés :

<> StaticMesh : Choisissez un static mesh de végétation (arbre, herbe, buisson... ) ou bien n'importe quel autre static mesh (pierre, cadavre, détritus) dans le browser des statics meshes, puis cliquez sur " use " pour associer le static au decolayer.

<> DensityMap : La DensityMap est une texture en RGBA8 ou P8. Le blanc de cette texture indiquera les zones ou la végétation sera la plus dense, le noir la ou il n'y aura pas de végétation. Sélectionnez votre DensityMap dans le browser de texture, puis cliquez sur " use " pour l'associer au decolayer.

<> DensityMultiplier : Les deux valeurs vont multiplier le nombre de static générés par la DensityMap. Mettre des valeurs supérieures à 0.

<> ScaleMultiplier : Trois paramètres : X, Y, et Z ont ici chacun une valeur min. et une valeur max. Ces valeurs modifient l'échelle d'affichage des statics meshes générés, selon les 3 dimensions. Cela permet de donner un caractère plus naturel à la végétation car on peut ainsi avoir des touffes d'herbes de tailles aléatoires selon les valeurs min. et max. de l'échelle. <> MaxPerQuad : Bon, cette valeur détermine le nombre maximum de statics par " quad ", et je ne sais pas ce qu'est un quad :-p. Laissez une valeur supérieure à 0. Ce qui est certain c'est que la valeur va influer sur la densité max de la végétation.

<> FadeoutRadius : Permet de régler le fameux rayon dans lequel les statics meshes seront visibles. Plus précisément, il y a ici deux valeurs à définir, min et max. jusqu'à la distance indiquée dans min, tous les statics meshes seront visibles et opaques. Entre min et max, les statics meshes vont devenir de plus en plus transparent de façon à effectuer une transition correcte. Si min et max ont la même valeur, comme dans la figure 15, la coupure sera brutale, i.e. à partir de la distance min, il n'y aura plus de statics visibles. <> ShowOnTerrain : Ce booléen permet de définir si les statics vont être affichés sur le terrain ou non. Mettre 0 pour ne pas afficher la végétation, et 1 pour l'afficher.
Les options qui suivent ne sont pas indispensables, mais permettent un réglage plus fin des décorations du terrain.

<> AlignToTerrain : Encore un booléen. Mettez le à 1 et tous les statics seront alignés au terrain. Exemple : un arbre sur une pente à 45°. Si AlignToTerrain est à 0, alors l'arbre sera complètement vertical. Si au contraire le booléen est à 1, l'axe du tronc d'arbre sera perpendiculaire à la pente (l'arbre sera penché de 45°). Ca peut éviter quelques petits défauts...

Regardez les figures suivantes :

http://www.game-lab.com/images/tuts/ut2k3_terrain/img17.jpg

Figure 16 : AlignToTerrain = 0. On voit qu'une partie de la touffe d'herbe est en pure lévitation...

http://www.game-lab.com/images/tuts/ut2k3_terrain/img18.jpg

Figure 17 : AlignToTerrain=1. C'est maintenant rectifié, l'herbe colle bien au terrain.

<> ColorMap : Bien que je doute fort que vous ayez un jour à utiliser une telle texture, je vous indique rapidement comment ça marche.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img19.jpg

Figure 18 : Voila une ColorMap, crée sous photoshop et enregistrée en tga. Apres importation dans MyLevel, on la choisie comme ColorMap du decolayer en cliquant sur " use ".

http://www.game-lab.com/images/tuts/ut2k3_terrain/img20.jpg

Figure 19 : Voila ce que ça donne sur le terrain... C'est beau, hein ?

<> DrawOrder : Vous avez ici le choix entre trois valeurs prédéfinies qui vont déterminer l'ordre d'affichage des statics dans le rayon autour du joueur (FadeOutRadius). SORT_BackToFront indique que les statics vont s'afficher de la limite du cercle jusqu'à la caméra (joueur). SORT_FrontToBack va d'abord afficher les statics près du joueur et après ceux qui sont plus loin. Enfin SORT_NoSort indique qu'il n'y a pas d'ordre particulier.

<> ScaleMap : Un peu à la manière de la ColorMap cette texture ne trouvera sûrement pas un usage courant dans vos terrains. Voila le principe : une texture alpha va déterminer les dimensions des statics selon la couleur. L'échelle d'affichage des static va donc être modifiée selon X, Y et Z par la ScaleMap.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img21.jpg

Figure 20 : La ScaleMap. Les couleur de la texture vont déterminer l'échelle des statics selon X (Rouge), Y (Vert) et Z (Bleu).

http://www.game-lab.com/images/tuts/ut2k3_terrain/img22.jpg

Figure 21 : Il est plus facile de visualiser l'effet d'une ScaleMap dans le viewport TOP... Les " choses " blanches représentent les statics de décoration (ici de l'herbe), étirés selon X (en haut), selon Z (milieu) et selon Y (en bas).

Outils d'édition du terrain

J'ai souvent fait allusion aux outils d'édition du terrain dans les parties précédentes. Il est temps de voir comment ils fonctionnent. Ce sont en fait un set d'outils qui permettent de modifier le terrain par le biais des textures alpha. Et c'est plutôt heureux car cela permet de ne pas avoir à faire toutes ses alpha textures sous photoshop, à importer, essayer, modifier, réimporter etc... Avec eux, on fait d'une texture alpha quelconque la texture alpha que l'on veut. On peut donc modifier dans ued, en temps réel, son terrain avec une panoplie complète d'outils. Chouette, ued devient super ergonomique et encore plus puissant... lol. Hum... excusez moi.

Figure 22 : Les outils d'édition du terrain sont dispo dans l'outil "terrain editing"... Et oui, ma légende est bien plus longue que l'image, je vois pas ou est le problème...

Cet outil est accessible... dans la barre d'outils d'ued. Une fois sélectionné, on passe en mode d'édition du terrain, et une fenêtre de ce type s'ouvre.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img23.jpg

Figure 23 : Fenêtre de l'outil Terrain Editing

Ce mode permet de modifier le terrain par le biais des textures et layers. Par exemple, modifier le relief du terrain correspond à modifier l'heightmap. L'outil de TerrainEditing permet de modifier directement la texture heightmap grâce à une panoplie d'outils bien utiles. De même, il est possible de modifier avec ces outils les layers de textures et les layers de décoration. On choisi tout d'abord quel type de texture on veut modifier en cliquant sur l'onglet correspondant parmi les trois.

<> Terrains : cliquer sur l'heightmap à modifier dans la liste. ATTENTION : Il va falloir avant de pouvoir modifier cette heightmap, la convertir en 16 bits. Cliquez bouton droit sur l'heightmap, puis choisissez : Convert to 16 bits. On ne peut pas se tromper, il n'y a que cette proposition dans le menu...

<> Layers : La liste des layers de texturing est disponible. On clique sur celui que l'on souhaite modifier. Nous verrons plus tard qu'il est préférable d'ajouter un layer, de le modifier, d'en rajouter un autre de le modifier etc. plutôt que de vouloir modifier tous les layers d'un coup.

<> Decorations : Ici également, on voit la liste des DecoLayers. Idem, on clique sur le layer à modifier pour le sélectionner. On le voit bien, jusque la, il y a beaucoup d'explications pour pas grand-chose :-) C'est maintenant que ça devient intéressant. On va passer à l'étude des outils de modification du terrain. Les outils sont listés dans le menu déroulant de gauche. Pour chaque outil, on voit apparaître sur le terrain (fenêtres 2D et fenêtre 3D) le " pinceau ".

http://www.game-lab.com/images/tuts/ut2k3_terrain/img24.jpg

Figure 24 : Le pinceau, deux cercles concentriques

http://www.game-lab.com/images/tuts/ut2k3_terrain/img25.jpg

Figure 25 : La liste des tools

La zone de réglage de l'outil permet de définir le rayon du premier cercle du pinceau (inner radius), et le rayon du second cercle de l'outil (outer radius). Dans la zone délimitée par le premier cercle, les changements seront exactement de la force indiquée dans le champ strength. Entre le premier cercle et le second, la force de l'outil va décliner.

Le champ Adjust permet de régler finement l'outil. Par exemple, pour l'outil painting, il faut " peindre " le terrain avec l'outil. Une valeur faible dans adjust permet d'obtenir plus de précision, car l'outil sera moins " puissant " .Il faudra peindre plus longtemps pour obtenir le même résultat qu'avec une valeur élevée.

Le petit bouton " cadenas " permet de garder toujours le même écart entre le rayon du cercle intérieur et du cercle extérieur. Cela permet de changer la taille du pinceau sans perdre les réglages de dégradé. L'option " per tool " garde les réglages pour chaque outil lorsqu'elle est cochée.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img26.jpg

Figure 26 : Les options de réglage des outils

Il y a aussi un petit menu " Mirror ". En sélectionnant X, votre pinceau se dédoublera et effectuera les mêmes changements en respectant une symétrie par rapport au X Axis. Idem avec Y, suivant l'axe Y. Certain pourront trouver ça pratique pour faire des terrains symétriques, par exemple pour un CTF, mais souvent, les CTF, c'est de la symétrie centrale, et pas tellement axiale. A vous de voir. XY permet de travailler avec 4 pinceaux, en symétrie par rapport a X, et Y...

Et bien sur, si vous choisissez de montrer le terrain (appuyez sur 't' dans la fenêtre sélectionnée), principalement dans la vue " top ", vous pourrez travailler avec tous ces outils dans les vues 2d. Cela est surtout utile pour l'outil painting associé aux layers.

Vertex Editing

Cet outil est effectif seulement sur l'heightmap. Si vous utilisez cet outil en ayant sélectionné un layer ou un decolayer, les changements auront quand même lieu sur l'heightmap, donc sur le relief du terrain. C'est un outil qui utilise un bon nombre d'options...

Le réglage du pinceau s'effectue à l'aide des curseurs de réglage (fig. 6). En cliquant (btn gauche) sur le terrain avec cet outil, cela sélectionne les vertex qui seront modifiés. Leur couleur dépend de la Strength. Un vertex blanc va être soumis à un déplacement plus important qu'un vertex noir. Les vertex présents dans le cercle intérieur seront tous soumis à la même force, celle déterminée par strength. Les vertex compris entre les deux cercles permettent de faire la transition jusqu'au noir. Donc plus la différence entre le rayon intérieur et le rayon extérieur est grande, plus le déplacement des vertex sera progressif.

En regardant les 3 figures suivante, on peut asse aisément comprendre ce que ça donne.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img27.jpg

Figure 27 : inner radius 102 outer radius 305 strength 100

http://www.game-lab.com/images/tuts/ut2k3_terrain/img28.jpg

Figure 28 : inner radius 102 outer radius 305 strength 60

http://www.game-lab.com/images/tuts/ut2k3_terrain/img29.jpg

Figure 29 : inner radius 229 outer radius 305 strength100 On peut sélectionner plusieurs blocs de vertex en utilisant la touche [ctrl]. Il suffit de maintenir cette touche enfoncée et de sélectionner avec le pinceau dans le terrain. Il est normal qu'à chaque selection les blocs de vertex déjà sélectionnés s'agrandissent. Nous allons voir comment contourner le problème avec la méthode de selection SoftSelection.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img30.jpg

Figure 30 : 1ère selection

http://www.game-lab.com/images/tuts/ut2k3_terrain/img31.jpg

Figure 31 : 2nde selection, avec ctrl

http://www.game-lab.com/images/tuts/ut2k3_terrain/img32.jpg

Figure 32 : et après la 3ème selection avec ctrl... Vous devinez la suite :)

Il existe une autre méthode de sélection des vertex, qui consiste à utiliser le pavé d'option suivant :

http://www.game-lab.com/images/tuts/ut2k3_terrain/img33.jpg

Figure 33 : Soft selection et bouton Select

Si la soft selection (selection douce) est déclarée comme automatique, alors le mode de selection est celui énoncé précédemment. Tous les vertex présent dans le pinceau seront impliqués par le déplacement. A contrario, si on désactive cette option, le mode de selection passe en mode de selection par vertex. C'est de cette manière que l'on peut sélectionner un seul vertex, quel que soit la taille du pinceau. Pour en sélectionner plusieurs, on utilise encore la touche ctrl. Mais bon, vous allez penser que ça sert pas a grand-chose... Et vous aurez raison. En fait, cette façon de sélectionner vertex par vertex est utile si on utilise le bouton Select après avoir sélectionné plusieurs vertex avec ctrl.

Un exemple : Imaginons que vous vouliez sélectionner un " anneau de vertex ". Suivez la méthode en regardant les figures suivantes.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img34.jpg

Figure 34 : Sélectionner les vertex composant l'anneau

http://www.game-lab.com/images/tuts/ut2k3_terrain/img35.jpg

Figure 35 : Appuyer sur le bouton "Select"

http://www.game-lab.com/images/tuts/ut2k3_terrain/img36.jpg

Figure 36 :

Et vous pouvez encore appuyer... On le voit bien, les vertex avoisinants sont sélectionnés à leur tour, selon les réglages du pinceau. Plus on appuie sur select, plus les rayons augmentent. Cette technique peut vraiment s'avérer très utile.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img37.jpg

Oui, mais bon, là, on a juste dit comment sélectionner les vertex du terrain. Maintenant, il faudrait pouvoir les faire bouger. Pas de problème, c'est la chose la plus facile. [ctrl] ET les deux boutons de la souris. Puis on bouge la souris. C'est même assez instinctif car c'est de cette façon qu'on translate parallèlement au Z Axis dans la vue 3d.

Voila le résultat avec inner radius=102, outer radius=279 et strength=100.

Figure 37 : En abaissant les vertex

http://www.game-lab.com/images/tuts/ut2k3_terrain/img38.jpg

Figure 38 : Et en les élevant...

Bon, je pense avoir fait à peu près le tour de la question concernant cet outil. Les autres sont plus rapides à maîtriser, car tout réside dans le réglage de l'outil, et ça, on a déjà vu.

Select

Le select est un outil un peu spécial, car il n'agit que sur l'heightmap, et va de paire avec le générateur de terrain (deuxième onglet en haut).

http://www.game-lab.com/images/tuts/ut2k3_terrain/img39.jpg

Figure 39 : Sélection d'une partie du terrain
En maintenant ctrl enfoncé, vous pouvez sélectionner une zone rectangulaire sur le terrain. Les réglages du pinceau ne servent donc a rien.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img40.jpg

Figure 40 : Le générateur de terrain (onglet Misc)

Le générateur de terrain permet de générer ( !) un terrain, dans la sélection effectuée précédemment, ou bien même sur toute la carte. Si l'option " Use Entire Heightmap " est cochée, le terrain sera généré sur toute sa surface. Si l'option est décochée, le terrain sera généré uniquement à l'intérieur de la sélection faite par l'outil Select.

Le terrain est créé à partir de deux paramètres : steps, et strength.
Steps permet grossièrement de définir le nombre de collines générées, et strength, l'altitude de ses élévations. On génère le terrain en cliquant sur Build.
On comprends mieux avec des figures, alors les voici :

http://www.game-lab.com/images/tuts/ut2k3_terrain/img41.jpg

Figure 41 : Un terrain généré dans une selection du terrain (steps : 20, strength : 1000)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img42.jpg

Figure 42 : Un autre terrain généré dans la même selection du terrain (steps : 40, strength : 1500)

Toutefois, je me permets de vous mettre en garde contre l'utilisation de cet outil. Les essais réalisés montrent que le générateur n'est pas vraiment au point, notamment en travaillant sur une selection. A l'aveu même de Lode Vandevenne, dans le tutorial d'UDN, l'outil pourrait entraîner des plantages nécessitant une fermeture/réouverture du fichier.

De plus, les effets produits par les valeurs de steps et strength ne sont pas vraiment réguliers. Cela dépend de la taille de la zone travaillée. Une génération de terrain sur une zone déjà modifiée entraîne pas mal de complications.

Painting

Voila encore un outil très pratique, qui sert aussi bien sur l'heightmap que sur les layers. Il permet de modifier directement l'heightmap ou les textures alpha.
Nous allons d'abord voir son comportement avec l'heightmap ; ou plutôt comment élever ou abaisser le terrain en " peignant " celui-ci. La aussi, tout va dépendre des réglages du pinceau. Je conseille d'utiliser l'outil painting sur l'heightmap en choisissant un adjust assez faible, pour pouvoir contrôler facilement son action.

Pour élever le terrain, peindre avec ctrl et bouton gauche de la souris, et pour l'abaisser, peindre avec ctrl et bouton droit. Il est conseillé de travaillé dans la vue 3d.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img43.jpg

Figure 43 : painting avec bouton droit : abaisse le terrain

http://www.game-lab.com/images/tuts/ut2k3_terrain/img44.jpg

Figure 44 : painting avec bouton gauche : élève le terrain...

Avec cet outil, le texturing de son terrain devient vraiment facile. Si vous sélectionnez un layer à la place de l'heightmap, vous pouvez réellement peindre l'alphamap associée. En clair, avec bouton gauche, vous éclaircissez l'alphamap, donc vous appliquez la texture associée au layer sur le terrain, en cachant les couches inférieures. Avec le bouton droit, vous noircissez l'alphamap et ainsi laissez transparaître les couches inférieures. Oui, ces deux dernières phrases peuvent sembler bien confuses, mais en fait, elles traduisent une chose bien simple :

http://www.game-lab.com/images/tuts/ut2k3_terrain/img45.jpg

Figure 45 : Les alphamaps avant toute opération. Le layer1 est totalement transparent. On peut le rendre ainsi en choisissant une texture alpha, et en la peignant entièrement avec ctrl+btn droit.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img46.jpg

Figure 46 : On peint sur le terrain (ctrl+btn gauche) en ayant sélectionnant le layer1 (texture marron)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img47.jpg

Figure 47 : Les alphamaps des layer0 et layer1 après que l'on ai peint le terrain L'outil painting fonctionne aussi sur un decolayer. Le principe est exactement le même que pour les layers de texturing. L'outil va tout simplement éditer la DensityMap, qui est l'alphamap principale du decolayer. Après avoir sélectionné le decolayer voulu, on peut disposer la végétation associée au layer à l'aide du pinceau. En réglant ce dernier, notamment sur la strength, on influe sur la densité de la végétation.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img48.jpg

Figure 48 : On peint sur le terrain :)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img49.jpg

Figure 49 : Et voila la DensityMap du decolayer après que l'on ai peint le terrain... Cette même alphamap était totalement transparente avant. Même principe que dans la figure 25.

Smoothing

Bon, l'outil smoothing est l'un des plus utile pour créer un terrain. Il peut modifier l'heigthmap ou les layers mais on l'utilise principalement pour adoucir le relief d'un terrain par le biais de l'heigthmap. Un outil très puissant, c'est pourquoi je vous recommande fortement de régler le pinceau sur une petite strength et un adjust faible. On comprend vite comment il marche en l'utilisant.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img50.jpg

Figure 50 : Avant utilisation de Smoothing...

http://www.game-lab.com/images/tuts/ut2k3_terrain/img51.jpg

Figure 51 : Et après (ctrl+btn gauche)

L'outil smoothing peut aussi servir à modifier un layer de texture. Pour cela, sélectionnez le layer voulu et utilisez le pinceau dans la vue de votre choix (top ou 3d). Cela aura pour effet d'atténuer par exemple une démarcation entre deux textures.

Lorsque smoothing adouci le relief ou les textures c'est qu'il agit sur les alphamaps concernées un peu à la manière de l'outil " goutte d'eau " de photoshop.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img52.jpg

Figure 52 : Avant le smoothing sur un layer de texture...

http://www.game-lab.com/images/tuts/ut2k3_terrain/img53.jpg

Figure 53 : Et après...

Note : Smoothing n'a pas d'effet notable sur un decolayer.

Noise

L'outil noise n'est pas d'une utilité fondamentale, mais on peut lui trouver un certain intérêt lorsque l'on travaille sur les textures du terrain. Le pinceau de l'outil noise, rajoute du " bruit " à l'alphamap sur laquelle on travaille.

Sur l'heigtmap, cela va créer des irrégularités de relief. Cela va directement dépendre du réglage du pinceau, notamment de la strength et de adjust. Plus la valeur d'adjust est grande, plus la différence de hauteur entre les creux et les bosses générés sera grande.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img54.jpg

Figure 54 : Avant le noise sur l'heigtmap (viewport en wireframe pour que mieux percevoir la différence)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img55.jpg

Figure 55 : Apres le noise (ctrl+btn gauche)

Sur une alphamap de layer, l'outil noise va permettre de générer des irrégularités de texturing sur le terrain. C'est donc cette dernière utilisation qui semble la plus intéressante, car il devient possible de créer une transition qui semble plus naturelle entre deux textures, comme de la terre et de l'herbe, par exemple.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img56.jpg

Figure 56 : En reprenant l'exemple de la figure 32, Voila la transition obtenue avec un Noise (ctrl+btn gauche) sur un layer de texture.

Noise n'a pas d'effet notable sur un decolayer.

Flatten

L'outil flatten n'agit que sur le relief. Il est très utile dans certain cas. Il permet de donner a la zone que l'on peint la même altitude partout. En gros, ça sert pour aplanir une portion du terrain, dans le but d'y poser un bâtiment, par exemple. L'altitude obtenue sera celle du point de départ du pinceau. Néanmoins, cet outil est assez " brute " et on obtient souvent des élévations (ou des abaissements) de terrain très nets, et il est donc souvent nécessaire de repasser avec l'outil smoothing afin d'adoucir les contours.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img57.jpg

Figure 57: Flatten (ctrl+btn gauche) a été utilisé ici pour créer un petit plateau, puis pour créer le canyon au milieu.

Un autre exemple d'utilisation de cet outil : la création d'un chemin à flan de falaise. Nécessité d'utiliser smoothing. On dessine notre chemin avec flatten, puis il suffit ensuite de rendre le tout moins moche avec smoothing. On obtient un chemin relativement plat.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img58.jpg

Figure 58 : La falaise, avant la création du chemin.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img59.jpg

Figure 59 : On commence à utiliser flatten en choisissant l'altitude du chemin à partir d'un point de la falaise

http://www.game-lab.com/images/tuts/ut2k3_terrain/img60.jpg

Figure 60 : On dessine le chemin avec flatten en gardant la bonne altitude.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img61.jpg

Figure 61 : Et on fini en adoucissant avec smoothing, afin d'obtenir un chemin correct.

Visibility

L'outil visibility est un peu particulier. Les réglages du pinceau ne sont effectifs que pour la taille globale de ce dernier, vous allez vite comprendre pourquoi. Ce n'est pas un outil qui modifie une alphamap, mais qui modifie directement le terrain. Entendez par là qu'il modifie directement les propriétés de collision et de visibilité du terrain.

Comment ça marche ? La encore, c'est pas très dur a comprendre. Ne vous souciez pas de sélectionner un layer quelconque, le résultat sera le même quelque soit l'alphamap sélectionnée. En peignant (ctrl enfoncé) avec l'outil visibility dans la fenêtre de votre choix, de préférence dans la 3d, on s'aperçoit qu'avec le bouton droit, on rend totalement invisible le terrain, et qu'avec bouton gauche, on le fait redevenir visible.

A quoi ça sert ? Il faut d'abord savoir que le terrain rendu invisible, ne sera pas... visible... et oui, mais il ne sera pas solide non plus. Cela est indispensable si l'on veut par exemple faire une caverne dans un terrain, ou si l'on veut faire un tunnel, une base souterraine etc. Si vous voulez faire un " trou " dans le terrain, sachez que le susbtract d'un brush avec le terrain ne donnera rien. Il va falloir rendre la zone du " trou " invisible...

Un exemple : un tunnel à travers une colline. Le tunnel sera très simpliste, car le tutorial n'est pas destiné à apprendre le brushwork ou comment disposer des static meshes.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img62.jpg

Figure 62 : La colline à traverser.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img63.jpg

Figure 63 : On créer un brush pour notre tunnel qui traverse la colline. Ce brush va être creusé en son centre pour figurer le tunnel. Il faut ajouter ce brush (Add).

http://www.game-lab.com/images/tuts/ut2k3_terrain/img64.jpg

Figure 64 : On créé le brush qui servira à carver le premier. On substract ce brush après l'avoir bien placé. Mais là, problème, on a bien notre tunnel, mais le terrain " bloque " son entrée (et sa sortie ... lol)

http://www.game-lab.com/images/tuts/ut2k3_terrain/img65.jpg

Figure 65 : La solution : rendre les parties du terrain qui bloque le tunnel invisibles à l'aide de l'outil visibility (ctrl+btn droit). Choisir une taille de pinceau adaptée.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img66.jpg

Figure 66 : Voilà le tunnel, qui marche... si on peut dire...

Bon, c'est vrai que l'exemple est simple, mais il a juste pour but d'illustrer la notion de visibility. Une fois que le principe est bien comprit, on peut faire ce que l'on veut.

Edge Turn

Bon, je vous avouerais que je n'avais pas trouvé d'utilité à cet outil avant la rédaction de ce document. Mais c'est bon, je viens de comprendre... et c'est plutôt heureux à mon goût.

J'avais remarqué que l'outil changeait l'orientation des triangles du terrain. Cela est visible uniquement si l'on se met en mode wireframe dans la fenêtre 3d.

Mais à quoi ça peut correspondre, concrètement ?

La réponse en images... (En wireframe, pour bien voir les petits triangles... )

http://www.game-lab.com/images/tuts/ut2k3_terrain/img67.jpg

Figure 67 : Bon, ici, on voit la jointure entre une falaise et un sol plat. En vert, on voit que la jointure est correcte. Par contre, en rouge, on remarque que la falaise engendre des aspérités qui peuvent bloquer un joueur par exemple, et qui ne sont pas esthétiques en jeu.

http://www.game-lab.com/images/tuts/ut2k3_terrain/img68.jpg

Figure 68 : En bleu, on voit l'effet de l'outil Edge Turn sur les triangles. Ils s'inversent. Pas très utile sur du plat. Mais on voit que si l'on tourne les triangles de la jointure qui était mauvaise, elle devient correcte car les aspérités disparaissent.

L'outil s'utilise avec ctrl+btn gauche pour changer l'orientation de triangles, et ctrl+btn droit pour les remettre dans leur orientation d'origine. Il agit directement sur la structure du terrain, donc il n'est pas nécessaire de sélectionner une alphamap avant de l'utiliser.

Tex pan, Tex Rotate et Tex Scale

Ces trois outils ne fonctionnent que sur les alphamaps des layers de texturing. On s'en serait bien douté, rien qu'à leur nom.

Utile ou pas, à vous de voir. Tout ce qu'il vous faut savoir, c'est qu'il est nécessaire de sélectionner le layer sur lequel vous voulez travailler. Ensuite, voila le mode d'emploi :

<> TexPan : ctrl+btn droit permet de décaler la texture vers le haut ou le bas, ctrl+btn gauche permet de décaler la texture vers la gauche ou la droite.

<> TexRotate : ctrl+btn gauche permet d'effectuer une rotation de la texture dans le sens horaire ou dans le sens anti-horaire.

<> Tex Scale : ctrl+btn droit permet d'agrandir/rétrécir la texture horizontalement, ctrl+btn gauche permet d'agrandir/rétrécir la texture verticalement.
J'estime qu'il est possible de bien comprendre sans screenshots...
Voila pour la première partie, qui vous permettra, je l'espère, de comprendre et de maîtriser la création d'un terrain avec UnrealEd 3 avec un minimum de pratique. Je travaille sur la deuxième partie de ce tutorial qui détaille la création d'un terrain, de a à z, en utilisant la quasi-totalité des fonctionnalités. Merci de bien vouloir patienter :-p

J'attends toutes vos critiques et remarques sur cette première partie. Merci a Gui d'avoir ingurgité en avant-première ces quelques 8200 mots...

Tutorial écrit par Gko