Le clip brush

Écrit le 17/01/2004 par Cyr1c
Dernière mise à jour : 30/01/2006

Description

Clipping? Qu'est ce que c'est que ca? Pour nombre d'entre vous, le clipping peut signifier le fait que les décors, dans un jeu de 'oiture par exemple, apparaissent d'un seul coup et ca fait pas beau! Ou alors pour d'autre, un peu plus initié à WorldCraft 2.0, vous pouvez penser au "Clipping Tools" qui permet de découper les objets mais il ne faut pas le confondre avec ce qui va être traité dans ce chapitre. En fait il s'agit de la fonction qui permet aux objets en 3D, tels que les monstres, les armes etc.. de ne pas s'enfoncer dans les murs. En fait chaque objet-entité possède des "bounding box" qui définissent la "taille" du joueur. Ou plus précisment, les zones où l'objet ne pourra etre traversé par un autre objet. On peut visualiser les bounding box avec le programme Half-Life Model Viewer en cochant l'option "Hit Box". Vous verrez alors des 'boites' rouges entourer le modele et en fait, ces boites rouges indiquent au moteur qu'il ne faut pas les traverser et il y aura une collision lors d'une rencontre avec un autre objet.

Le clipping permet de définir beaucoup de chose, par exemple il indiquera à la roquette qu'elle devra exploser quand elle rencontrera un mur au lieu de le traverser tout bêtement, ou tout simplement empêchera que vos pieds traversent le sol (ce serait bien embêtant). Bref le clipping est un élément primordial dans un moteur 3D

Les problèmes

Il existe cependant quelques situations où le clipping peut être un handicape. Prenons l'exmple des affiches. Dans un niveau, vous voulez créer un couloir avec quelques affiches et vous créez des objets 3D très fins qui dépasseront du mur. Dans un niveau solo, ca n'a pas beaucoup d'importance mais dans un niveau multi-joueurs c'est totalement différent. Imaginons que vous êtes poursuivi par un type dix fois plus fort que vous. Deux secondes plus tard après avoir perdu les 3/4 de votre vie sans avoir eu le temps de tirer un seul coup, vous vous dirigez vers la première sortie que vous trouvez, manque de pot, le serial killer vous suit car il aime finir ce qu'il a déjà commencé. Vous straffez comme un dingue pour échapper à ses tirs à la précision chirurgicale. Vous entreprenez de marcher en arrière et de tirer en même temps afin que vous ne le laissiez pas vous tuer sans une quelconque resistance. Straffant de gauche à droite et longeant les murs le plus possible, vous arrivez dans le couloir précédant et là vous butez contre une de ces ?@°$~*&#|`^% d'affiche qui dépassait du mur et l'autre sadique vous achève d'un coup de shotgun dans la tronche. Ce genre de truc est franchement énervant.

Mais il y a d'autres situations où le clipping peut être tout aussi énervant. Par exemple, Un type doit traverser un vide et le seul moyen d'y parvenir est de marcher sur les tuyaux qui se trouvent contre un des murs. Il saute tout content sur les tuyaux, ravi d'avoir trouvé le truc pour continuer le niveau. Mais voilà, à peine est-il monté sur le tuyaux qu'il glisse et s'étale au fond du précipice. Le joueur recommence à sa dernière sauvegarde, une demi-heure avant!!! Arg! Une fois tout recommencé, il se retrouve à nouveau devant le précipice et sauvegarde. Il saute et se rétame à nouveau au fond du trou. Il réessaye, une fois, deux fois, dix fois, éteint son Pc après avoir supprimé votre map qui vous a pris une semaine de travail. Pour éviter que votre map ne subisse le même sort, vous devez faire en sorte que le joueur ne glisse pas du tuyau. Mais le problème c'est qu'un tuyau n'est pas une surface plane et qu'un tuyau plat, ça n'a pas encore été inventé. Bref pour corriger tout ça, lisez ce tutorial.

La Texture

La texutre clip est une texture un peu spécial. Quand un objet est recouvert entièrement de cette texture, celui-ci devient invisible dans le jeu et pourtant le clipping fonctionne toujours pour l'objet. Ce qui fait que le joueur sera bloqué par cet objet, même s'il ne le voit pas. Je vous déconseille fortement de l'utiliser pour empecher l'accès à une partie d'un niveau. Mais? me direz vous! A quoi ça sert sinon? Et bien continuez de lire au lieu de poser des questions!

Les solutions

Reprenons l'exemple du tuyau, la chose à faire afin d'éviter ce problème, il vous suffit de créer un objet en 3D très fin (une ou deux unités au maximum) et de le placer juste au dessus du tuyau. Ainsi le joueur marchera sur une surface plane en ayant l'impression de marche sur un tuyau. Et ainsi, votre niveau ne sera pas jeté à la première difficulté de ce type. Veillez de toutes façon à ce que le Clip Brush soit le plus fin possible afin que le joueur ne le remarque pas ( C'est par ces petits détails qu'on voit les bons LevelDesigners).

http://www.game-lab.com/images/tuts/hl1_clipbrush/cliptuyau0.jpg

http://www.game-lab.com/images/tuts/hl1_clipbrush/cliptuyau1.jpg

Voici la coupe de l'image, vue sous WorldCraft 2.0, on voit que le Clip Brush n'est pas très grand, car il faut tout de même que le joueur puisse tombe dans le vide et il faut que ce ne soit pas impossible pour autant.

http://www.game-lab.com/images/tuts/hl1_clipbrush/cliptuyau2.jpg

Pour le coup des affiches contre le mur, c'est un peu plus compliqué. Vous devez d'abord créer votre mur et les affichis. Ensuite placez un Clip Brush qui longerea le mur et sera à peine plus large (voir même aussi large) que les affiches. Ainsi, malgrès les apparences, le joueur aura l'impression de longer le mur alors qu'il longera un Clip brush qui lui longe le mur. Mais comme pour le tuyau, il faut que le Clip Brush soit le plus fin possible.

http://www.game-lab.com/images/tuts/hl1_clipbrush/clipmur0.jpg

Un autre problème va se poser. C'est que votre Clip Brush devra bien s'arreter à un endroit et vous ne pouvez pas en mettre sur tous les murs, ce serait stupide. Or si il s'arrète cela va créer un rebord contre lequel je joueur pourra néanmoins buter. Il faut donc le éviter cela en coupant le bord du Clip Brush et ainsi le joueur "glissera" contre l'angle du mur.

http://www.game-lab.com/images/tuts/hl1_clipbrush/clipmur2.jpg

Il existe nombreuses autres applications des Clip Brush, comme par exemple, le fait que dans un escalier ou il y a une lampe, un joueur saute et se paye la lampe en pleine face. Ici il faudrait placer un clip brush juste avant la lampe, en forme de triangle afin de dévier le saut du joueur.

Conclusion

Le Clip Brush est une fonction très pratique mais très délicate à utiliser car il ne faut pas qu'elle se voit. N'en abusez donc pas car cela pourrait modifier le gameplay de votre niveau. Faites en sorte que les Clip Brushs soient le plus fin possible et qu'ils épousent la forme des objets de facon à ce qu'il restent indétectable.

Rappelez vous que les Clip Brush sont des objets ayant des propriétés identiques aux autre objets, il faut donc faire attention à ce qu'ils n'empêchent pas la progression du joueur. Pour éviter cela coupez les angles des Clip Brush pour que le joueur "glisse" dessus.