Gaming Zone Communautes Battlefield PiTrust Communautes Mods
SommairemapstutorielsforumtétéchargementsdiversLes liensLivre d'Or
21/. Ajouter des tirs de mortiers et des mines

 

Nous allons dans ce tutorial ajouter des tirs de mortiers aléatoirement et bloquer certains endroits à l'aide de mines. Nous allons donc besoin d'espace pour implanter cela. Nous allons donc créer un champs.

Nous allons donc commencer par faire l'entourage de notre champ à proprement dit. Comme pour le tuto de l'alphablending, nous allons créer des TERRAIN MESH en multiple de 64 unités. Vous avez le libre choix de la taille de votre champ, mais voici comment procéder. Faites autant de meshs que nécessaire d'une largeur de 64 x 4 soit 256 unités.

Remontez jusqu'à la SKYBOXE et continuez à tracer des meshs afin de finir l'entourage de ce que sera notre champ. Attention à ne pas faire des meshs trop long.

Créez maintenant les meshs que nous utiliserons pour mettre la texture adéquate. Attention, laissez de chaque côté un espace de 4 x 64 soir 256 unités afin de faire de l'alphablending. Essayez autant que possible de faire des meshs de 512 x 256 unités. Nous serons tenus par la suite de couper certains d'entre eux pour avoir un mesh de 256 x 256 unités pour créer des cratères d'obus.

Créez ensuite les meshs qui serviront pour l'alphablending de chaque côté du champ.

Chose faite, commençons par texturer notre champ. Il existe 3 textures complémentaires les unes des autres pour créer proprement un champ. Sélectionnez donc les meshs de notre champ les plus éloignés de notre maison et texturez les avec la texture : normandy/ground/dirt_clampy@plowedbottrans. Si besoin est, passez par l'inspecteur de surface et cliquez sur le bouton NATUREL si la texture n'est pas correctement mise.

Sélectionnez maintenant les meshs opposés de notre champ les plus près de la maison et répétez l'opération avec la texture : normandy/ground/dirt_clampy@plowedtoptrans.

Il ne reste plus qu'à prendre les meshs au centre de notre champ pour les texturer avec la texture : normandy/ground/dirt@plowedfield.

Prenez maintenant les meshs d'entourage du champ et textez avec la texture : normandy/ground/grass@lp_brecort1b. Même chose, un petit clique sur le bouton NATUREL de l'inspecteur de surface pour positionner correctement la texture.

Nous allons maintenant cloturer notre champs avec un mur. Pour ce faire, reprenez exemple du mur déjà présent et prlonger le en contournant le champ ainsi créé. Le long de la SKYBOXE, nous positionnement des modèles de buissons et d'arbres, il n'est donc pas nécessaire de cloturer.

Terminez par mettre des brushs au pied de vos murs pour "isoler" (important pour l'optimisation). La bulle du screenshot suivant vous indique qu'il n'est pas nécessaire que le mur texturé aille jusqu'à la SKYBOXE, nous verrons plus loin pourquoi.

Une fois terminé, nous allons pouvoir de nouveau nous adonner au nivellement du terrain puis de l'alphablending dans un second temps. Elevez donc les bords montrés par les flèches rouges, ensuite dénivelez légèrement le champ comme appris dans le précédent tutorial afin d'éviter d'avoir un champs tout plat.

Nous allons ici ajouter un cratère à notre champ pour les besoins de nos tirs de mortiers. Sélectionnez donc un mesh de 512 x 256 unités, puis appelez les vertices (touche V). Ensuite, (1) soit à partir de la vue 3D, soit de la vue XY Top, et tout en maintenant la touche SHIFT ou MAJ enfoncée, et à partir de la ligne de vertices du haut ou du bas (cf. flèches rouges de la bulle) cliquez sur le point central autant de fois jusqu'à que vous ayez la rangée de vertices comme sur le screenshot. Puis, (2) dans le menu PATCH, sélectionnez DIVISER. Il s'agit en fait de séparer le mesh en 2 selon les vertices séletionnés.

Désélectionnez les et prenez en un des 2, puis texturez le avec la texture : global_use/cratered_ground. Il s'agit d'une texture alpha où il n'est pas nécessaire de faire de l'alphablending.

Appelez maintenant de nouveau les vertices, nous allons déformer le mesh pour lui donner un aspect réel : un cratère d'obus. Prenez donc le vertex central du mesh (1) et, à partir de la vue XZ Side ou XZ Front, décendez légèrement le point vers le bas pour creuser le mesh. Une fois terminé, vous pouvez descendre légèrement les vertices (2) autour de celui-ci pour que le cratère soi le plus réel possible.

Vos manipulations terminées, cloner le mesh (BARRE ESPACE) ainsi modifié, et texturez-le avec la texture initiale soit (normandy/ground/dirt@plowedfield). Replacez ensuite le mesh sur le premier.

Répétez l'opération pour avoir ainsi 3 cratères d'obus, de préférence avec le centre du champ, car il reste à faire l'alphablending sur le côté de notre champ..

Prenez maintenant les bandes de meshs créés pour l'alphablending et procédez au dégradé de couleurcomme dans notre précédent tutorial. N'oubliez pas d'abord de faire un clone des meshs avant de travailler l'alphablending.

Finissons l'esthétique de notre carte en créant des patchs meshs autour de carte comme le screenshot suivant. La texture utilisée étant : normandy/foliage/foliage_clamp_2048_treeline, les patchs meshs étant de d'une hauteur de 512 unités. La déformation est faite en utilisant les vertices. La bulle vous montre qu'il faudra placer un mesh plus petit (128 unités de hauteur) avec la texture global_use/foliage_masked@bushwall1agrass, nous placerons ensuite nos buissons et arbres.

Agrémentez d'arbres et de buissons ici et là pour rendre un aspect plus naturel.

Dernière petite chose, nous allons cloturer la carte avec une petite barrière au niveau de notre END CAP. Nous utiliserons la texture : normandy/transparents/wood_masked@fence2. N'oubliez pas l'utilisation du bouton X Tex Flip disponible dans la barre d'outil pour inverser la texture.

Nous y sommes, nous allons placer notre premier impact de tirs de mortiers. Pour cela, reprenez le mesh cratère et repérez le centre du mesh.

Maintenant, faites un CDS (1) SCRIPT ==> MODEL, la fenêtre ENTITY va s'ouvrir avec une autre fenêtre vous demandant d'ouvrir un fichier. (2) Cliquez sur le bouton ANNULER. Normalement, vous allez voir apparaître un cube rouge, c'est bon signe.

le SCRIPT_MODEL toujours sélectionné, entrez les informations suivantes : targetname mortier.

Placez maintenant l'entité bien au fond du cratère, il doit légèrement dépasser. Répétez l'opération pour les 2 autres cratères.

Passons maintenant par la création de mines sur notre carte. Rien de bien sorcier, créez un 3 brushs qui feront le tour de notre champ, assez haut et profond. Attention, il ne doivent en aucun cas recouper d'autres brushs STRUCTURE.

Les 3 brushs toujours sélectionnés, (1) faites un CDS et sélectionnez TRIGGER ==> MULTIPLE. Ensuite, (2) enregistrez l'information suivante : targetname minefield.

Il reste simplement à signaler l'endroit où se trouvent ces maudites mines. Utilisez pour cela les modèles xmodel/minen1 - xmodel/minen2 - xmodel/minen3 - xmodel/minen4 pour le quadrillage. C'est fini pour le mapping.

Nous allons de nouveau travailler avec le script pour donner vie à tout cela. Dans notre script principal, nous allons d'abord déclarer les FX qui seront utilisés pour les explosions des tirs de mortiers c'est-à-dire le fichier mortier_fx.gsc :

Voici ce que contient notre fichier mortier_fx.gsc qui sert à déclarer les FX :

main()
{
precacheFX();
}

precacheFX()
{
level._effect["mortar_explosion"][0] = loadfx ("fx/impacts/newimps/minefield.efx"); //1er effet de mortier
level._effect["mortar_explosion"][1] = loadfx ("fx/impacts/newimps/dirthit_mortar2day.efx"); //2ème effet de mortier
}

Nos FX maintenant déclarés, nous pouvons maintenant nous occuper du script qui fera fonctionner les mortiers. A partir de notre fichier script principal (tuto_21.gsc), nous allons écire les lignes nécessaires à son fonctionnement :

main()
{
setCullFog (0, 6500, .32, .36, .40, 0);
ambientPlay("ambient_mp_brecourt");

maps\mp\_load::main();

level thread maps\mp\tuto_fx::main();
level thread maps\mp\tuto_fenetre::main();
level thread maps\mp\mortier_fx::main();

game["allies"] = "american";
game["axis"] = "german";

game["american_soldiertype"] = "airborne";
game["american_soldiervariation"] = "normal";
game["german_soldiertype"] = "wehrmacht";
game["german_soldiervariation"] = "normal";

level thread mortier();

}

mortier()
{
mortier = getentarray ("mortier","targetname");
while (1)
{
wait (5 + randomfloat(5));
GoodPosition = false;
while (!GoodPosition)
{
rand = randomint(mortier.size);
GoodPosition = true;
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
if (distance(mortier[rand].origin,players[i].origin) < 200)
{
GoodPosition = false;
break;
}
}
}
mortier[rand] playsound("mortar_incoming");
wait (1.9);
origin = mortier[rand] getorigin();
playfx (level._effect["mortar_explosion"][randomint(2)], origin);
mortier[rand] playsound("mortar_explosion");
radiusDamage(mortier[rand].origin, 200, 200, 0);
}
}

En jaune se trouve les lignes déjà présentes, en rouge, les nouvelles lignes à ajouter, ce qui donne :

Vous pouvez maintenant compiler votre map et tester le fruit de votre travail.

Les fichiers (.map - .gsc) de notre tuto 21/. se trouve ici. Pour l'utiliser, à partir du menu FICHIER, sélectionnez IMPORTEZ (.map) ==> IMPORTEZ NOUVELLE MAP.

 

Par Caskou - 2005 Copyright © by CaskAmi Prod. Tout droit réservé.

 

Page générée en

Design / concept Amigos3D - Copyright ©2006 CaskAmi Prod. Tous droits réservés.
Caskami.com est hébergé; par Eliott-Ness.