Version en ligne

Tutoriel : Une map pour le moteur Source avec Hammer 4

Table des matières

Une map pour le moteur Source avec Hammer 4
Le Source SDK et l'Authoring Tools
Choix du SDK
Configuration du Source SDK
Ajouter un mod : Garry's Mod
Faire une map ?
Avant toute chose
L'environnement de travail
Les constituants d'une map
Créer des blocs
Création d'un bloc
Formes géométriques
Grille et zoom
Opérations génériques
Les textures
Application
Textures spéciales
Le ciel et ses textures
Les dimensions dans l'œil
Les textures de dev
Les dimensions
Les maps du SDK
Modification de blocks
Clipping Tool
Carve et Hollow
Vertex Tool
Dangers du Vertex Tool
Une première pièce pas à pas
La salle
La passerelle
L'escalier
La balustrade
Portes et fenêtres
Les displacements
Petites explications
Paint Geometry
Paint et Invert Alpha
Noise et Sew
Subdivide
Techniques avancées
Décals et overlays
Les décals
Les overlays
Les entités
Entités-point & entités-bloc
Paramètres principaux
Outputs et Inputs
Départ d'un joueur
Aventure solo
Le cas de HL²DM
Les cas de CS:S et DOD:S
Les models
Les models statiques
Les models physiques
Les models respawnables
Visibilité d'un model
La lumière
Une lampe simple
Les spots
Les faisceaux lumineux
Le soleil
Un peu d'électricité
Les câbles
Les étincelles
Un petit laser fixe
La lampe qui balance
Les déclencheurs [1]
Le trigger_once
Le trigger_multiple
Le logic_auto
Le compteur
Les déclencheurs [2]
Le bouton
La VALVe
Relais d'appels
Filtres d'activation
Monter et descendre
Un escalier sadique
Les échelles
Les échelles de CS:S
Les murs
L'entité de brush
Les blocs cassables
Les vitres
Les cubemaps
Les portes
Porte translative
Porte rotative
Porte model
Porte et vanne
L'eau
Eau de base
L'eau qui monte
Hydroglisseur
La sonorisation
Son d'ambiance
Les soundscapes
Téléportation
Principe
Mise en place
Les connexions
Les déclencheurs [3]
Opérateurs de condition
Opérateur de comparaison
Opérateur temporel
Burn them, Brother !
Préparation de la map
Préparation des entités
Mise en place des outputs
Détecter les flammes, ainsi que le shoot
Éléments naturels et fumées
Intempéries
Cheminée avec fumée
Du vent et des bourrasques
Le brouillard
Afficher du texte à l'écran
Le game_text
L'env_message
Le point_message
Les path_track
Que sont les path_track ?
Tracer l'itinéraire
Maintenant, le train
Avec un aiguillage
Mouvement perpétuel
Les NPC
Que sont les NPC
Jouer avec les NPC
Blesser, soigner et recharger
Blesser
Soigner et recharger
[HL² Solo - DM] Armes et munitions
Armes à terre
Armes par défaut en solo
Armes par défaut en multijoueurs
Supprimer armes et items
[HL²DM] Le mode coopératif
Le respawn sélectif
Les NPC en coop
Trucs et astuces
[CS] Les types de maps
Les maps CS_
Les maps DE_
Les maps FUN_
[CS] Entités spécifiques
Les zones d'achat
Faire un étang
Les armes
[TF] Entités spécifiques
Zones de régénération
Munitions, métal et soins
Filtre d'activation
Chambres de respawn
Forcer le respawn
[TF] Gestion du jeu
Les points de capture
Gestion du timer
Fin de round et fin de partie
Les maps CTF
Les maps CP
[TF] Payload GoldRush
Préparation du terrain
Le chemin de fer
This cart is a train
L'avancée du charriot
[Portal] Au coeur d'Aperture
Une salle de test
Salle d'observation
Un peu d'optimisation
Détails et relief
[Portal] Entités spécifiques
Le PortalGun
Les portails
Les murs anti-portails
Les tourelles
Les caméras
Compilation de la map
Introduction
Compiler via Hammer
Test de la map
Help, ça plante !
Avant de compiler
Analyse du log
Bug au lancement
Leak et Cordon Tool
Le leak
Cordon Tool
Le VISGroup
Introduction
Utilisation
Décompiler une map
Notes sur la décompilation
Décompiler une map
Les fichiers GCF
Que sont les fichiers GCF ?
Utiliser GCFScape
Problèmes éventuels
Utilisation d'une carte graphique ATI

Une map pour le moteur Source avec Hammer 4

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 :

Image utilisateur

Dans l'ordre : Counter-Strike: Source, Insurgency, Team Fortress², Half-Life², Portal, HL² Episode 2, Left 4 Dead, Day of Defeat: Source

Le Source SDK et l'Authoring Tools

Choix du SDK

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 !

Choix du SDK

Le Source SDK et l'Authoring Tools Configuration du Source SDK

Choix du SDK

Source SDK et Authoring Tools

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.

Image utilisateur->Téléchargement->Image utilisateur

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 choisieImage utilisateur

Que vous utilisiez le Source SDK ou un des Authoring Tools, trois logiciels sont présents :

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 :

Dans le panneau du SDK, choisissez la version de Source à utiliser (Engine Version), en fonction du jeu pour lequel vous allez mapper.

Image utilisateur

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.

Lancez Hammer !


Le Source SDK et l'Authoring Tools Configuration du Source SDK

Configuration du Source SDK

Choix du SDK Ajouter un mod : Garry's Mod

Configuration du Source SDK

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.


Choix du SDK Ajouter un mod : Garry's Mod

Ajouter un mod : Garry's Mod

Configuration du Source SDK Faire une map ?

Ajouter un mod : Garry's Mod

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.

Image utilisateur

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 :

Image utilisateur

Cliquez sur OK. Voici maintenant ce que vous devriez avoir dans la boîte d'édition des configurations :

Image utilisateur

Cliquez sur Close, pour fermer la boîte. Dans la liste déroulante de la fenêtre d'Options, sélectionnez Garry's Mod :

Image utilisateur
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 :

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 :

Voici ce que vous devriez avoir :

Image utilisateur

Une fois que ceci est fait, validez par le bouton OK, et validez la boite de dialogue :

Image utilisateur

Fermez Hammer.

Programmes de compilation

Image utilisateurRouvrez 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 :


Configuration du Source SDK Faire une map ?

Faire une map ?

Ajouter un mod : Garry's Mod Avant toute chose

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.

Avant toute chose

Faire une map ? L'environnement de travail

Avant toute chose

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.

Voilà, ceci étant dit, on peut commencer !


Faire une map ? L'environnement de travail

L'environnement de travail

Avant toute chose Les constituants d'une map

L'environnement de travail

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.

Un nouveau document s'ouvre, vierge :

Image utilisateur

Voir la vue sous Windows XP

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.

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 :

Image utilisateur

Le camion vu de dessus (top).

Image utilisateur

Le camion vu de face (front).

Image utilisateur

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.

Image utilisateur

Wireframe

Image utilisateur

Flat

Image utilisateur

Textured


Avant toute chose Les constituants d'une map

Les constituants d'une map

L'environnement de travail Créer des blocs

Les constituants d'une map

Que trouve-t-on dans une map ?

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.

Voici une image d ela vue 3D de Hammer, avec différents constituants :

Image utilisateur

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 :

Image utilisateur

Les models sont aussi des personnages. Voici le rendu d'un Marine dans Black Mesa: Source d'abord non texturé, puis texturé :

Image utilisateurImage utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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.


L'environnement de travail Créer des blocs

Créer des blocs

Les constituants d'une map Création d'un bloc

Voici l'heure de travailler un peu. :) Nous allons voir comment créer et manipuler des blocs, ainsi que jouer avec la vue 3D.

Création d'un bloc

Créer des blocs Formes géométriques

Création d'un bloc

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 :

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.

Image utilisateur

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 :

Image utilisateur
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.

Image utilisateur

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

Créer des blocs Formes géométriques

Formes géométriques

Création d'un bloc Grille et zoom

Formes géométriques

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 :

Image utilisateur

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.

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).


Création d'un bloc Grille et zoom

Grille et zoom

Formes géométriques Opérations génériques

Grille et zoom

La grille
Image utilisateur

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*.

Image utilisateur

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 :

Image utilisateur
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.


Formes géométriques Opérations génériques

Opérations génériques

Grille et zoom Les textures

Opérations génériques

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.

Image utilisateur
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
Image utilisateur

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.

Image utilisateur
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.

Image utilisateur

Une fois que tout est bien en place, tapez Enter sur votre clavier.

Image utilisateur

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.


Grille et zoom Les textures

Les textures

Opérations génériques Application

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 !

Application

Les textures Textures spéciales

Application

Pour ce faire, reprenons notre bon vieux bloc carré. Cliquez sur l'outil d'application de textures :

Image utilisateur

. 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 :

Image utilisateur

. Avec ce nouveau curseur, vous allez cliquer sur une face de votre cube :

Image utilisateur

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 :

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...


Les textures Textures spéciales

Textures spéciales

Application Le ciel et ses textures

Textures spéciales

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.

Image utilisateurImage utilisateur

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 ^^

Image utilisateurImage utilisateur

Cette texture bloque les balles (et le joueur aussi)

Image utilisateurImage utilisateur

Cette texture bloque la lumière

Image utilisateurImage utilisateur

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.

Image utilisateurImage utilisateur

Le bloc est invisible, mais il est physique, le joueur peut butter contre. Un bloc avec cette texture peut être utilisé comme entité bloc.

Image utilisateurImage utilisateur

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).

Image utilisateurImage utilisateur

Bah, je vous en ai déjà parlé ^^

Image utilisateurImage utilisateur

Même utilisation que clip, mais ici, c'est seulement pour les joueurs

Image utilisateurImage utilisateur

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 )


Application Le ciel et ses textures

Le ciel et ses textures

Textures spéciales Les dimensions dans l'œil

Le ciel et ses textures

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 :

Image utilisateur

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

Image utilisateurDans 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.

Image utilisateur
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.


Textures spéciales Les dimensions dans l'œil

Les dimensions dans l'œil

Le ciel et ses textures Les textures de dev

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 ^^ .

Les textures de dev

Les dimensions dans l'œil Les dimensions

Les textures de dev

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 :

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 :

Image utilisateur
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.

Image utilisateur
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.

Image utilisateur

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.


Les dimensions dans l'œil Les dimensions

Les dimensions

Les textures de dev Les maps du SDK

Les dimensions

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.

Image utilisateur
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.

Image utilisateur
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.

Image utilisateur
Pente

A partir d'une inclinaison de 45 degrés, il n'est plus possible aux joueurs de grimper dessus.

Utiliser des objets

Les textures de dev Les maps du SDK

Les maps du SDK

Les dimensions Modification de blocks

Les maps du SDK

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...).

Image utilisateursdk_dm_lockdown.vmf ouverte dans Hammer


Les dimensions Modification de blocks

Modification de blocks

Les maps du SDK Clipping Tool

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 !

Clipping Tool

Modification de blocks Carve et Hollow

Clipping Tool

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 :

Image utilisateur

.

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.

Image utilisateur

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 :

Image utilisateur

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) :

Image utilisateur

Image utilisateur

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 ;)


Modification de blocks Carve et Hollow

Carve et Hollow

Clipping Tool Vertex Tool

Carve et Hollow

Le Carve

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 :

Image utilisateur

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é :

Image utilisateur

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 :

Image utilisateur

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) :

Image utilisateur

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 :

Image utilisateur

Comme je l'ai dit, évitez le Hollow, et privilégiez la méthode suivante avec le Clipping Tool.

http://hl.logout.fr/?p=optimisation#II_2_B_b

Évider correctement un bloc 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.

  1. passer le Clipping Tool en mode 3 (pour conserver les deux parties)

  2. dans une des vues 2D de face ou de côté, couper horizontalement le bloc deux fois de suite (le sol et le plafond)

  3. 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

  4. ensuite, passer en vue 2D Top, sélectionner le bloc du milieu et couper deux fois

  5. 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 :) .


Clipping Tool Vertex Tool

Vertex Tool

Carve et Hollow Dangers du Vertex Tool

Vertex Tool

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 :

Image utilisateur

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.

Image utilisateurDans 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 :

Image utilisateur

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) :

Image utilisateur

Et l'image complète :

Image utilisateurImage utilisateur

Carve et Hollow Dangers du Vertex Tool

Dangers du Vertex Tool

Vertex Tool Une première pièce pas à pas

Dangers du Vertex Tool

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 :

Image utilisateur
Image utilisateur
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) ;

Image utilisateur

Je le déplace pour former un triangle :

Image utilisateur

>

Image utilisateur

Dans ce cas, il n'y a pas de "merge" possible

Les faces non-planes

http://www.siteduzero.com/tutoriel-3-8 [...] tml#ss_part_3

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 :

Image utilisateur

>

Image utilisateur

On obtient alors une forme géométrique "hybride" qui ne ressemble à rien :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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.


Vertex Tool Une première pièce pas à pas

Une première pièce pas à pas

Dangers du Vertex Tool La salle

Afin de mettre ce que nous avons vu en pratique, nous allons voir comment créer une pièce pas à pas !

La salle

Une première pièce pas à pas La passerelle

La salle

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 :

Image utilisateur
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 :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

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) :

Image utilisateur

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 :

Image utilisateur


Une première pièce pas à pas La passerelle

La passerelle

La salle L'escalier

La passerelle

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 :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

La salle L'escalier

L'escalier

La passerelle La balustrade

L'escalier

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 :

Image utilisateur

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 :

Image utilisateur

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 :

Image utilisateur

Texturez le bloc avec la même texture que celle des marche, pour obtenir ceci :

Image utilisateur

En ce qui concerne les face gauches et droite du bloc, il vous faudra modifier l'angle (j'ai mis 35°) de la texture.


La passerelle La balustrade

La balustrade

L'escalier Portes et fenêtres

La balustrade

On va ajouter une balustrade pour ne pas tomber de la passerelle, ce serait gênant. Pour faire une balustrade, c'est très simple : créer un bloc et lui appliquer une texture de balustrade ! Il y en a plusieurs, que vous trouverez avec le mot clé rail. Moi, je vais utiliser metal/metalrail013c.

Créez un bloc de 32 unités de haut, sur 2 unités de large. Placez ce bloc entre l'escalier et la première colonne. Dès que c'est fait, appliquez la textures de rambarde sur les faces avant et arrière. Comme vous pouvez le constater, cette texture est spéciale : ce qui apparaît en noir est en réalité transparent !

Du côté de l'escalier, créez une montant, que vous allez texturer pour "fermer" la rambarde, comme ceci :

Image utilisateur

Vous avez compris le truc ? Bien, finissez la passerelle en ajoutant une rambarde entre chaque colonne :

Image utilisateur

L'escalier Portes et fenêtres

Portes et fenêtres

La balustrade Les displacements

Portes et fenêtres

Histoire d'encore un peu pratique, on va ajouter une petite pièce avec une porte et une fenêtre. C'est l'occasion de réutiliser le Clipping Tool pour faire des découpes au sein des blocs.

Dans le coin opposé à l'escalier, créez une pièce, faite de deux parois de 8 unités d'épaisseur. Pour faire plus joli, j'ai décidé de faire un coin oblique. Pour réaliser un coin oblique, créez un bloc normal et modifiez-le avec le Vertex Tool. Je texture avec plaster/plasterwall034d :

Image utilisateur
La porte

Dans la face avant, on va creuser un trou pour la porte. Prenez le Clipping Tool, mettez-le en mode 3 (pour conserver tout ce qui est coupé) et coupez deux fois dans le sans de la hauteur :

Image utilisateur

Dès que c'est fait redimensionnez le bloc central, qui sera le haut de la porte :

Image utilisateur
La fenêtre

C'est le même principe, sauf que le bloc du milieu sera coupé en deux horizontalement, pour obtenir le bas et le haut. Faites une fenêtre sur l'autre côté :

Image utilisateur
Les encadrements

Notre porte est un peu moche, de même que la fenêtre. Ce qu'il manque, c'est un encadrement. Créez-en un, avec une texture comme metal/metalwall062a. Faites ça proprement : pensez à raccorder les bords avec le Vertex Tool pour obtenir ceci :

Image utilisateur

Faites de même pour la porte.

Quand c'est fait, terminez la petite pièce en y plaçant un toit :

Image utilisateur

Vous pouvez télécharger la map utilisée pour réaliser ce chapitre.