Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Rien de bien compliqué ici.
Nous allons tout simplement créer la mitrailleuse en simples blocs. Rien que des blocs pour l'instant, aucune entité.
Pour ma part, j'ai opté pour une
Vickers .303, un modèle britannique, de calibre 7,7 mm, avec une chaîne de 250 balles et une vitesse de 500 tirs/min.
Enfin bon, voilà ce que ça peut donner :
Pour bien faire,
google est votre ami.
Pensez tout de même à bien tenir compte de la hauteur. Il faut que le joueur puisse voir par dessus.
Voilà, c'est tout. Maintenant, nous allons donner vie à cette mitrailleuse.
Bien bien bien. Maintenant la mitrailleuse prête, il faut qu'elle tire des balles, et qu'elle fasse beaucoup de bruit.
Pour commencer, il faut créer un bloc
ORIGIN, comme pour tout objet rotatif.
Rotatif ? Pourquoi rotatif ?
C'est bien simple : il faut que le joueur puisse manipuler la mitrailleuse (la faire tourner, de droite à gauche, en haut, en bas) et non qu'elle reste statique.
Nous allons donc placer ce bloc au point de rotation, comme ceci :
Pensez bien que le centre de rotation est le CENTRE du bloc. Faites attention donc, sinon vous pourriez avoir des surprises.
Donc, maintenant, sélectionnez le bloc ORIGIN ainsi que votre mitrailleuse. Transformez le tout en entité
func_tank.
Comment configurer tout ça ? Phou, c'est qu'il y en a, des attributs.
Déjà, vous connaissez pas mal d'options, mais je vais vous mettre celles dont vous avez besoin :
Name : C'est le nom que vous donnez à votre mitrailleuse. Il est INDISPENSABLE. J'appelle le mien "vickers".
Ah, maintenant, quelque chose de très important aussi :
Qu'est-ce que c'est que tous ces machins ?
Vous voyez qu'ils se ressemblent à un détail près : yaw et pitch
Yaw : c'est ce qui se rapporte au niveau horizontal.
Pitch : c'est ce qui se rapporte au niveau vertical.
Ensuite, il y a
rate,
range et
tolerance.
Rate : C'est la vitesse de déplacement de la mitrailleuse. Généralement, on met la même dans
pitch et dans
yaw. Pour cette valeur, je met 80, ce qui me parraît être une bonne vitesse.
Range : Il s'agit de l'angle d'ouverture de la mitrailleuse à partir de sa POSITION D'ORIGINE. Par exemple, dans
yaw range (horizontal), il faut mettre une valeur en degrés dans laquelle va pouvoir se déplacer. Par exemple, vous voulez que votre mitrailleuse puise s'ouvrir dans un angle de 100°, il va falloir rentrer la valeur 50 (50 à droite et 50 à gauche). Pareil pour
pitch range (vertical). Rentrez 45 pour qu'elle s'ouvre de 45° vers le haut et 45° vers le bas (= 90°).
Tolerance : Ca n'a pas vraiment d'importance, laissez comme c'est.
Barrel Length : C'est la distance (
longueur) à laquelle vont sortir les balles à partir de votre bloc ORIGIN. Pour moi, il y a 58 unités WorldCraft depuis le centre du bloc ORIGIN jusqu'à l'endroit où je veux que les balles sortent. Je rentre donc la valeur 58.
Barrel Horizontal : C'est là aussi une distance. Il s'agit de la
largeur entre le centre du bloc ORIGIN et l'endroit de sortie des balles.
Barrel Vertical : Encore une distance. C'est la
hauteur entre le bloc ORIGIN (encore celui-là) et l'endroit de sortie des balles.
Pour ne pas vous casser la tête, vous n'avez qu'à aligner le centre du bloc ORIGIN par rapport à l'endroit de sortie des balles (dans les vues "side" et "front"). Comme ça, vous n'aurez qu'à mettre 0 dans Barrel Horizontal et dans Barrel Vertical.
Smoke Sprite &
Flash Sprite : Vous pouvez sélectionner les sprites que produit la mitrailleuse (smoke pour fumée et flash pour lumière). Ils seront placés à l'endroit que vous avez défini plus haut.
Rotate Sound : Son à jouer quand la mitrailleuse tourne. Entre nous, ce n'est pas très important sauf si vous êtes maniaque...
Damage Per Bullet : C'est le nombre de dégâts à infliger à celui qui se prendra une balle.
Bullet accuracy : C'est la précision de la mitrailleuse :
Perfect Shot : Précision parfaite.
Small cone : Les balles seront tirées dans un petit cône (= bonne précision).
Medium cone : Les balles seront tirées dans un cône moyen (= précision moyenne).
Large cone : Les balles seront tirées dans un large cône (= mauvaise précision).
Large cone : Les balles seront tirées dans un très large cône (= très mauvaise précision).
Bullets : Type de balles tirées.
Ne pas oublier de cocher le flag
controlable pour que le joueur puisse s'en servir.
Il ne reste plus qu'à diriger le radar vers là où la mitrailleuse va tirer (il faut se baser sur le vue "top").
C'est fini pour la configuration.

Ouiiiiin... Ma mitrailleuse, elle est toute tordue ! Pourquoi qu'elle est pas dans le bon sens ?
Hola, du calme, il ne faut pas brûler les étapes. Ceci dit, c'est bien de remarquer cela. C'est une particularité des func_tank : il faut toujours les orienter un quart de tour plus à droite que la position que vous souhaitez.
Pour y remédier, il suffit de faire une rotation de 90° vers la droite à votre mitrailleuse. Voilà ce que vous obtenez sous Hammer :
Comme ça, votre mitrailleuse aura l'orientation que vous souhaitez.
C'est fini pour le func_tank ! Fastoche, non ?
Func_tankcontrols ? C'est pas encore fini ?
Eh non, un func_tank ne suffit pas à faire une mitrailleuse utilisable par le joueur. D'ailleurs, vous pouvez compiler, vous verrez qu'elle refusera catégoriquement de marcher.
Nous allons donc rajouter une entité-bloc nommée
func_tankcontrols. C'est en fait une zone dans laquelle le joueur pourra contrôler la mitrailleuse. Et comme dans toute zone, nous allons appliquer la texture
AAATRIGGER à cette entité.
Vous pouvez voir que le func_tankcontrols se place lui aussi à un quart de tour vers la droite
Maintenant, transformez ce bloc en func_tankcontrols.
Surprise : il n'y a qu'un attribut.
Tank entity name : Il suffit simplement d'indiquer le nom de l'entité func_tank (pour moi, c'est "vickers").
Eh bien maintenant, votre mitrailleuse devrait marcher à la perfection. Essayez voir.
Alors ?
Beuh, c'est nul, ça fait même pas de bruit. Comment on fait ?
C'est ce que nous allons voir dans la prochaine et dernière partie.
En attendant, réjouissez-vous à l'idée que votre mitrailleuse marche !
Comme vous avez remarqué, il n'y a pas moyen de faire jouer un son au func_tank.
Nous allons donc procéder autrement en créant un
multi_manager.
Créez donc ce multi_manager avec un nom, par exemple
multi_vickers.
Dans l'attribut
Target du func_tank, mettez le nom de ce multi_manager.
Ensuite, créez votre entité
ambient_generic et choisissez le son que vous voulez mettre.
Vous n'avez plus qu'à ajouter l'appel de ce son avec le multi_manager, en SmartEdit.
Vous pouvez aussi ajouter d'autres entités comme un env_shake pour faire un léger tremblement lors des tirs.
Récapitulons en image :
Le
func_tank appelle donc le
multi_manager qui appelle l'
ambient_generic et l'
env_shake (avec un délai de 0 secondes).
Le multi_manager n'est utile que si vous voulez déclencher plusieurs entités. Si vous ne voulez ajouter qu'un son, pas la peine de passer par ce multi_manager, activez-le simplement depuis le func_tank.
Et voila, votre mitrailleuse flambant neuve, avec les sons, la lumière et tout et tout.