Last updated: 06/10/2024, 02:17

Current Project: Rejuvenation of Hellkeeper.net

Terrains BSP

Ceci est la traduction en français du tutorial rédigé en anglais par Bot_40, avec son autorisation. Le style fleuri a été conservé. Les images sont tirées de l'original.

Introduction

Très souvent (disons à peu près tout les jours), je vois des maps ou des screenshots qui ressemblent à ça :

Falaise classique en BSP

C'est horrible ! Ce n'est pas réaliste pour un sou : la dernière fois que vous êtes sorti dehors (ah ah !), vous avez bien vu que la base des reliefs n'était pas faite d'angles à 45 ou 90 degrés ! À chaque fois que je vois ces angles de 45 ou 90 degrés, j'ai envie de m'enfoncer des crayons dans les yeux ! C'est naze. En plus, les textures sur les falaises sont mal alignées et cette méthode consomme énormément de polygones pour rien. La raison de tout ça, c'est que la plupart des gens ne savent pas utiliser le brush terrain correctement ou sont trop feignants et préfèrent utiliser TerraEdit (qui vomit ces horribles angles de 45 et 90 degrés). Exemple classique : CTF-ProjectX et ProjectX2. Ce sont toutes les deux des maps plus que correctes. ProjectX2 est une des meilleures CTF existantes, mais si vous les regardez d'un œil critique, vous verrez ces angles droits partout, et combiné aux affreuses textures, ça vous fera vomir (enfin pas vraiment, mais c'est très laid).

Dans ce tutorial, je compte donner un guide étape par étape pour créer des terrains potables. Je ne vais pas prétendre que c'est la seule façon de s'y prendre : une autre technique populaire consiste à utiliser plein de cubes subdivisés pour faire un immense cube et le mouler (NDT : C'est-à-dire faire une désintersection de l'assemblage). Cette technique écrase la mienne de loin en ce qui concerne les terrains très accidentés, avec de grandes falaises de chaque côté. C'est cette technique qui est utilisée dans Operation Na Pali. Mais ça ne vaut rien quand il s'agit de faire de grands espaces avec des collines basses et des montagnes qui ondulent dans le paysage (ce qui est généralement l'objectif visé avec TerraEdit).

Donc si vous voulez faire un canyon étroit aux parois abruptes, la technique expliquée dans ce tutorial n'est pas la meilleure (je comptais mettre un lien pour découvrir l'autre technique, mais j'ai complètement oublié où je l'ai vue).

Une dernière note : ce tutorial n'a pas la prétention d'être une bible : vous n'êtes pas obligé de le suivre pas à pas. Une fois que vous saurez vous débrouiller, vous ferez probablement les choses dans un ordre différent. Vous mettrez peut-être au point des techniques qui vous sembleront meilleures ou plus rapides. Ce tutorial n'explique que la façon dont je fais mes terrains. C'est la méthode qui me convient le mieux depuis que je l'utilise, donc depuis un an ou deux. Et vraiment pour finir, ce tutorial entier et tout son contenu sont la propriété de Michael "Bot_40" Rippon, 2003. C'est moi qui l'ai fait, il est à moi. Ne projetez même pas de vous l'attribuer ou j'envoie quelqu'un vous exploser les deux genoux.

Commençons donc, sans flâner plus longtemps. Pour commencer, sachez que j'utiliserai énormément le vertex editing et que dans 90 % des cas, je le ferai dans la vue 3D. Je n'utilise pas les vues de devant et de côté quand je fais des terrains, et très rarement la vue de dessus. Vu qu'il y aura certainement des lecteurs qui ne connaissent rien aux particularités du vertex editing en 3D, je vais brièvement expliquer la technique avant de commencer à faire mon terrain.

Vertex editing en 3D

Vous êtes arrivés jusque-là ! Ça signifie que vous n'avez pas été profondément insultés par mon délire anti-TerraEdit. Avant toute chose, je créerai mon terrain en utilisant le brush de terrain (si vous ne trouvez pas le bouton, c'est sans doute l'un de ceux que vous n'utilisez jamais).

Quand je crée mon terrain, j'utilise toujours le vertex editing sur le brush rouge pour modéliser entièrement le terrain avant de le soustraire à la toute fin. Je trouve cela plus facile car éditer un brush qui a déjà été ajouté ou soustrait devient impossible dans la vue 3D quand vous avez des polygones partout : il y en a toujours un pour se mettre en travers de votre vue et vous gêner.

Tant que j'y suis : j'utiliserai le brush du terrain comme un brush soustractif. Cela doit vous sembler contre-intuitif si vous avez utilisé TerraEdit auparavant, mais c'est légèrement plus rapide et ça veut dire que vous n'aurez pas besoin de soustraire d'autre cube. En utilisant un brush additif, il faudrait travailler à l'intérieur d'un cube soustrait et il est plus facile d'utiliser un cube soustractif puisque vous aurez un arrière-plan noir donc plus contrasté. De plus, si vous voulez agrandir le terrain plus tard, vous n'aurez pas à modifier le cube : il suffira de créer un autre terrain et de le connecter au premier.

Assez parlé ! Allons-y. Donnez n'importe quelle forme à votre brush rouge : cube, terrain, qu'importe. Ce n'est que pour nous entraîner au vertex editing en 3D (ce que la plupart des gens n'ont sans doute jamais fait). Maintenant, sélectionnez un vertex dans la vue 3D en cliquant dessus (pas besoin de passer en mode vertex editing ou autre), et placez votre caméra exactement sur le côté, avec le vertex sélectionné bien au milieu de la vue.

Brush terrain de base

NDT : Pour plus de facilité, vous pouvez agrandir la vue 3D en cliquant sur le dernier bouton de la barre d'outils inférieure de l'éditeur (celui qui représente un carré avec une flèche au-dessus d'un autre carré, plus petit).

Bien. Maintenant, enfoncez la touche Alt et les deux boutons de la souris en même temps. Bouger la souris vers le haut déplacera le vertex vers le haut et la déplacer vers le côté bougera le vertex à travers la vue 3D. Le(s) vertex(ices) se déplacent toujours exactement sur les axes, donc ne vous inquiétez pas : tout restera aligné sur la grille. Sur l'image suivante, j'ai bougé le vertex vers le haut et vers la gauche.

Vertex déplacé vers le haut et la gauche

Maintenant, déplacez la caméra dans la vue 3D à 90 degrés afin de voir le vertex depuis le côté. Si vous aviez été à cet endroit quand je bougeais le vertex, vous l'auriez vu s'approcher de vous.

Vertex centré

Répetez la manipulation précédente. Vous pouvez déplacer le vertex vers le haut et le bas, et à travers toute la vue. Notez que si vous le bougez sur le côté, il se déplace maintenant sur un axe différent. C'est diablement utile vu que vous savez désormais déplacer un vertex sur trois dimensions en utilisant seulement la vue 3D. Vous n'aurez plus jamais besoin d'utiliser les vues de côté ou de face de toute votre vie si vous n'en avez pas envie ! Sur l'image suivante, je déplace le vertex vers la droite.

Vertex déplacé vers la droite

Une dernière image pour vous montrer mon beau vertex d'un angle différent pour que vous puissiez voir comment il a bougé. Vous devriez vous entraîner un moment pour vous y habituer. Activez le rendu en temps réel dans la vue de dessus et les vues de côté (ça se fait en cliquant sur le petit joystick au-dessus de chaque vue, mais pas celui qui se trouve dans la barre d'outil, qui sert à tester la map), et regardez votre vertex bouger en temps réel quand vous le déplacez dans la vue 3D.

Vertex en vue de dessus, le déplacement est clair

Il faut quand même que je mentionne ce bug : parfois après avoir bougé un vertex et lâché le bouton Alt, lorsque vous voudrez de nouveau le déplacer, le petit pointeur rouge (NDT : Il s'agit du pivot du brush) bougera sans embarquer le vertex. C'est un bug un peu naze de l'éditeur qui fait que vous devrez répéter le déplacement une seconde fois pour qu'il soit pris en compte, parfois après avoir resélectionné votre vertex (pas besoin de désélectionner et resélectionner le brush rouge, il suffit de cliquer à nouveau sur le vertex en question). Ce bug semble se produire seulement sur les terrains relativement grands. Il n'est pas vraiment problématique, mais cela peut prêter à confusion si les vertices sur lesquels vous bossez arrêtent soudain de bouger.

Bon, je vous promets que dans la suite, nous allons enfin faire un terrain.

Créer la forme

Bien, il est temps de s'y mettre ! Pour commencer, faites un clic droit sur le Terrain Builder (c'est l'outil avec les petites montagnes). Donnez une hauteur assez grande, genre 10240 (non, il n'y a pas un 0 en trop). Ce chiffre donnera à peu près la hauteur entre votre sol et les faces supérieures du cube qui seront réglées en Fake Backdrop. Si vous donnez une valeur assez grande, lorsque quelqu'un tirera une roquette vers le ciel, celle-ci disparaîtra avant d'exploser en heurtant un mur invisible (NDT : Vous pouvez aussi utiliser une CloudZoneInfo pour faire disparaître les projectiles sans étendre démesurément votre ciel). Donnez à la largeur et à la longueur de votre terrain les dimensions que vous désirez en y ajoutant un petit quelque chose. Il est très important que vous le fassiez assez grand, sinon vous risquez de vous retrouver à court de vertices plus tard. Vous n'auriez plus alors qu'à recommencer à zéro. Une bonne pratique est de prendre une marge de 1024 ou 2048 unités en largeur et longueur. Il n'est pas grave de se retrouver avec de l'espace inutilisé sur les côtés, cela signifie juste que votre carte aura un polygone supplémentaire, autant dire trois fois rien. Faites en sorte que vos dimensions soient d'exacts multiples de 256, cela rendra le BSP beaucoup, beaucoup plus propre. N'utilisez jamais, je dis bien jamais, un nombre qui ne serait pas un multiple de 256. N'y pensez même pas.

Le nombre dans WidthSegments représente le nombre de divisions du terrain. Pour bien comprendre, divisez la largeur de votre terrain par 256 et utilisez cette valeur. Cela donnera des segments de 256 de côté. Si vous faites des terrains absolument monstrueux, vous pouvez utiliser des segments de 512, mais il faudra que votre terrain soit vraiment immense. Je n'ai jamais eu besoin de segments de 128, mais rappelez-vous qu'avec de telles dimensions, votre terrain aura quatre fois plus de polygones et vous aurez quatre fois plus de vertices à éditer.

Faites exactement la même chose avec "DepthSegments". Cliquez sur le bouton Build et vous devriez avoir quelque chose comme ce que j'ai en dessous (peut-être plus grand ou plus petit. Le mien est assez petit, mais c'est juste un exemple). Je vous conseille de déplacer le terrain vers le haut, de manière à ce que le sol soit exactement à mi-hauteur de l'univers, car quand vous sauvegardez, fermez et rouvrez la map, la caméra apparaît au milieu du niveau. En déplaçant le brush vers le haut, vous n'aurez pas besoin de faire descendre la caméra et vos autres vues pour arriver au niveau du terrain. Si vous avez déja construit des bâtiments ou autres, alignez simplement le tout sur le fond de votre terrain.

Brush de terrain vierge

Au premier regard, si vous êtes habitué à TerraEdit, vous aurez l'impression que le terrain est à l'envers. Mais non. Rappelez-vous que nous allons soustraire ce cube à la fin. Au final, les quatre côtés et le haut de ce cube (qui ne restera pas un cube très longtemps), seront des surfaces en Fake Backdrop. Le fond du cube est la seule chose qui nous intéresse et c'est la seule chose qui sera effectivement transformée en terrain.

Notez que vous aurez beaucoup plus de segments que moi sur votre terrain, vu que comme je l'ai dit plus haut, ce n'est qu'une map de démonstration, donc je n'ai pas envie de passer des plombes à faire un immense terrain juste pour vous montrer deux ou trois trucs. Bon, parfois, quand vous faites un terrain vraiment gigantesque, vous vous retrouvez devant cette affreuse grille que vous devez sculpter pour en faire un chef-d'œuvre. Ça fait toujours un peu peur au début. Vous devez juste vous forcer à passer à l'étape suivante, faute de quoi vous allez passer des plombes à regarder votre brush plat sans rien faire (l'angoisse de la map blanche, en quelque sorte). J'en ai souvent fait l'expérience.

A partir de maintenant, c'est ma méthode pour éditer un terrain. Certains trouveront peut-être que tout est fait en dépit du bon sens, mais à mes yeux, c'est parfaitement raisonnable. Un des avantages est que cela vous encourage à planifier votre terrain, et planifier à l'avance est toujours un plus. Mais ne vous inquiétez pas, vous devrez quand même improviser la plupart du temps. Vous n'avez pas besoin de faire un plan exact de votre map avant même d'y mettre la main, mais il faut prévoir à peu près le plan des zones où le joueur pourra évoluer. L'étape suivante est la plus importante de toutes et c'est celle qui vous permet de dépasser le syndrome des angles droits de TerraEdit !

il vous faut une vague esquisse de la disposition générale de votre terrain. Ça n'a pas besoin d'être exact, ça peut très bien être une simple image mentale, mais vous ne pouvez pas avancer si vous n'avez pas une idée du résultat final à obtenir.

Une fois que vous avez votre idée, vous devez utiliser le vertex editing dans la vue de dessus pour créer les contours, là où le sol touchera le bas des falaises sur votre terrain. C'est l'un des rares moments où j'utilise la vue de dessus pour éditer le terrain. C'est difficile à expliquer, mais si vous regardez les bords de tous vos triangles en vue de dessus, vous devriez être capable de suivre un chemin courbe et lisse le long de ces vertices, afin que cela trace la zone où le terrain rencontre la falaise. (NDT : C'est encore plus difficile à expliquer en français). Réglez votre grille sur 64 ! C'est très important car cela gardera votre BSP relativement propre (ça va devenir le bazar plus tard, donc essayez de garder une grille aussi grosse que possible tant que vous le pouvez).

Sur l'image suivante, les lignes bleues représentent le contour que j'imagine. La partie gribouillée en jaune est la partie jouable (admirez la maîtrise de Paint !). Le truc vert représente les futures falaises, où le joueur ne pourra pas aller. Je n'ai pas colorié en vert tout ce qui sera inaccessible, il fallait juste délimiter les zones impassables. Le diagramme vous montre que j'essaye de faire une espèce de vallée qui fait un virage d'un quart de tour. D'ailleurs, faites un terrain aussi courbe que possible et évitez les lignes trop droites. Si vous mettez des angles droits ou des angles de 45 degrés entre les lignes bleues alors que vous avez lu ce tutorial, je vous défonce. Il est aussi très important que vous évitiez les falaises trop droites : n'ayez pas deux segments alignés trop parfaitement, sinon la base de votre falaise ou colline sera une ligne parfaitement droite et ça sera très laid. Remarquez que sur mon diagramme, les lignes sont assez aléatoirement brisées, mais aussi relativement courbes. J'arrive à ne pas avoir des angles angles trop durs alors que la grille est réglée sur 64.

Une autre astuce est de ne pas trop étirer chaque segment. Si vous regardez mon image, vous verrez que les triangles sont à peu près de la même taille. Si vous avez des triangles beaucoup plus grands ou plus petits, ça vous compliquera la tâche plus tard et ça sera moins beau.

Plan schématique du terrain superposé à la vue de dessus

Ce qui suit est d'une importance vitale: vous vous rappelez que je vous ai dit plus tôt de faire un terrain plus grand qu'il ne fallait ? Si vous regardez le haut de cette image, vous verrez que la ligne bleue n'est séparée du bord du brush que d'un segment. Ne faites jamais ça. Je l'ai fait spécifiquement pour illustrer quelque chose plus tard. Il est très important que vous laissiez au moins deux ou trois segments entre le bord de votre brush et votre "ligne bleue".

Notez aussi que ma ligne bleue touche le bord en bas et à gauche. C'est un exemple pour vous montrer que vous pouvez connecter plusieurs brushes de terrain. En général, vous ne ferez pas ce genre de choses, mais cela peut s'avérer utile, par exemple si vous avez foiré la planification de votre terrain et que vous avez besoin de lui en adjoindre un autre sur le côté.

Et de la même façon que vous avez gardé de la place entre votre ligne bleue et le bord de votre brush, faites en sorte d'avoir assez de vertices entre vos lignes bleues. Les choses se compliqueront plus tard si vous avez pensé qu'il suffirait d'un segment entre les deux lignes, et il n'y aura aucune variation de hauteur à cet endroit (NDT : En réalité, vous pouvez le faire, mais seulement dans une seule direction et cela fera une unique rampe plate). Mon plan n'est vraiment pas génial. Quand vous faites les vôtres, essayez de garder les lignes bleues imaginaires plus éloignées l'une de l'autre que sur mon exemple (désolé, mais là c'est moi qui ai mal planifié).

La prochaine étape va immédiatement rendre visible la forme de base de notre terrain. Vous pouvez le faire de deux façons (ou en utilisant les deux à la fois dans certains cas). Dans TerraEdit, vous souleviez les vertices pour faire des montagnes. Mais souvent, si votre terrain a beaucoup de parties élevées, il est plus rapide et plus facile de descendre les vertices des parties en contrebas. Vous avez donc besoin soit de lever tous les vertices de la zone verte (Mais pas ceux qui sont sur la ligne bleue), soit de baisser les vertices de la zone jaune (y compris les vertices qui sont sur la ligne bleue).

Personnellement, je vais utiliser la deuxième solution pace que la majeure partie de mon terrain sera surélevée, donc autant laisser cette partie là où elle est et baisser la partie basse (NDT : en plus comme ça, vous verrez les deux méthodes, et ça, c'est cool). Ça n'a pas une grande importance, mais ça permet de bouger moins de vertices à la fois (NDT : Utiliser la méthode qui vous fait bouger le moins de vertices à la fois permet aussi d'éviter les situations où l'éditeur rame lourdement à cause du nombre de vertices concernés en même temps).

Ci-dessous, une image de ce que j'ai obtenu. Notez que je ne me suis pas cassé les pieds à enjoliver les montagnes pour l'instant : je me concentre d'abord sur le sol. Vous pouvez déjà voir que j'obtiens de belles courbes, ce qui rend bien mieux que ce que j'aurais obtenu avec TerraEdit. Essayez d'utiliser la vue 3D pour tout votre vertex editing comme décrit plus haut. Cela vous permettra de mieux voir ce que vous êtes en train de faire et, quand vous y serez habitués, ça sera bien plus rapide que d'utiliser les vues latérales.

Première esquisse du relief

Un autre point que j'ai failli oublier : sauvegardez souvent ! En 2 ans, je n'ai rencontre qu'une seule erreur qui fait crasher l'éditeur, et elle est assez facile à éviter. Le vrai problème, c'est que vous ne pouvez pas annulez ce que vous faites. Donc si vous ratez quelque chose, vous pourrez toujours recharger votre dernière sauvegarde. La plupart du temps, cependant, vous pourrez annuler manuellement vos modifications.

Ce qui suit est très important et pourrait vous épargner pas mal de crises de nerfs : quand vous déplacez un vertex qui est au bord du brush (ce qui ne devrait pas arriver souvent si vous mappez proprement), assurez-vous qu'il ne finisse pas son mouvement sur la ligne qui relie un autre vertex à la face supérieure du brush. Regardez l'image ci-dessous. Si j'avais lâché Alt en laissant le vertex là, UnrealEd aurait planté avec le message "Not enough vertices" (NDT : "Pas assez de vertices". Ce crash a aussi lieu lorsque vous placez deux vertices exactement au même endroit).

NDT : Tant que j'y suis, une autre erreur à éviter: si vous sélectionnez un vertex du bord et que vous le montez tellement qu'il passe au-delà de la ligne qui relie un vertex adjacent au sommet du brush, une face nouvelle aura l'air d'apparaître, qui ne sera visible que depuis l'extérieur du brush. Il s'agit en fait de la face qui relie ce vertex au sommet du brush, mais totalement retournée (le brush fait une "boucle"). Évitez cela à tout prix. Suivant les réglages de vos surfaces, l'éditeur peut décider qu'il en a assez de vos bêtises et planter, ou vous pouvez vous retrouver avec des erreurs BSP un peu partout car le découpage qu'entraîne un polygone de ce genre est rapidement incontrôlable.

Vertex au bord du terrain en contact avec un la ligne de découpage du brush

Très important aussi : essayez de ne jamais déplacer les vertices qui sont juste au bord du terrain vers l'intérieur ou l'extérieur du brush. Il vaut mieux que la surface qui va être en Fake Backdrop soit parfaitement plate. Vous pouvez bouger ces vertices vers le haut et le bas, mais je vous suggère de ne pas prendre de risques. Pour être clair, si vous regardez votre terrain dans la vue de dessus, les bords doivent être parfaitement droits et ne pas zigzaguer vers l'intérieur ou l'extérieur.

Une fois les vertices du fond grossièrement en place, l'étape suivante consiste à donner au sol un peu d'élévation et de relief. Mon terrain va être plutôt plat, mais vous pouvez faire des collines, etc. Encore une fois, tout ce dont vous avez besoin pour l'instant, c'est de quelque chose de très global, pour donner de la variation de hauteur. Ce serait nul si le terrain était plat. Notez bien que j'ai toujours une grille de 64.

Sol de base de la vallée

Regardez les vertices à droite sur l'image suivante, qui représente le coin de mon brush. C'est là que les lignes bleues sont presque au bord de mon terrain. Remarquez comme le haut des falaises est juste au bord du terrain. Cela ne rend pas seulement l'effet "bord du monde" impossible à corriger, cela m'empêche aussi de bouger ces vertices vers l'intérieur ou l'extérieur sans mettre le bazar dans le BSP. C'est pour éviter cela que vous devez absolument laisser au moins deux ou trois segments entre votre ligne bleue et le bord du terrain.

Pour la suite de ce tutorial, j'ignorerai tout simplement cette zone car j'ai la flemme de corriger le problème. Cela nécessiterait de tout recommencer. Logiquement, si vous planifiez bien votre terrain à l'avance, vous n'aurez pas ce souci.

Relief à l'extrême bord du brush de terrain

Regardez le haut de cette falaise, je vais transformer ça en une belle montagne bien arrondie, mais pour l'instant, c'est moche et TerraEditesque (néologisme !).

Début du travail sur la colline arrondie

Je vais utiliser la même technique que quand j'ai tracé le contour de la vallée : je vais utiliser la vue de dessus pour arrondir mes angles (oui, j'utilise la vue de dessus après avoir dit que je ne le faisais pas, et alors ?). En fait, j'ai menti au début : à ce stade de la construction, j'utilise pas mal la vue de dessus. Mais s'habituer à la vue 3D est une bonne idée car la modélisation du sol vous semblera ensuite très facile.

Modélisation de la colline

Maintenant, je vais soulever les autres vertices pour faire une colline grossière. Je fais cela dans la vue 3D car je peux voir à quelle hauteur je dois avoir les vertices pour avoir un terrain aussi lisse et naturel que possible.

Colline basique

Ça n'est pas encore parfait. Elle n'est pas assez arrondie. Si vous regardez le bord à droite, par exemple, vous pouvez voir qu'il est parfaitement droit. En ajustant quelques vertices horizontalement, vous pouvez rendre le tout moins anguleux. Soyez attentif quand même avec les vertices au bord. Si vous en "sortez" un du brush, vous pourrez toujours le ramener manuellement avec la vue de dessus. La prochaine image montre le résultat après quelques changements. La différence n'est pas flagrante, mais c'est sensiblement plus courbe et naturel.

Colline lissée

Le côté opposé de la vallée sera plus abrupt. Essayez quand même d'éviter ce que j'ai fait ici :

Montagnes abruptes

C'est le "syndrome du bord du monde". Si vous étiez en bas de la falaise, le monde semblerait s'arrêter juste derrière le sommet, comme s'il n'y avait rien derrière. C'est exactement ce qui se passera si vous ne laissez pas assez d'espace autour de votre terrain comme je le disais plus tôt. Si qui que ce soit crée ce genre de terrains alors que ce tutorial existe, il aura de gros problèmes.

Falaises arrondies à leur sommet

Voilà qui est mieux : j'ai déplacé les vertices derrière pour que la falaise soit légèrement arrondie à son sommet (ce qui serait le cas dans la réalité). Le résultat n'est pas parfait. Si je créais une véritable map, je ferais de même pour les vertices que vous pouvez voir derrière, bien alignés, mais j'ai la flemme de faire ça pour un simple tutorial. Cela démontre que si vous laissez assez de place derrière, vous aurez des vertices supplémentaires derrière vos falaises, que vous n'aurez pas besoin de toucher. Laissez-les : vu que personne ne les verra, ça ne causera pas de problèmes et le BSP sera plus propre si vous les laissez tous à plat.

Falaise arrondie avec ligne de vertices inutilisés visible derrière

Parfois, vous aurez un vertex "en coin" qui ressortira, comme celui de cette image. Ils peuvent être assez durs à détecter dans UnrealEd en vue Wireframe, mais dans le jeu, ça se verrait, ça serait moche et ça serait bien plus voyant que sur cette illustration.

Vertex saillant

Si vous en avez des comme ça, déplacez-les jusqu'à ce qu'ils ne ressortent plus trop.

Lissage de l'angle

Regardons le sol de plus près :

Sol plat de la vallée

Argh ! C'est vachement TerraEditesque! Ce n'est pas naturel du tout. C'est maintenant que vous allez pouvoir diminuer le pas de la grille. 64 suffit pour créer les montagnes, mais pour ce qui est du sol, il faut soit bien lisse et arrondi, aussi naturel que possible. Il suffit d'éditer les vertices de la même manière que tout à l'heure.

Sol lissé et arrondi

C'est bien mieux. Le rendu est bien plus naturel. Il est temps de faire des ajustements plus fins. Sélectionnez n'importe quelle texture dans le browser et soustrayez le brush. Non, nous n'avons pas fini, ce n'est que temporaire. Vous devez chercher partout les angles de 45 degrés ou les angles droits. Vous en avez ? Regardez cette image par exemple : si vous observez bien à la fois les polygones eux-mêmes et les contours rouges du brush, vous les trouverez facilement. Il y en a plusieurs sur l'image suivante :

Vue du sol avec le brush soustrait, à la recherche d'angles trop prononcés

Vous devez arrondir ces angles. Il vaut mieux utiliser la vue 3D pour ça, mais d'abord, annulez tout ce que vous avez fait jusqu'au moment où vous avez soustrait le brush. Il ne devrait vous rester que le brush rouge et ses angles à modifier.

Retour au wireframe avec vue sur le sol

On voit encore les coins, mais bon, vous ne pourrez pas lisser parfaitement votre terrain, nous touchons à la limite de ce qui est faisable sous UT. Vous pouvez soustraire le brush et chercher à nouveau les éventuels problèmes. Sur l'image suivante, vous pouvez voir que le terrain est bien plus lisse qu'auparavant :

Vue du brush soustrait avec le sol lissé

Tant que j'y pense, essayez d'éviter le "syndrome des vallées", c'est-à-dire les vallées pointues comme sur l'image ci-dessous. Si vous utilisez une grille de 32, vous devriez pouvoir éviter ça.

Vallée très pointue

Eh bien, cette partie est enfin terminée. Une fois que vous avez un beau terrain et que vous avez fait attention à ce qu'il soit lisse, beau et réaliste au possible, vous êtes prêt à passer à l'étape suivante.

Texturer votre terrain

Prêt pour le grand saut ? Commencez par sélectionner la texture de roche que vous comptez utiliser (celles fournies avec UT sont toutes dans le package GenEarth. Celles à la fin de la catégorie Rock sont les meilleures, mais aucune n'est vraiment géniale). Soustrayez votre brush. Pour texturer rapidement votre terrain... Si vous avez un terrain de 2000 polys, l'astuce qui suit va vous apporter un soulagement énorme. Sélectionnez toute vos faces et allez dans les propriétés d'alignement. Cliquez dans l'ordre donné sur Align to Floor, Wall Direction et Wall Panning.

Sélectionnez une surface du sol et faites clic droit, puis Select, Adjacent Floors/Ceilings. Appliquez aux surfaces sélectionnées la texture que vous voulez pour le sol. Sans désélectionner vos surfaces, allez dans les propriétés d'alignement et faites Align to Floor (surtout pas Align to Wall). Sélectionnez une des faces qui sera en Fake Backdrop, faites Shift + I, et appliquez à ces faces une texture temporaire (en général, j'utilise la texture DayskyB du package ShaneDay.utx, je ne sais pas pourquoi là, j'ai choisi cette immonde texture orangée). Sélectionnez aussi toutes les surfaces du terrain et cochez la case Bright Corners de leurs propriétés, ça évitera les horribles bords noirs sur le sol et les montagnes. Vous devriez avoir quelque chose comme l'image suivante (la mienne est en mode Dynamic Light, Dieu sait ce qui me passait par la tête quand j'ai pris la capture d'écran).

Premier jet de l'application des textures

Remarquez que les surfaces sélectionnées forment un ensemble parfaitement plat. Pourtant, elles sont toutes comptées comme des faces séparées. Vous pouvez les réunir en une seule en faisant un clic droit sur votre brush soustrait et en allant dans Polygons avant de cliquer sur Merge, puis en rebuildant. Une fois que c'est fait, si vous voulez modifier la forme de votre brush, vous devrez impérativement faire Polygons puis Separate et un rebuild, sous peine d'avoir une erreur BSP. Regardez l'image suivante : tout le sol est un seul polygone que j'ai sélectionné en une seule fois.

Sol avec faces fusionnées

Si j'avais écrit ce tutorial il y a six mois, je me serais arrêté ici. Mais depuis, j'ai découvert une technique fantastique pour aligner parfaitement les textures de roche. C'est un peu difficile à comprendre et la plupart des joueurs ne prêtent pas attention à un détail aussi fin, mais des perfectionnistes comme moi (NDT : Et moi) ne manqueraient pas de le remarquer, alors lisez la suite pour savoir mieux aligner vos textures que n'importe qui.

Notez que je n'ai pas encore fait de terrain depuis que j'ai découvert cette technique, donc vous pourriez être le premier à l'utiliser dans une map publiée (NDT : Ce tutorial date de 2003).

Regardez attentivement l'image ci-dessous. Vous remarquerez que les textures ne se suivent pas correctement sur les falaises. La raison principale, c'est qu'Epic se fout de nous et a décidé de ne pas nous donner le moyen de faire un alignement planaire correct sur les murs dans UnrealEd 2. Si vous alignez des pans de falaise inclinés avec Align to Floor, vous remarquerez que les textures s'étirent vers le haut. La raison en est qu'Align to Floor aligne les textures comme si elles étaient projetées par au-dessus. L'alignement avec Wall Direction et Wall Pan est naze. S'il était correctement fait, il marcherait de la même façon qu'Align to Floor, mais ils ont préféré gâcher le plaisir de tout le monde. Regardez l'image suivante, et vous verrez que la texture est affreusement répétée là où elle n'a pas été alignée proprement sur les surfaces.

Texture mal alignée

Le seul moyen de se débarrasser de ça est d'utiliser la commande Align to Floor, mais ça étirerait énormément les textures, les faces étant trop verticales. Ce que vous devez faire, c'est pivoter le terrain de 90 degrés de manière à ce que la falaise soit à peu près à l'horizontale. Sélectionnez le brush soustrait et pivotez-le. Voici une vue en Wireframe pour que vous compreniez bien :

Wireframe du brush incliné

Recompilez la carte. Si vous souffrez d'une forme quelconque de vertige, vous devriez laisser tomber et vous contenter de l'alignement par défaut car les mouvements de la camera vont vous sembler bizarres et vous n'allez pas tarder à être completement désorientés. Vous devez sélectionner les surfaces qui regardent en gros vers le haut et le bas. Voilà une image.

Sélection des surfaces horizontales

Maintenant, faites Align to Floor.

Alignement exécuté

Mince, c'est immonde ! La texture est alignée dans le mauvais sens. Faites-la juste pivoter de 90 degrés pour corriger le problème. L'échelle de la texture est aussi trop petite. Précision mportante : si vous voulez changer l'échelle de la texture, assurez-vous d'avoir coché la case Relative dans la catégorie Scaling des propriétés, sinon l'alignement sera perdu et vous perdrez tout l'intérêt de la technique.

Texture réalignée et à la bonne échelle

C'est beaucoup plus joli. Remarquez que je n'ai aligné que la moitié de la falaise : l'autre moitié n'est pas orientée de la même façon, donc il faudra la traiter séparément. Faites pivoter le brush de 90 degrés en utilisant la vue de dessus et recompilez. Sélectionnez les faces que vous n'aviez pas prises la première fois.

Sélection de la deuxième moitié des falaises

Faites Align to Floor, pivotez-les de 90 degrés (ou pas, suivant la façon dont vous avez procédé la première fois), et doublez leur taille en vous assurant que Relative est bien coché. Quand vous l'avez fait, remettez le brush à l'endroit. Si vous aviez tourné votre brush dans le sens des aiguilles d'une montre, puis dans le même sens dans la vue de dessus, faites-le tourner dans le sens inverse dans la vue de dessus puis dans la vue de côté pour le remettre dans le bon sens. Rebuildez votre map. Vous remarquerez certainement quelque chose comme ça :

Jointure des deux moitiés

Catastrophe ! C'est presque aussi moche qu'avant ! Non, il n'y a pas moyen de corriger ça, vous devrez sélectionner les surfaces que vous venez d'aligner (la seconde portion de surfaces de votre falaise) pour faire défiler la texture jusqu'à ce que ça ne se voie plus trop. Ce n'est pas parfait, mais vous n'aurez plus ce problème que là où vos montagnes ou vallées font des angles sur 90 degrés, alors qu'auparavant, vous aviez ce genre de choses partout, donc vous devrez vous accommoder de cette unique jointure. Passez outre et admirez la façon dont votre texture est parfaitement plaquée sur tout le reste de vos falaises. L'image suivante montre ce que j'ai obtenu après avoir bidouillé un peu l'alignement pour rendre le problème moins visible.

Limitation des dégâts

Devinez quoi ! C'est la fin du tutorial ! Pour la petite histoire, essayez, si vous êtes habitués à TerraEdit, de deviner combien de polygones fait ce terrain. Vous pouvez en gros diviser votre estimation par 4. Tout simplement parce qu'avec TerraEdit, chaque segment mesure généralement 128 unités de côté. Avec cette technique, vous pouvez faire un terrain qui rend mieux avec des segments de 256 unités de côté et quatre fois moins de polygones. Voici une dernière image de mon petit terrain avec la commande "stat fps" activée :

Résultat

Et voilà, 47 polygones. Mais ce n'est pas vraiment le chiffre final, puisque quand vous aurez mis une skybox, les faces en Fake Backdrop ne seront pas affichées, ce qui nous fait 3 de moins, soit 44 polygones. Ça veut dire que vous pouvez faire un terrain 6 fois plus grand que le mien et rester sous les 250 polygones.

Je crois que j'ai livré la totalité de ce que j'avais à dire sur les terrains ! Mais bon, j'ai bâclé ça en quelque chose comme 3 heures, donc j'ajouterai certainement quelques notes utiles plus tard. Il y a quelques trucs que j'ajouterai sans doute dans le futur, comme des idées de design (comment faire un terrain original), comment donner vie à votre terrain avec quelques petites décorations (arbres, roches, sons, etc.), et je dois aussi mettre un lien vers le tutorial de DavidM sur l'éclairage.

Notes finales et conseils

Au lieu de rallonger le tutorial tel qu'il existe (ce qui le rendrait encore plus bordélique qu'il ne l'est déjà (NDT : Ça tu peux le dire)), je vais ajouter quelques notes ici (si jamais l'envie me prend d'écrire encore sur les terrains).

Le tutorial de DavidM sur l'éclairage des terrains : il s'agit uniquement de la partie de son tuto sur l'éclairage qui est dédiée aux terrains. Vous devriez lire le reste car c'est excellent, mais je tenais à mettre un lien vers la partie qui nous intéresse le plus.

Plages

J'ai décidé d'ajouter à ce tutorial une section pour illustrer comment vous pouvez créer des falaises en surplomb et des plages. Je m'excuse par avance du poids des images, mais la compression jpg ne marche pas fort sur les vues en fil de fer et si j'augmente la compression, elles deviennent affreuses (et elles sont déjà bien compressées).

Je vais créer une petite crique sablonneuse. Pour commencer, j'ai grossièrement planifié ma scène dans la vue de dessus :

Plan de scène de plage

J'ai commencé par élever les vertices qui formeront la falaise, mais après en avoir fait quelques-uns, j'ai commencé à fatiguer. Voyez les vertices entourés en jaune. Ne serait-il pas sympa de pouvoir tous les soulever en même temps au lieu d'y aller un par un ?

Ensemble de vertices à déplacer simultanément

Passez en mode vertex editing. Maintenez enfoncés Ctrl + Alt dans la vue de dessus et tracez un cadre autour de ces vertices. Vous ne pourrez pas tous les englober d'un coup. Une fois que vous en avez un maximum, enfoncez Ctrl + Alt + Shift et tracez d'autres cadres autour des vertices restants. Faites attention à ne pas cliquer sur le brush ou vous perdrez votre sélection (encore un bug).

Les vertices sélectionnés

Dans la vue 3D, appuyez sur la touche Ctrl et soulevez les vertices sélectionnés en enfonçant les deux boutons de la souris et en la bougeant vers le haut. Le seul intérêt de cette technique est de réduire le temps passé à bouger les vertices individuellement.

Résultat de l'édition

On peut maintenant créer une falaise en surplomb. Il est vital que vous ne passiez pas à cette étape avant d'avoir remonté les vertices de la falaise un minimum, autrement vos vertices vont se confondre quand vous allez les déplacer et l'éditeur plantera. Une fois que les vertices ne sont plus à la même hauteur, vous pouvez le faire sans prendre de risque. Vous pouvez voir que la ligne jaune représente la base de ma falaise et que la ligne bleue en représente le sommet (en réalité c'est à peu près la moitié de la hauteur vu que je vais soulever les vertices alentour après). Remarquez que la ligne bleue et la ligne jaune se chevauchent dans la vue de dessus. Si vous aviez essayez ça en laissant tous vos vertices à la même hauteur, vous auriez crashé l'éditeur instantanément.

Lignes des reliefs

J'ai maintenant fini la falaise (le surplomb est toujours présent à droite). Maintenant, je dois m'occuper du sable car la plage est toujours plate.

Surplomb créé

En venant rouler sur la plage, la mer repousse le sable au centre de la crique plus loin que celui qui se trouve sur les bords. J'ai fait un petit contour dans la vue de dessus pour prendre cela en compte (ça rendra plus facile la création d'une plage bien lisse). Remarquez l'importance de réfléchir logiquement à votre terrain. Vous devez veillez à ce que tout soit cohérent. Placer un cours d'eau sur le sommet d'une falaise n'a aucun sens, elle devrait s'écouler en bas (ça peut sembler évident, mais il y a toujours quelqu'un pour faire ce genre d'erreur). Enfin bref, j'ai dérivé. Revenons à notre plage.

Contour de la plage prévu

Maintenant, je vais faire des tonnes de vertex editing pour finir la partie sable. Il est difficile de faire une plage car le sable doit absolument avoir l'air bien lisse et courbé, sinon tout votre effet est raté. Comme vous pouvez l'imaginer, j'ai passé des plombes à le rendre convaincant. Ça semble complètement bordélique, mais quand vous vous y baladez dans la vue 3D, c'est bien lisse. Au fait, j'ai eu besoin de baisser le pas de la grille à 32, alors que je suis resté en 64 pour tout le reste (même avec ce bazar, au final, je n'ai toujours pas d'erreur BSP, je suis moi-même impressionné).

Résultat de la modélisation de la plage

La forme du terrain est prête, il ne reste donc qu'à s'occuper des textures (et de l'éclairage bien sûr). La texture sur l'image suivante n'est pas celle que je vais utiliser, je l'utilise seulement pour montrer à quel point le bouton Align to Wall est naze et à quel point vous devez utiliser la méthode rotation puis Align to Floor.

Texturing de base avec Align to Wall

Apres avoir honteusement volé une texture de roche d'UT2003 (celles d'UT99 sont vraiment trop nulles) et l'avoir alignée correctement, voilà le résultat. Ça consomme pas mal de polygones, mais même avec cet affreux BSP, le nombre de nœuds est assez bas. De toute façon, en jeu, vous ne pourriez pas aller loin dans l'eau, donc le nombre de polygones n'irait ne dépasserait pas 130 pour le terrain (ce qui laisse 120 polys pour les bâtiments et autres décors).

Falaise texturée correctement avec une texture tirée d'UT2003

Et grâce à la forme de ma plage, quand j'ajoute une feuille 2D pour la mer, l'eau s'enfonce dans la crique de façon assez sympa (image prise en jeu avec l'éclairage).

Scène finale éclairée

Une autre image. Je ne me suis pas cassé les pieds à faire un ciel, donc bonne chance pour faire une transition correcte entre la mer et la skybox (pour autant que ce soit faisable).

Résultat

Fini. Oh, vous voudrez peut-être télécharger la carte d'exemple pour vérifier par vous-mêmes. Les trucs habituels s'appliquent : pas le droit d'utiliser cette carte comme base d'un autre niveau, d'en faire une exploitation commerciale etc. J'ai une vague idée pour faire une bonne transition entre la skybox et la mer, mais j'ai la flemme de créer un ciel. Si quelqu'un arrive à faire quelque chose de potable, prévenez-moi.

NDT : Un bon exemple de transition entre la mer et le ciel est visible dans la map CTF-Stoneforts][ publiée par Bot_40 en 2002 : la face inférieure de la skybox porte la même texture d'eau que la plage dans la map et la SkyZoneInfo est placée très bas sur cette face. Un dôme formé de feuilles 2D portant la texture de nuages défilants recouvre la SkyZoneInfo et touche l'eau au bord de la skybox. Rachel "Angel Mapper" Cordone utilise la même technique dans UT2003 pour sa map CTF-Phaseshift, un fogring remplaçant le dôme pour figurer l'horizon.

Vous pouvez accéder au tutorial original en allant sur les restes archivés du site de Bot_40 ou à la version restaurée sur le wiki d'OldUnreal.

© 2005-2025, by Hellkeeper.

Valid XHTML 1.1 & CSS 3