Bienvenue dans ce cours sur le mapping sous le moteur Source de Valve.
Grâce à ce cours, vous pourrez créer vous même vos cartes (vos maps, comme on dit) pour les différents jeux et mods qui reposent sur le moteur Source (HL², CS, TF², Portal...). C'est un cours générique, c'est-à-dire qu'il va vous apprendre à mapper pour le moteur Source, mais pas pour un mod ou un jeu en particulier. Des parties seront consacrées à certaines particularités liées aux mods (comme les bombes de CS, les CP de Team Fortress, les engins de Portal...), mais le cours se focalise avant tout sur le mapping pur et dur :) .
Voici un petit aperçu du monde de Source, avec les plus grands jeux et mods :
Avant de commencer à mapper, il est utile de se procurer les bons outils : le Source SDK ou l'Authoring Tools, si vous désirez mapper pour Left 4 Dead et Portal 2. Voyons un peu de quoi il s'agit !
Valve met à notre disposition un SDK, qui est un ensemble d'outils qui vont nous permettre de créer des maps pour les jeux utilisant le moteur Source. Au début, seul le Source SDK existait. Mais depuis la sortie de Left 4 Dead premier du nom, Valve a décidé de publier des versions ciblées du SDK. Ces versions s'appellent généralement Authoring Tools. Voici les jeux disponibles dans un Authoring Tools :
Left 4 Dead 1 & 2
Portal 2
Alien Swarm
Si vous désirez mapper pour Left 4 Dead il vous faudra télécharger au choix le Left 4 Dead Authoring Tools ou le Left 4 Dead 2 Authoring Tools.
Pour Portal 2, il vous faudra le Portal 2 Authoring Tools. Mais par contre, les outils de création pour Portal premier du nom sont dans le Source SDK.
Pour finir vous voulez mapper pour Alien Swarm, vous devez télécharger l'Alien Swarm - SDK.
Donc, pour récapituler, si vous ne mappez ni pour Left 4 Dead ni pour Portal 2, téléchargez le Source SDK. Pour Left 4 Dead et Portal 2, téléchargez leur Authoring Tools respectif, et si vous mappez pour Alien Swarm, téléchargez le Alien Swarm - SDK.
Installation
Pour installer le SDK, commencez par ouvrir Steam. Dans la fenêtre principale de Steam, allez sous l'onglet Bibliothèque (Library), puis sélectionnez la catégorie Outils (Tools). Double-cliquez sur Source SDK ou un des Authoring Tools, pour lancer le téléchargement, comme s'il s'agissait d'un jeu.
->Téléchargement->
Une fois que c'est fini, toujours dans la catégorie Outils, lancez le SDK, comme si vous lanciez votre jeu préféré.
Le contenu
Les différents SDK, suivant la version choisie
Que vous utilisiez le Source SDK ou un des Authoring Tools, trois logiciels sont présents :
Hammer : C'est le logiciel que nous allons utiliser pour mapper. Son vrai nom est Valve Hammer Editor (ou Valve Hammer World Editor) ;
Model Viewer : C'est un petit logiciel qui permet de visualiser les models. Les models sont des "objets" très détaillés que l'on place dans les maps, comme des armoires, des voitures, des tanks, des pylônes électriques, des portes à poignée... Ce logiciel n'est plus vraiment utile. Il l'était au temps où Hammer ne disposait pas de son propre système de visualisation de models (au tout début du Source SDK) ;
Face Poser : C'est un logiciel dont nous ne parlerons pas car il ne nous sert pas à mapper. C'est une application qui vous permet de définir les animations faciales et les mouvements des personnages dans le cadre de la création d'un mod.
La version du Source Engine, si vous utilisez le Source SDK
Le Source Engine est le moteur graphique créé pour Half-Life². Au fil du temps, ce moteur Source a été mis à jour pour suivre les évolutions de la technologie (ajout de HDR, du support multi-cœur, d'effets en tous genres...). Trois versions majeures du Source Engine sont disponibles, et correspondent à leur année de sortie :
Source Engine 2006 : c'est la première version, celle qui correspond à Half-Life² Deathmatch ;
Source Engine 2007 : plus de jeux ;
Source Engine 2009 : c'est la version qui correspond à Half-Life² ainsi que ses épisodes One et Two. Pour Portal, c'est ici aussi ;
Source Engine MP : c'est la version pour les jeux multijoueurs, c'est-à-dire Counter-Strike: Source, Day Of Defeat: Source et Team Fortress².
Dans le panneau du SDK, choisissez la version de Source à utiliser (Engine Version), en fonction du jeu pour lequel vous allez mapper.
Une fois la version du moteur choisie, sélectionnez le mod pour lequel vous allez mapper (Current Game). Seuls les mods officiels y sont répertoriés.
Pas besoin de configurer le SDK. C'est très pratique, mais le SDK n'est franchement pas le logiciel le plus stable qu'il m'ait été donné de voir. Il est possible que la configuration par défaut soit de temps en temps effacée ou que des bugs apparaissent.
Il se peut aussi que Hammer, et plus généralement le SDK, ne se soit pas configuré par défaut.
Une solution à tous les maux
En cas de problème quelconque, cliquez, dans le panneau d'accueil du SDK, sur Reset Game Configuration, ce qui régénérera une configuration. La fonction Refresh SDK Content peut aussi se révéler salvatrice : elle permet de réactualiser tous les fichiers du SDK, pour en obtenir leur dernière version.
Il se peut aussi qu'à son lancement, Hammer vous dise qu'il n'y a pas de configuration disponible. Pas de panique. Fermez Hammer, le SDK, et lancez le jeu pour lequel vous voulez mapper. Ça actualisera les configurations, et Hammer devrait se lancer sans problème.
Par défaut, le Source SDK est configuré pour être utilisé avec la plupart des jeux officiels. Mais, me direz-vous, il en manque un : Garry's Mod. Je vais donc vous expliquer ici comment ajouter manuellement un jeu pour lequel mapper. Je vais utiliser l'exemple du Garry's Mod.
A propos de Garry's Mod
Garry's Mod est un mod assez particulier dans le sens où il est capable d'afficher le contenu d'autres mods comme Counter-Strike: Source, Day of Defeat: Source, Half-life² Episode Two... La configuration sera donc différente en fonction du contenu que vous allez utiliser, et il va falloir préciser quels contenus utiliser.
Choix de la version du moteur Source
La première étape est le choix de la version du moteur Source. Deux versions majeures existent : le Source Engine 2006 et le 2009. Le 2006 est le moteur Source de base, tandis que celui de 2009 est celui qui correspond à la sortie de l'Orange Box (avec Portal, Team Fortress² et surtout Half-Life² Episode Two). Si vous possédez des jeux utilisant le Source Engine 2009, vous mapperez avec cette version. Si ce n'est pas le cas, vous mapperez avec la version 2006.
Choisissez donc, dans le panneau du Source SDK, le moteur que vous allez utiliser. Moi je prends le 2009. mettez ce que vous voulez pour Current Game, ça n'a pas d'importance.
Lancez Hammer, puis allez dans Tools > Options et dans le premier onglet, cliquez sur Edit. Dans la boîte de dialogue qui s'ouvre, cliquez sur le bouton Add. Saisissez Garry's Mod dans le champ Name :
Cliquez sur OK. Voici maintenant ce que vous devriez avoir dans la boîte d'édition des configurations :
Cliquez sur Close, pour fermer la boîte. Dans la liste déroulante de la fenêtre d'Options, sélectionnez Garry's Mod :
Ajout des FGD
Ensuite, il faut ajouter tous les fichiers .fgd dont nous aurons besoin. Les fichiers FGD sont des fichiers texte, contenant des informations sur les entités. On verra ça en détail plus tard, dans la partie II de ce cours.
Dans le cas de Garry's Mod, pas besoin de télécharger de fichier FGD, on va juste ajouter les fichiers FGD des jeux avec lesquels Garry's Mod est compatible. Un fichier Garrysmod.fgd est présent. Ajoutez donc ces fichiers dans la zone Game data files :
HalfLife2.fgd (ou celui d'HL² Episode 2)
base.fgd
cstrike.fgd
dod.fgd
hl2mp.fgd
portal.fgd
tf.fgd
garrysmod.fgd (se trouve dans le dossier $SteamUserDir\garrysmod\garrysmod (collez cette adresse dans l’explorateur Windows pour y accéder directement))
Textures et entités
Définissez les valeurs de Default Point Entity class et Default SolidEntity class avec respectivement info_player_start et func_detail.
Pour Cordon Texture, mettez tools/toolsskybox.
Sélection des répertoires
Voici les 3 répertoires à utiliser :
Game Executable Directory :$SteamUserDir\garrysmod
Une fois que ceci est fait, validez par le bouton OK, et validez la boite de dialogue :
Fermez Hammer.
Programmes de compilation
Rouvrez Hammer et retournez dans les Options (vérifiez que c'est toujours le mode de jeu Garry's Mod qui est sélectionné). Allez dans l'onglet Build Programs et définissez les chemins comme ceci :
Si vous êtes ici c'est que vous voulez apprendre à créer des maps, c'est-à-dire apprendre à mapper. Mais avant de se lancer dans l'aventure, il est bon de donner quelques informations sur le processus de mapping (création d'une map) ainsi que sur les maps en général.
Tout d'abord une question qui peut paraitre anodine : qu'est-ce qu'une map ?
Une map est un environnement de jeu en 3 dimensions. Cela veut donc dire que le programme que nous allons utiliser, Hammer, est un programme de 3D dont le fonctionnement est similaire à des logiciels de modélisation 3D comme Blender, Maya, 3DSMax... C'est important de le dire, car ce genre de logiciel demande plus de temps d'apprentissage qu'un traitement de texte ou un programme de retouche d'images.
Les étapes de création
Dans un premier temps, nous allons créer un fichier .vmf avec Hammer. Hammer ne travaille d'ailleurs que avec ce format donc vous n'avez pas vraiment le choix. Pour que la map soit jouable, il faudra la compiler, c'est-à-dire convertir le fichier .vmf en un fichier .bsp que le jeu (Half-Life², Left 4 Dead, Counter-Strike...) sera capable de charger. Nous utiliserons aussi Hammer pour compiler.
Quand on crée une map, il est bon de tester fréquemment le résultat, c'est-à-dire de compiler et de tester la map dans le jeu. Tester fréquemment sa map permet de corriger les erreurs rapidement pour éviter de les accumuler. Pour des raisons pratiques, la compilation des maps ne sera abordée que dans la quatrième partie de ce tutoriel. Néanmoins je vous conseille de la lire dès que l'envie vous prend de tester votre début de map (une envie qui viendra assez vite ^^ ).
Chercher de l'aide
Le Source SDK est en anglais, et il n'existe pas de version française, ce qui vous laisse un avant-goût du monde du mapping : quasi tout est en anglais. Il existe bien des sites en français, mais ce n'est jamais vraiment complet. Le meilleur endroit pour vous documenter et chercher des réponses est le Wiki mis en place par Valve. Je vous conseille vivement de vous y référer en cas de problème.
L'environnement de travail est l'espace dans lequel vous allez mapper : c'est Hammer. Vous avez donc lancé Hammer. Allez dans le menu Files puis cliquez sur New, ou faites tout simplement Ctrl+N.
Pour commencer, nous allons un peu analyser les différents composants de l'interface. J'ai numéroté un certain nombre de zones colorées en rouge. L'utilité de ces zones est reprise ci-dessous.
(1)La barre d'outils horizontale : c'est une barre d'outils classique comme on peut en trouver dans la majorité des programmes de bureautique. Elle a pour fonction de mettre à votre disposition toutes sortes de fonctions faciles d'accès. (2)La barre d'outils verticale : cette barre affiche un ensemble d'outils qui nous permettront de mapper. Ils sont indispensables ! Nous y reviendrons plus tard.
(3)Les 4 vues : vue 3D (camera), vue du dessus (top), vue de face (front) et vue de côté (side). Ces 3 dernières vues constituent les vues 2D.
(4)Le panneau des textures : c'est grâce à lui que nous allons pouvoir sélectionner une texture pour un bloc. Ce panneau ne nous sera pas d'une grande utilité, car nous passerons plutôt par un autre panneau (le panneau d'application de textures, que nous ne voyons pas sur l'image).
(5)Le panneau VISGroup : c'est un panneau qui permet de créer des « Groupes de Visibilité ». Ça signifie que vous pouvez rassembler plusieurs objets dans un même groupe, et les masquer, pour ainsi alléger les différentes vues. Nous reviendrons sur ce panneau ultérieurement.
(6)Le panneau de création : ce panneau va nous permettre de sélectionner un type d'entité, de blocs à créer. C'est un peu abstrait. Nous en parlerons dans la prochaine sous-partie.
Les vues 2D
Pour vous expliquer un peu mieux les vues 2D, voici quelques images (elles viennent du tuto de M@teo21 sur le mapping Half-Life 1). M@téo a donc créé un camion et voici les vues 2D :
Le camion vu de dessus (top).
Le camion vu de face (front).
Le camion vu de côté (side).
La vue 3D
La vue 3D est la représentation en 3 dimensions de votre map, c'est-à-dire de vos vues 2D. Elle permet de vous rendre compte de ce que ça donne. La vue 3D possède plusieurs modes d'affichage. Pour y accéder, cliquez sur Camera, en haut à gauche de la fenêtre 3D. Il y a 6 modes d'affichage, mais seulement 3 nous seront utiles : Wireframe, Flat et Textured.
Wireframe n'affiche que les arêtes des blocs de votre map.
Flat affiche votre map, mais sans les textures. Les blocs sont colorés. Ca peut être utile pour repérer des blocs qui dépassent, ou qui posent problème.
Textured affiche tout simplement votre map comment elle sera dans le jeu, mais sans les jeux de lumière. C'est cet affichage-là que nous utiliserons tout le temps.
On n'y trouve pas énormément de choses différentes en fait. On y trouve principalement des blocs, des entités et des displacements. Les entités peuvent servir à insérer d'autres constituants comme des models, des decals et des overlays. Les entités sont de deux types : bloc ou point.
des blocs ;
des displacements ;
des des entités :
des models ;
des decals et des overlays ;
de la lumière, des interactions, des personnages...
Voici une image d ela vue 3D de Hammer, avec différents constituants :
Explications
Les blocs
Une pièce est constituée des blocs : le sol, les murs, le plafond, le chambranle de la porte, et même la vitre. Les blocs (on dit brush en anglais) sont les constituants les plus simples et sont à utiliser pour créer l'architecture de la map. Ils servent à faite le squelette de la map. Les blocs peuvent être convertis en entités point pour leur ajouter des fonctionnalités, comme par exemple créer une plate-forme élévatrice, une vitre cassable, ou un hélice en rotation.
On applique des tetxures sur les faces de blocs
Les models
Dans l'image ci-dessus, on peut apercevoir un radiateur, un moniteur et un néon. Ces trois éléments-là sont des models, c'est-à-dire des éléments en 3D créés à partir d'un logiciel de modélisation comme Blender, XSI ou 3DsMax. Les models sont évidemment plus complexes à créer que des blocs puisqu'ils nécessitent l'utilisation d'un logiciel de modélisation. Les models peuvent être animés (les personnages, comme Alyx, un Terro ou le Soldier de TeamFortress² sont aussi des models). Les models sont partout ! Heureusement, les différents mods possèdent un large éventail de models que vous pourrez utiliser au sein de vos maps.
Voici un screenshot du mod Black Mesa:Source ou l'on peut apercevoir de nombreux models : le shotgun, la rambarde, les néons, les consoles, le boîtier électrique ainsi que le chargeur HEV et le dispenser de soins :
Les models sont aussi des personnages. Voici le rendu d'un Marine dans Black Mesa: Source d'abord non texturé, puis texturé :
Les displacements
Les displacements englobent une technique de création de relief. C'est grâce à eux que vous allez pouvoir créer des décors plus ou moins naturels, comme des montagnes, des rochers arrondis, des trous, des dunes... ou comme dans l'image plus haut, un tas de gravats.
Voici la map pl_upward de Team Fortress². Toute la colline est faite avec des displacements :
Les decals et les overlays
Les decals sont des entités point qui permettent d'apposer une texture sur une autre. On peut les utiliser pour mettre une tâche de sang, des impacts de balles, des panneaux, de la végétation (avec une texture de végétation) sur un mur. Les overlays reposent sur le même principe à la différence près qu'on peu les étirer.
Dans Left 4 Dead, on peut apercevoir de nombreuses affiches placardées un peu partout. Ce sont des decals :
Les entités
Les entités sont des éléments qui possèdent une fonction. Il existe 2 types d'entités : les entités bloc et les entités point. Chaque entité possède un nom et des spécificités différentes. Par exemple, l'entité point prop_static permet d'insérer un model, alors que l'entité point light_spot insère le faisceaux lumineux d'un spot (c'est le "spot" verdâtres dans l'image donné plus haut).
Les entités bloc sont des blocs qui possèdent certaines fonctions. Comme énoncé plus haut, il peut s'agir de plates-formes élévatrices, de vitres cassables... Mais ces entités blocs peuvent aussi être invisibles pour le joueur. C'est le cas d'une zone d'achat dans Counter-Strike par exemple.
Tous ces points seront abordés plus en détail par la suite.
Commencez par créer une nouvelle map, avec Ctrl + N ou via le menu File > New.
Voici les trois outils principaux dont nous allons nous servir :
Cet outil est tout simplement l'outil de sélection. C'est lui qui va nous permettre de sélectionner les différents constituants, dont les blocs ;
Celui-ci, c'est l'outil qui va nous permettre de nous déplacer dans la fenêtre 3D. Son fonctionnement est assez simple : pour avancer ou reculer dans la zone 3D, il suffit d'utiliser la molette de la souris. Laissez le clic gauche enfoncé pour orienter la caméra, et utilisez le clic droit pour effectuer des déplacements latéraux ;
Ça, c'est l'outil de création. C'est lui qui va nous permettre de tracer le contour (en 2D) d'un bloc.
Choix de la texture
Avant de créer un quelconque bloc, il convient de définir la texture dont il sera habillé. Pour cela, dans le panneau des Textures, cliquez sur Browse (Navigation en anglais, qui peut se traduire par Recherche). Une fenêtre s'ouvre alors vous présentant toute une liste de textures.
Heureusement, il existe un système de filtres. Le champ Filtrer va nous permettre de filtrer les textures en fonction d'un ou plusieurs mots-clés. Entrez-y wall par exemple (wall veut dire mur). L'explorateur va alors rechercher toutes les textures de mur. Toutes les textures portent un nom, et dans ce nom figure son type (wall, concrete, metal, wood, floor, nature, citadel...).
Pourquoi ?
Une face en nodraw est une face qui n'est pas affichée et donc qui n'est pas calculée par le moteur Source une fois dans le jeu. Il ne sert donc à rien de lui faire calculer des faces que le joueur ne verra jamais. C'est la raison pour laquelle il est conseillé de créer les blocs avec la texture nodraw et d'ensuite appliquer une texture sur les faces qui seront visibles par le joueur.
Pour sélectionner la texture nodraw, utilisez le filtre. Une fois trouvée, double-cliquez dessus pour la sélectionner et fermer la fenêtre :
Le bloc
Cliquez sur l'outil de création. Placez-vous dans la vue 2D du dessus (top). Cliquez et laissez enfoncé tout en tirant, comme si vous faisiez une sélection dans un logiciel de dessin. Relâchez le bouton.
Votre bloc n'est pas encore créé, ce n'est que son contour qui est fait. Utilisez les poignées de redimensionnement pour modifier sa taille. Modifiez sa taille dans les 2 autres vues 2D. Quand c'est fait, cliquez droit au centre de l'objet, et cliquez sur Create object.
Il se peut aussi que rien n'apparaisse dans la fenêtre 3D. Si c'est le cas, avec l'outil de sélection, cliquez sur le bloc nouvellement créé puis allez dans le menu View et cliquez sur Center 3D Views on Selection. Ce problème peut aussi survenir lors du chargement d'une map (la vue 3D n'affichera rien). Dans ce cas, procédez de la même façon.
Le bloc affiché est noir, je ne vois que les arêtes, pourquoi ?
C'est que la vue 3D n'est pas en Textured. Cliquez sur le petit bouton Camera en haut à gauche de la vue 3D, et sélectionnez Textured.
Quelques astuces
Entraînez-vous à jouer dans la fenêtre 3D : avancez, reculez, tournez... pour vous familiariser ;) Vous pouvez avancer avec les touches W, S, A et D).
Vous pouvez aussi cliquer sur le bouton droit et le bouton gauche en même temps tout en avançant ou en reculant la souris. C'est pratique pour se rapprocher !
Un petit truc bien pratique, dans les vues 2D, est d'enfoncer la touche ESPACE en cliquant. Vous avez ainsi la possibilité de déplacer votre grille.
Pensez aussi à la combinaison Ctrl + E, qui permet de centrer les trois vues 2D sur l'objet sélectionné.
Le combinaison Ctrl + A permet de remettre la taille des quatre vues par défaut.
Vous venez de créer un bloc. Par défaut, ce bloc à la forme d'un parallélépipède rectangle. Mais vous pouvez créer une autre forme, comme un cylindre ou encore une pyramide.
Pour cela, rendez-vous dans le panneau latéral de création, ici :
La liste Objects vous propose la liste des formes géométriques que vous pouvez créer. Suivant la forme choisie, un champ Faces apparaît juste en-dessous. Ce champ vous permet de paramétrer le nombre de faces de votre figure.
Arch : permet de créer une arche. Les options de création d'une arche sont plus complexes, mais vous saurez vous y retrouver assez facilement ;
Block : c'est un bête bloc, la forme géométrique par défaut ;
Cylinder : pour créer un cylindre ;
Sphere : permet de créer une sphère ;
Spike : ça sert à créer des pyramides ;
Torus : c'est un tore, une sorte de beignet creux ^^ ;
Wedge : c'est un triangle en 3D (pas vraiment un triangle donc). On peut appeler ça une cale.
Waw, tu n'es pas très bavard sur tout cela. Pourquoi ?
En effet, et c'est pour une simple raison. Vous vous en sortirez plus facilement avec les blocs simples. Aller faire des sphères et des beignets géants avec des blocs n'est pas vivement recommandé pour des raisons de performances d'affichage. Pour faire des formes arrondies, il vaut mieux utiliser des displacements (que nous verrons par la suite).
Mais un triangle, ça peut être pratique, non ?
Oui, mais pour faire un triangle, je préfère couper un bloc carré en deux. C'est plus simple je trouve (nous verrons comment faire un peu plus loin).
Les vues 2D sont pourvues d’une grille. Celle-ci sert à vous aider à positionner vos blocs et plus tard vos models et vos entités. Par défaut, à l’ouverture de Hammer, la grille est à 64. Vous pouvez voir cette information dans le bas de la fenêtre. C’est l’option intitulée On grid : *nombre*.
Quand la grille est en 64, ça signifie que l’espace entre 2 lignes de la grille vaut 64 unités. Pour vous donner un petit ordre de grandeur, le mur d’un étage d’une maison vaut généralement 128 unités de haut et plus ou moins 16 de large.
Généralement, nous ne travaillerons pas souvent en grille 64. Pour modifier l’unité de la grille, il y a 2 petits boutons dans la barre d’outils horizontale, un + et un - pour augmenter ou diminuer l’unité de la grille :
Le zoom
Toujours dans les vues 2D, vous avez la possibilité de zoomer. Pour zoomer, rien de plus simple : utilisez la molette de votre souris.
Voyons maintenant quelques fonctions utiles pour modifier ce bloc.
Déplacer
Rien de plus simple. Pour déplacer un bloc, cliquez dessus avec l'outil de sélection. Votre curseur devient une croix de déplacement qui va vous permettre de déplacer le bloc.
Redimensionnement
Ça, vous savez comment on fait. Il suffit de prendre l'outil de sélection et de cliquer sur le bloc, aussi bien dans la vue 3D que les vues 2D. Les poignées de redimensionnement apparaissent, et vous n'avez plus qu'à modifier votre bloc.
Rotation
Si vous cliquez une deuxième fois sur un bloc déjà sélectionné, les poignées de redimensionnement disparaissent pour laisser place à des poignées de rotation.
Les 15 degrés
Hammer propose soit une rotation totalement libre, soit une sorte de rotation assistée. Dans la rotation libre, vous faites tourner votre bloc comme bon vous semble. Dans la rotation assistée, vous ne faites tourner votre bloc que par tranche de 15 degrés. Je vous conseille fortement de travailler en 15°.
L'étirement
Pour passer en mode d'étirement, cliquez une troisième fois sur votre bloc. De nouvelles poignées apparaissent. Elles vont vous permettre d'étirer (ou d'incliner) votre bloc.
Sélection multiple
Vous pouvez sélectionner plusieurs objets en appuyant sur la touche Ctrl en même temps que vous cliquez sur les blocs.
Vous pouvez également tracer votre sélection. Pour cela, faites comme si vous créiez un bloc : tracez un rectangle avec l'outil de sélection. Utilisez les vues 2D pour lui faire englober tout ce que vous voulez sélectionner.
Une fois que tout est bien en place, tapez Enter sur votre clavier.
Supprimer
Cliquez sur l'objet que vous souhaitez supprimer, et tapez sur Delete, rien de plus simple ^^
Création homologue
C'est un système de création de bloc assez pratique. Par exemple, vous avez un bloc d'une certaine hauteur, et vous souhaitez créer un autre bloc ayant la même hauteur que celui-là, mais pas la même largeur.
Commencez par cliquer, avec l'outil de sélection, sur le bloc de départ. Hammer, sans rien vous dire, va en quelque sorte retenir les dimensions de ce dernier. Prenez l'outil de création, et dessinez votre bloc dans la vue du dessus (top). Comme par miracle, Hammer assignera au bloc la même hauteur que le bloc précédemment sélectionné. Il n'a évidemment pas la même largeur puisque vous venez de la tracer manuellement dans la vue du dessus (logique ça ^^ )
La duplication
Pour dupliquer, il y a le fameux Copier-coller. Mais je dois dire que ce n'est pas pratique.
Hammer vous propose la duplication par déplacement. Pour cela, sélectionnez, dans une des vues 2D, un bloc. Appuyez sur la touche Majuscule et sur une touche directionnelle (attention, n'appuyez qu'une seule fois). Votre bloc est maintenant dupliqué, et déplacé d'une largeur de grille.
Jusqu'à présent, je vous ai dit de toujours créer vos blocs avec la texture nodraw. C'est très bien, et on va continuer à apprendre de cette façon. Cependant, mettre des textures est essentiel pour créer sa map, si l'on veut jouer un jour dessus !
Pour ce faire, reprenons notre bon vieux bloc carré. Cliquez sur l'outil d'application de textures :
. Une belle nouvelle fenêtre s'ouvre alors avec tout un tas d'options barbares. Cette fenêtre, tant que maintenant, n'a aucune utilité. Remarquez que votre curseur de souris a changé d'aspect :
. Avec ce nouveau curseur, vous allez cliquer sur une face de votre cube :
La face sur laquelle vous avez cliqué devient alors plus foncée : elle est sélectionnée, et les paramètres de cette face s'affichent dans la fenêtre.
Dans la fenêtre, cliquez simplement sur Browse pour rechercher une nouvelle texture à appliquer sur la ou les faces sélectionnées. Une fois la nouvelle texture trouvée et sélectionnée, cliquez sur le bouton Apply.
Options disponibles
Texture scale : c'est l'échelle de la texture. Une valeur de 1 signifie que la texture n'est pas étirée. A 0.25, la texture est étirée négativement, elle est donc plus petite que la normale. Sous le moteur Source, on laissera généralement une scale de 0.25. On passe parfois à 0.5 ou 1 dans le cas de décors lointains.
Texture shift : c'est le décalage de la texture par rapport à sa position d'origine, sur les axes X et Y. Cette option sert à aligner la texture très précisément.
Boutons Justify : ce sont des petites fonctions d'alignement de la texture, qui peuvent remplir automatiquement Texture shift. Cette zone est composée des fonctions suivantes :
L (left - aligner à gauche)
R (right - aligner à droite)
Fit (adapter l'étirement de la texture aux dimensions de la face)
T (top - aligner en haut)
B (bottom - aligner en bas)
C (center - centrer la texture)
World et Face : ce sont deux options un peu spéciales. Généralement, les 2 options sont cochées dans le cas d'une face horizontale ou verticale. Si la face est oblique (un triangle par exemple), une seule sera cochée. Vérifiez bien que 2 faces aient la même option de cochée si les textures refusent de s'aligner. L'option face est en fait une sorte d'effet miroir de la texture, elle est inversée.
Bien sur, Rotation est l'angle d'inclinaison de la texture :)
Entraînez-vous à faire des blocs et à leur appliquer des textures, à les aligner...
Je ne sais pas si vous l'avez remarqué, mais il y a des textures bizarres, quand vous tapez tools dans l'explorateur de textures.
Les textures tools sont des textures qui possèdent une fonction. Quand elles sont appliquées sur un bloc, ce bloc n'est plus considéré comme un simple bloc, il possède une fonction.
Vous remarquerez aussi que la texture nodraw que je vous fais utiliser est une texture spéciale. En effet, dans le jeu, une face de bloc avec cette texture ne sera tout simplement pas affichée, et donc pas calculée par le moteur Source. C'est en fait une technique pour alléger les calculs du moteur. Nous mettons du nodraw SUR TOUTES LES FACES QUE LE JOUEUR NE VOIT PAS. Cette technique est une technique dite d'optimisation. Il y en a plein d'autres, mais celle-ci est la plus élémentaire, et c'est pourquoi il est bon que vous l'adoptiez dès le début :) C'est juste pour vous simplifier la vie que je vous ai dit de créer des blocs directement avec la texture nodraw. Vous n'avez plus qu'à mettre une belle texture sur les faces visibles pour le joueur.
Je vais vous parler ici de quelques autres textures spéciales qui peuvent être utiles. En règle générale, seul nodraw n'a pas besoin d'être appliquée sur toutes les faces d'un bloc. C'est la seule, avec hint et skip.
C'est juste une texture noire. Elle n'est pas affectée par la lumière. C'est utile pour faire le fond d'un couloir qui s'enfonce dans les ténèbres ^^
Cette texture bloque les balles (et le joueur aussi)
Cette texture bloque la lumière
Le bloc est invisible, mais il est aussi physique, le joueur et les objets peuvent butter contre. Très pratique pour empêcher l'accès à une zone quelconque.
Le bloc est invisible, mais il est physique, le joueur peut butter contre. Un bloc avec cette texture peut être utilisé comme entité bloc.
Un bloc avec cette texture est une échelle invisible. Ca ne marche que dans Counter-Strike Source (faire une échelle est plus complexe dans les autres mods).
Bah, je vous en ai déjà parlé ^^
Même utilisation que clip, mais ici, c'est seulement pour les joueurs
C'est une texture que l'on met sur les blocs qui nous serviront à créer des déclencheurs. Par exemple, si le joueur passe dedans, alors, tout explose (je suis sadique, moi ? :D )
Pour mettre du ciel dans une map, on utilise la texture toolsskybox. Un bloc de ciel doit être complètement recouvert de cette texture.
Environnement hermétique
Retenez bien ceci : votre map doit toujours être fermée ! Ça signifie que durant le jeu, le joueur ne doit pas pouvoir apercevoir le noir, le vide. Bien sur, dans une map qui se passe complètement à l'intérieur d'un bâtiment, c'est assez facile de fermer la map.
Dans une map qui se déroule à l'extérieur, on va fermer la map avec des blocs de ciel, c'est-à-dire des blocs avec la texture skybox. Regardez cette image, c'est la map de_cbble fournie avec le SDK :
Comme vous le voyez, le mappeur a fermé la map avec des blocs de ciel :)
Dans le jeu, cette texture sera remplacée par une texture de ciel spéciale.
Donc, votre map doit toujours être fermée. Si vous laissez un trou, même d'une seule unité, la compilation de votre map plantera : on dit alors qu'on a un leak.
La texture de ciel
Dans l'explorateur de textures, recherchez toutes les textures appelées skybox. Les textures de ciel s'appellent toujours comme ceci : skybox/nomface.
Une texture de ciel est en fait un jeu de 6 textures : 4 côtés, le bas, et le dessus. Face est tout simplement une indication de 2 lettres, qui permet de définir sur quelle face sera appliquée la texture. Par exemple, pour le ciel de cs_assault, la texture se nomme skybox/assault (on enlève juste les 2 lettres finales). Donc, finalement, le nom de la texture est simplement assault.
Définir la texture
Pour appliquer la texture de cs_assault sur votre map, c'est très simple. Allez dans le menu Map, puis dans Map properties. Cliquez sur SkyBox Texture Name, et entrez le nom de la texture, c'est-à-dire assault.
Mauvaise technique
Parfois il n'est pas facile de repérer l'endroit où se trouve le leak, et le mappeur fait ce que l'on appelait, sous Half-Life1, une Skybox, c'est-à-dire qu'il englobait la map dans un bloc de ciel vide. C'est évidemment un technique à proscrire, y compris pour Half-Life 1 (mais ça on s'en fout ici ^^ ). C'est très mauvais, car le compilateur de visibilité (vvis) et de luminosité (vrad) va croire que votre map n'est pas finie, et va calculer des endroits que le joueur ne devrait pas voir, ce qui fait énormément de travail inutile.
Quelque chose de très difficile quand on commence à mapper, outre le fait de devoir prendre en main Hammer, est de s'y retrouver dans les dimensions. Je me souviens de mon premier test, du temps d'Half-Life 1. J'avais fait une petite maison, et les marches de l'escalier étaient si hautes que je ne savais pas les monter ^^ .
Si vous joué à Day Of Defeat, Team Fortress³ ou Counter-Strike, vous avez certainement déjà croisé des maps dites "orange", caractérisées par des textures orange. Outre le fait que ce soit laid, ne nous êtes-vous jamais demandé pourquoi le jeu incluait des textures orange ?
Eh bien ces textures sont en fait des textures de développement, dites "textures de dev". Certaines textures de dev présentent des indications qui aident le mappeur à s'y retrouver dans les dimensions. C'est ce que nous allons voir maintenant.
Les textures de base
Il y a deux textures de bases principales, qui sont souvent utilisées dans les maps orange :
dev_blendmeasure : texture carrée grise, à utiliser pour le sol
dev_measuregeneric01 : texture orange de base, à utiliser pour les murs et certains revêtements ne demandant pas de mesures précises
Les murs
128, le standard
Sous la quasi-totalité des jeux Source, un mur d'un étage fait 128 unités de haut. La texture dev_measurewall01a est une texture carrée de 128*128 que vous pouvez utiliser pour texturer vos murs. Le truc pratique c'est que les vrais textures de mur font aussi 128*128 comme grandeur (parfois le double), autrement dit ça vous donne une bonne idée du rendu de votre mur.
Les caisses
D'autres textures peuvent servir de mesure, notamment les textures dev de caisses . Voici les 4 principales :
64*64 : dev_measurecrate01 : un demi-mur, ou une très grosse caisse
48*48 : dev_measurecrate03 : un muret assez haut. Le joueur peut sauter dessus en s'accroupissant
32*32 : dev_measurecrate02 : un petit muret. Le joueur peut sauter dessus sans s'accroupir
Une porte
dev_measuredoor01 représente une porte. Vous pouvez donc l'utiliser pour créer un bloc aux dimensions d'une porte standard. Vous devez aussi penser à découper le chambranle, comme indiqué avec les mesures précises sur la texture.
Un escalier
Voilà aussi un sujet assez déroutant pour les débutants : la taille des marches ! Qu'à cela ne tienne, il existe la texture dev_measurestairs01a qui vous aidera à vous représenter l'escalier et à découper le bloc sans problèmes.
Il existe d'autres textures comme la texture de rampe ou de rambarde ainsi qu'une texture d'échelle. Elles sont moins utiles, et je vous laisse les découvrir par vous-même.
Le wiki de Valve donne des informations concernant les dimensions dans Half-Life². Ces dimensions sont globalement les mêmes dans les différents mods. Je vous propose ici de voir quelques dimensions intéressantes, qui vous aideront à vous familiariser avec les grandeurs.
Système métrique
Hammer travaille en unités, et il est possible de savoir combien de mètres font une unité. Ce n'est pas super important, mais ça peut quand même vous être utile. Voici donc une table avec les données :
Unités
Mètres
Utilité remarquable
1
1 cm
2
4 cm
4
8 cm
Hauteur d'une bordure
8
15 cm
Hauteur de marche d'escalier
16
30 cm
32
60 cm
64
1 m 20
128
2 m 40
Mur d'un étage
256
4 m 90
Double mur
512
9 m 80
Les joueurs
Faire un conduit, un petit passage... c'est bien, mais encore faut-il savoir la taille des joueurs !
Obstacle au sol
Les joueurs peuvent franchir automatiquement (sans qu'il ne doive sauter) une hauteur de 18 unités, et ce que le joueur soit debout ou accroupi.
Passer sous
Debout, un joueur peut passer, sans s'abaisser sous une hauteur de 73 unités. Accroupi, il ne peut passer sous une hauteur de 37 unités.
Passer entre
Côté largeur, un joueur peut passer entre deux blocs éloignés de minimum 33 unités. Ainsi, un conduit d'aération doit au minimum faire 33 unités de large et 37 unités de haut.
Pente
A partir d'une inclinaison de 45 degrés, il n'est plus possible aux joueurs de grimper dessus.
Utiliser des objets
Un joueur prend automatiquement un objet si le centre de cet objet se trouve à 25 unités de lui ;
Un joueur peut "Utiliser" un objet, un bouton, une porte... à partir de 82 unités.
Le Source SDK n'embarque pas de documentation (il faut aller sur le Wiki de Valve pour ça) mais embarque en revanche toute une série de maps d'exemple, portant le préfixe sdk_. Ces maps d'exemple se trouvent dans le dossier sourcesdk_content\hl2\mapsrc (à partir de votre dossier de profil Steam).
Les maps techniques
Ce sont des maps qui expliquent (enfin, "expliquent" est un bien grand mot ^^ ) certaines techniques comme la manipulation des cubemaps, la création d'une grue avec un électro-aimant... c'est souvent assez complexe pour votre niveau actuel. Ces maps ne sont pas souvent belles (souvent texturées en orange), puisque leur but est d'expliquer, pas de passer un concours de beauté ^^ .
Les maps du jeu
Ici c'est déjà plus intéressant ! Il s'agit de maps tirées d'Half-Life² (et une de Half_life² Deathmatch). Ce sont donc des maps complètes que vous pouvez ouvrir avec Hammer pour regarder comment c'est fait. Je vous le dit tout de suite, ce sera compliqué de vous y retrouver au début ^^ . Voici la liste des maps que vous pouvez ouvrir, et je vous conseille de commencer par sdk_dm_lockdown qui est une map HL²DM, et donc un peu plus simple que les maps HL² (car pas de gestion des changements de niveau, de ciel en 3D...).
sdk_dm_lockdown.vmf ouverte dans Hammer
sdk_dm_lockdown.vmf : c'est la map HL²DM, et elle se trouve dans le dossier sourcesdk_content\hl2mp\mapsrc
sdk_background.vmf : elle est petite et plutôt vide, et est destinée à être chargée en arrière-plan du menu d'HL²
Il est temps de nous pencher sur différentes méthodes pour manipuler les blocs. On va en voir deux mauvaises, une bonne et une qui peut créer des problèmes, mais qui est d'une efficacité redoutable... eh oui, on n'a rien sans rien !
Le Clipping Tool est un outil de découpe. Il permet de couper des parties de bloc afin d'obtenir un bloc avec une forme plus complexe. C'est un outil extrêmement pratique. Nous allons donc voir comment nous en servir.
Commencez par créer un bloc. Une fois que c'est fait, sélectionnez votre bloc et prenez l'outil de clipping :
.
Maintenant, dans la vue 2D de coté (side) (ou une autre, comme vous voulez ^^ ), cliquez au milieu d'une arête, et maintenez le clic enfoncé. Déplacez votre souris vers l'arête perpendiculaire à la première. Une sorte de sélection blanche suit votre déplacement. Relâchez le clic une fois que vous êtes arrivé sur l'autre arête.
La zone « sélectionnée » en blanc sera la partie du bloc que vous allez conserver. Si vous préférez conserver l'autre partie, recliquez sur l'outil clipping pour inverser la sélection.
Quand tout est OK, faites Enter, sur votre clavier.
Votre bloc est maintenant clippé.
La troisième position
Je vous ai dit que si vous recliquiez sur l'outil de clipping, la sélection était inversée. Si vous recliquez une troisième fois dessus, tout se sélectionne et les 2 parties du bloc sont conservées, mais deviennent deux parties indépendantes :
Déplacement de la ligne de coupe
Avant de valider par Enter, vous pouvez modifier comme bon vous semble la position de la ligne de coupe. Il suffit pour cela de cliquer sur une des extrémités de la ligne et de la déplacer ;)
Un petit exercice
Il est important que vous vous familiarisiez avec l'outil clipping. Pour cela, je vais juste vous demander de reproduire la forme suivante (elle est évidemment faite de plusieurs blocs clippés (coupés) :
Moi, j'ai fait un bloc que j'ai coupé en 4 petits blocs. J'ai coupé ceux-ci par la suite. Vous pouviez très bien créer directement les 4 blocs et les couper après ;)
L'outil Carve, qu'on appelle souvent "carving" est à proscrire. Si j'en parle ici, c'est pour vous dire qu'il existe mais qu'il est mauvais de l'utiliser. L'outil Carve permet de trouer un bloc à l'aide d'un autre bloc. Voici les étapes :
Dans un premier temps, on a deux blocs : le bloc carvé est le gros vert, et le carvant est le bloc turquoise :
Ensuite, le but du jeu est de percer un trou dans le bloc carvé. Pour cela, on déplace le bloc carvant à l'intérieur du bloc carvé :
Dans une des vues 2D, on clic droit sur le bloc carvant et on clic sur Carve. Il ne reste plus qu'à retirer ou supprimer le bloc carvant. Si on sélectionne le bloc carvé on se rend compte qu'il a été découpé et que la partie qui était occupée par le bloc carvant n'existe plus :
Avec deux cubes, la structure obtenue n'est pas encore trop mauvaise. Mais si vous tentez l'expérience avec des cylindres, ça peut virer au cauchemars. Pour plus d'informations, voyez ce tutoriel d'optimisation, paragraphe Carve.
Le Hollow
Tout comme l'outil Carve, le Hollow n'est généralement pas conseillé. Il peut être utilisé pour aller plus vite, mais attention aux erreurs !
L'outil Hollow sert tout simplement à évider un bloc. Pour l'utiliser, sélectionnez un bloc (un gros bloc, qui fait tout le volume de votre pièce. Ensuite, cliquez droit sur le bloc dans une des vues 2D, et sélectionnez Make Hollow (ou Ctrl + H) :
Hammer vous demande l'épaisseur des murs ; Hammer va évider le bloc pour ne garder que 6 petits blocs qui feront office de murs, plafond et sol. C'est l'épaisseur de ces murs qu'il vous demande. 32 ou 16 sont de bonnes valeurs pour l'épaisseur d'un mur.
Vous pouvez spécifier une valeur négative. Dans ce cas, les 6 nouveaux blocs seront crées à l'extérieur du gros bloc (le volume déterminé par le gros bloc est alors le volume réel de la pièce). Voici 3 petits screens (en vue Top) pour illustrer ça :
Comme je l'ai dit, évitez le Hollow, et privilégiez la méthode suivante avec le Clipping Tool.
C'est ma technique préférée : créer un gros bloc - exactement comme pour l'outil Hollow - puis le découper comme je le veux avec le Clipping Tool. Pour ce fait, vous devez savoir utiliser le Clipping Tool de façon rapide, de manière à ce que cette méthode se révèle plus rapide que la création manuelle de 6 bloc séparés.
C'est un peu difficile de donner des screens pour illustrer, donc je vais juste vous expliquer la méthode de coupe que j'utilise.
passer le Clipping Tool en mode 3 (pour conserver les deux parties)
dans une des vues 2D de face ou de côté, couper horizontalement le bloc deux fois de suite (le sol et le plafond)
toujours dans une des vues 2D de face ou de côté, sélectionner le bloc du milieu, et couper deux fois pour obtenir deux murs
ensuite, passer en vue 2D Top, sélectionner le bloc du milieu et couper deux fois
pour terminer, supprimer le bloc du milieu qui ne sert plus à rien
Et théoriquement, vous devriez obtenir une belle pièce qu'il ne reste plus qu'à texturer :) .
Le Vertex Tool est un outil qui va nous permettre de créer des formes encore plus complexes qu'avec le Clipping Tool. Le Vertex Tool va nous permettre de déplacer les sommets et les arêtes d'un bloc.
Allez, on va commencer à jouer avec le Vertex Tool.
Créez un bloc et sélectionnez-le. Cliquez sur l'outil vertex :
Voyez, les sommets de votre bloc sont représentés par des carrés blancs et les milieux des arêtes par des carrés jaunes.
Dans une vue 2D, cliquez sur un sommet, et déplacez-le pour voir ce que ça donne :) Pour valider la modification, il suffit de cliquer sur l'outil de sélection.
En réalité, dans la vue 2D, vous ne déplacez pas qu'un sommet, mais plusieurs : vous déplacez tous les sommets qui sont dans l'alignement de celui sur lequel vous avez cliqué. Si vous ne souhaitez en déplacer qu'un, il vous suffit de le cliquer dans la vue 3D, et de le déplacer au moyen d'une des vues 2D.
Vous pouvez aussi déplacer un sommet sur un autre. Hammer va alors vous demander si vous voulez rassembler les 2 sommets en un seul :
Cette technique, je l'utilise souvent pour créer des triangles et autres formes moins courantes, comme les trapèzes par exemple.
D'ailleurs, pour vous exercer, vous allez créer un trapèze en 3D :) . C'est assez simple : à partir d'un bloc carré ou rectangulaire, il suffit de rapprocher les sommets du dessus vers le centre. Voici donc l'objet à reproduire (la vue 3D est en Wireframe) :
Quand vous manipulez des blocs avce le Vertex Tool, et dans une moindre mesure le Clipping Tool, certains "bugs" peuvent apparaître. Ces problèmes empêcheront Hammer de compiler votre map, ce qui peut être assez ennuyeux. Néamoins, ces bugs sont généralement simples à corriger, car Hammer vous les indiquera, notamment avec la commande Alt + P qui affiche les erreurs de la map.
Voyons donc les 3 erreurs qui peuvent apparaître quand on fait joujou avec les vertex !
Brush outside world
Traduction : un bloc est en dehors du monde.
C'est assez rare qu'un bloc se retrouve en dehors de la grille de Hammer, en revanche, il arrive parfois que les sommets d'un bloc ne soient pas alignés sur le grille de Hammer. On le vérifie en mettant la grille en grandeur 1. Ce genre de bug se produit quand vous opérez plusieurs modifications, notamment des redimensionnements sur des blocs complexes.
Voici un exemple :
Brush with coplanar faces
Traduction : un bloc possède des faces coplanaires.
Un bloc possède des faces qui se situent dans le même plan. Cela se produit généralement quand vous déplacez un sommet dans le même plan que deux autres. Par exemple, ce cube dans lequel je vais déplacer le sommet sélectionné (en rouge) ;
Le problème des faces non-planes est courant. Ce problème survient quand on déplace un sommet et qu'on le place dans un autre plan. Le face définie par ce sommet se retrouve alors dans une drôle de posture : elle n'est plus plate. Or, une face non plate, ce n'est pas acceptable ! Voici comment créer une telle surface...
En prenant un cube, il suffit de sélectionner un sommet dans la vue 3D, et de le déplacer via une des vues 2D, comme ceci :
>
On obtient alors une forme géométrique "hybride" qui ne ressemble à rien :
Quand on va compiler la map, le compilateur va se retrouver avec la face du dessus qui se trouve dans deux plans géométriques différents. J'ai coloré l'image pour bien montrer les deux plans de la face supérieure :
Ce problème de face non-plane est fréquent quand on déplace des sommets et il faut y faire attention. Ci-dessus, j'ai mis une texture de caisse, donc on voit clairement qu'il y a un problème. Mais, avec une texture de sol ou de mur, il peut être plus difficile de déceler le problème :
On ne constate pas que la face du dessus n'est pas valide. Si vous faites Alt + P, Hammer vous affichera l'erreur Invalid solid structure. Hammer peut corriger le problème si vous cliquez sur le bouton Fix, mais il y a 90% de chances que Hammer produise une structure inadaptée. Il vous faudra donc supprimer le bloc et le recréer, tout simplement.
Je vous proposerais bien de faire une maison, mais c'est un peu nul. Mon idée est donc de recréer une des salles de la prison de Nova Prospekt, dans Half-Life², car j'ai particulièrement apprécié ce chapitre. La salle que je vous propose de créer est assez simple, mais sera un bon entraînement.
Le sol
On va commencer par créer le sol. Mettez la grille de Hammer en taille 32, et créez un bloc de 512 unités de large, et 768 de long. Pour l'épaisseur, mettez ce que vous voulez, 64 par exemple. Sur la face supérieure, appliquez-lui la texture concrete/concretefloor013a :
Les murs du rez-de-chaussée
Après le sol, les murs. Un mur "normal" fait 128 unités de haut. Pour leur épaisseur, 24 unités conviendra, mais il vous faudra changer la taille de la grille : mettez-là à 8. Construisez les 4 murs de la salle, en faisant en sorte que leur arrête inférieure "côté sol" soit bien en contact avec ce sol. Appliquez la texture plaster/plasterwall034c sur les faces intérieures des murs :
Astuces
Une fois que vous avez créé un premier mur, dupliquez-le, avec la combinaison Majuscule + Flèche directionnelle, et déplacez-le ensuite à l'endroit voulu, avec la souris ou les flèches directionnelles. Ça vous évite de devoir redessiner un bloc, ce qui est une perte de temps.
N'oubliez pas qu'avec l'outil d'application de textures, vous pouvez sélectionner plusieurs faces en même temps, en maintenant le touche Ctrl enfoncée tout en cliquant sur les faces.
Les murs de l'étage
Une prison a des murs plus hauts qu'une maison, d'autant plus qu'il s'agit d'une grande salle dans laquelle nous ajouterons une passerelle. Sur nos 4 murs, nous allons monter 4 nouveaux murs, toujours de 128 unités de haut. Il faut savoir qu'en mapping, il es rare de faire de très grands blocs. On privilégiera généralement des blocs de petite taille pour pouvoir mieux jouer avec les textures. Les faces intérieures de ces 4 nouveaux murs seront texturées avec plaster/plasterwall034b, ce qui va permette de faire une continuité entre la texture du bas et la texture du haut :
Le plafond
Ici, c'est l'inverse du sol... On utilisera la texture plaster/plasterceiling008a pour la face visible du plafond. Tout comme le sol, une hauteur de 64 me semble bonne, bien qu'en réalité vous pouvez mettre ce que vous voulez :
Colonnes et poutres
En mapping, le plus gros souci est de trouver des idées pour "meubler" les salles. Ici, je vous propose d'ajouter 3 colonnes qui soutiennent une poutre. Le côté droit restera libre, car nous y ajouterons une passerelle par après. Les poutres et colonnes ressembleront donc à des L retournés :
Pour faire ça, il nous faudra 3 blocs : la poutre, la partie inférieure de la colonne et la partie supérieure (pour pouvoir mettre des textures différentes). Pour vous simplifier la vie, créez une première structure, que vous dupliquerez par après.
Les poutres et colonnes sont carrées, avec une largeur et une profondeur de 24 unités. Travaillez en taille de grille 8. Laissez une espace de 128 unités sur la droite, et texturez avez les mêmes textures que les murs. Pour la poutre, utilisez la texture plaster/plasterwall034a :
Pour finaliser la colonne/poutre, on va utiliser le Vertex Tool pour créer un angle à 45 degrés au niveau de l'intersection entre la poutre et la colonne. Cette technique vise simplement à réduire le nombre de faces invisibles (ce qui occasionnera moins de calculs pour l'affichage) :
Pour finir, sélectionnez vos 3 blocs, faites Ctrl + G pour les grouper. Dupliquez-les 2 fois pour obtenir 3 structures, et répartissez-les sur l'espace de votre salle : un au milieu (repérez-vous avec la petite croix au centre du bloc du "sol") et deux de part et d'autre. Vous devriez obtenir ceci :
On va maintenant mettre en place une passerelle assez simple. Commencez par tracer un bloc de 8 unités de haut, dont le dessus du bloc se trouve à la même hauteur que le dessus du mur du rez-de-chaussée, comme ceci :
Réduisez la taille de la grille, et prenez l'outil Clipping Tool. Avec ce dernier, on va couper la passerelle aux intersections avec les colonnes. Pour chaque colonne, coupez deux fois, à gauche et à droite :
Vue Top
Vous obtenez donc 3 gros blocs, et 3 autres plus petits, de la largeur des colonnes. Maintenant, agrandissez les 3 plus grands blocs pour les faire venir de part et d'autre des colonnes, comme ceci. Dès que c'est fait, placez une autre passerelle au fond de la pièce, et commencez à texturer les faces visibles, ce qui devrait vous donner plus ou moins ça :
Bon, on a une plate-forme en hauteur, mais il manque quelque chose pour y accéder. Nous aborderons les échelles par la suite, car elles ne sont pas toujours simples à mette en place et requièrent le maniement des entités, ce qui n'a pas encore été abordé. On va donc faire un escalier.
Une marche d'escalier fait généralement 8 unités de haut, sur 24 unités de profondeur. Quand à la largeur, c'est comme vous voulez, 128 pour un double, et 64 pour un simple escalier. Ici, les marches feront 128 unités de large pour coller avec la largeur de la passerelle.
Commencez par créer une première marche, celle du dessus. Comme je l'ai dit, 8 unités de haut, 24 de profondeur et 128 de largeur. Avec le Vertex Tool, transformez la marche en un triangle. Le côté incliné sera la "face" arrière de l'escalier :
Dès que c'est fait, texturez les faces avant et supérieure de la marche, avec la texture concrete/concretestair005a. Mais ici, il va falloir chipoter avec les réglages de la texture pour l'aligner correctement :
Activez le Texture Lock et dupliquez et la marche (avec Majuscule + Flèche directionnelle) et déplacez la copie. Répétez ça jusqu'à obtenir un escalier jusqu'au sol :
Désactivez le Texture Lock. Sélectionnez les faces arrières des marches, et appliquez leur une texture de plafond. Pensez à aligner les textures (mettez 0 à X et Y dans les cases Texture shift du panneau de propriété des textures.
Il ne nous reste plus qu'à placer un bloc pour fermer l'escalier du côté gauche. Faites un bloc de 4 unités de large que vous placez du côté gauche de l'escalier. Avec le Vertex Tool, modifiez le bloc pour qu'il épouse la forme de l'escalier :
Texturez le bloc avec la même texture que celle des marche, pour obtenir ceci :
En ce qui concerne les face gauches et droite du bloc, il vous faudra modifier l'angle (j'ai mis 35°) de la texture.