
Nous allons voir dans ce tutorial
qu'il est facile d'exploser des murs sans pour autant être obligé
de passer par du script. En fait, le script existe déjà
dans le jeu, il suffit simplement de savoir utiliser les commandes.
Première chose à faire, choisir l'endroit où
ce mur sera détruit. Nous choisirons le mur entre notre maison
et notre cabane à bois.
Commencez par filtrer les MODELES
STATICS (ALT + CTRL + B) pour faciliter
les vues. Ensuite, coupez le mur en deux à l'aide de l'outil
pour CLIPPER et écartez le mur comme sur le
screenshot.

Ensuite, dans l'espace ainsi
ouvert, recréez le mur et appliquez lui la texture SHADOW
CASTER. En effet, pour détruire un mur, nous allons
utiliser des script_brushmodels. Le problème
de ces script_brushmodels est qu'à la compilation,
ils ne bloquent par la lumière, ils sont autrement dit invisibles
au processus FLARE. Votre mur créé,
mettez le en DETAIL. Une fois terminé, votre
mur toujours sélectionné, appuyez sur la touche H
(votre brush va disparaître). Cette commande n'efface pas les
brushs, il filtre simplement. Si vous voulez reprendre vos brushs,
appuyez sur la touche SHIFT ou MAJ + H.

Nous allons créer ici
notre mur avant l'explosion. Une fois terminé, nous allons
le transformer en script_brushmodel (CDS
sur une des vues 2D).

Ouvrez la fenêtre ENTITY,
nous allons enregistrer un paramètre qui le rattachera au déclenchement
de notre TRIGGER. Dans la fenêtre, tapez :
script_exploder 1.
En fait, nous allons déclencher un ensemble de chose sous la
chaine exploder 1. Si nous voulions créer
un second mur à exploser avec un autre TRIGGER,
nous utiliserions la fonction script_exploder
2 et ainsi de suite.
Chose faite, appuyez sur la touche H pour filtrer
les brushs.

Ici, nous allons maintenant
créer notre mur de la manière qu'il sera une fois l'explosion,
faites fonctionner votre immagination pour donner à votre mur
un aspect détruit, avec quelques morceaux de mur à terre,
un mesh au pied imitera les débris. Une fois que vous avez
terminé, sélectionnez tous les brushs (mesh compris)
et transformez l'ensemble de ces brushs en script_brushmodel.
Ajoutez toujours le script_exploder
1 pour
rattacher ces modification à la chaine exploder 1.
Pour
différencier ce qui doit être afficher avant d'après
un déclenchement, il suffit d'ajouter une ligne supplémentaire
à nos script_brushmodels à savoir :
targetname exploder.
Ce targetname indique au moteur du jeu que ces brushs
doivent rester invisible avant le déclenchement du TRIGGER,
et qu'une fois activé, ces brushs doivent être affichés
(l'inverse est effectué lorsque les script_brushmodels
n'ont pas de targetname exploder. Chose faite, appyez
sur la touche H.

Nous allons maintenant ajouter
des FX pour notre explosions, plus précisément
2 FX. Créez un script_model
(CDS sur vue 2D) et fermez la fenêtre
qui vous demande d'ouvrir un fichier. Dans la fenêtre ENTITY,
enregistrez model model/fx.
Théoriquement, votre cube rouge prend la forme d'un nom FX
comme sur le screenshot suivant :

Nous allons ici rattacher notre
FX à notre chaine exploder 1
en saisissant script_exploder
1. Nous allons d'autre
part lui désigner le type de FX que nous voulons
lancer au moment du déclenchement du TRIGGER.
Ici, nous allons prendre un FX de débris de
poussière (dust) simplement en saisissant script_fx
dust. Cette ligne le
rattachement au FX que nous allons déclarer
en precache dans notre fichier tuto_fx.

Pour terminer l'opération
de ce premier FX, nous allons lui indiquer une direction,
à l'aide d'un script_origin. Faites donc un
CDS sur une vue 2D et prenez un
script_origin. Placez-le en hauteur et face à
notre script_model FX et désélectionnez-le.
Sélectionnez d'abord le FX (1)
puis l'origine (2),
et reliez-les avec un CTRL + K (3).
Normalement la flèche rouge
doit indiquer la direction du script_origin.

Créez maintenant 3 autres
FX de manière à avoir 2 FX
de chaque côté du mur au moment de l'explosion.

Nous allons maintenant créer
notre deuxième type de FX, une projection
de pierre. Comme pour les FX dust, créez 2 FX avec comme paramètre
:
script_exploder 1
script_fx
stone
Puis rattachez-les chacun à
un script_origin de chaque côté du mur.

Nous allons maintenant utiliser
les 2 bidons déjà en place. Pour cela, refaites appaître
les modèles statiques (ALT + CTRL + B). Copiez
les 2 bidons pour en mettre 2 autres de l'autre côté
du mur, cela pourra laisser comprendre qu'ils contiennent de l'essence
pour l'explosion du mur.

Maintenant, nous allons faire
en sorte qu'ils disparaissent au moment de l'explosion du mur. Pour
cela, nous allons créer des script_model.
Pour chacun d'eux, transformez les en script_model puis ajouter la
ligne script_exploder
1.

Le problème du script_model
a contrario du misc_model est qu'il ne dispose pas
de collmap (ou de COLLISION), c'est-à-dire
qu'on peut le traverser. Pour corriger cela, nous allons devoir créer
un CLIP pour bloquer les joueurs lorsque celui-ci
est encore présent sur la map (avant l'explosion). Pour cela,
recréez un clip avec la texture CLIP NOSIGHT METAL
ou bien reprennez le modèle et son CLIP à
partir du répertoire collmaps de UO (fichier
.map). Ensuite, sélectionnez les 4 brushs CLIP
en même temps et transformez-les en script_brushmodel.
Ajoutez ensuite la ligne script_exploder
1, le tour est joué.
Il nous reste une dernière étape à faire, le
déclencheur.

Nous allons terminer cette
fastidieuse création par notre déclancheur, un TRIGGER_DAMAGE.
Appuyez sur la touche SHIFT ou MAJ + H
pour faire réaparaître tous les brushs que nous avions
filtrés jusqu'alors. Créez un brush de part et d'autre
du mur et texturez-le avec la texture TRIGGER (n'oubliez
pas de lui donner la fonction TRIGGER_DAMAGE). Faites
en sorte qu'il dépasse à droite et à gauche du
mur et qu'il englobe bien les bidons de chaque côté.
Le TRIGGER
toujours sélectionné, ajoutez la ligne script_exploder
1. Puis cochez les cases
PISTOL_NO - RIFLE_NO - MELEE_NO
- FLAME_NO. Ceci empêchera le TRIGGER
d'être déclenché par un impact de pistolet, de
fusil, de lance-flamme ou de bash. Ceci engendre un Spawnflags
de 99 dans la fenêtre ENTITY.

Chose à ne pas oublier,
ajouter des panzerfaust pour détruire le mur. Prenez donc le
model mpweapon_panzerfaust. Celui-ci ne doit pas être en misc_model
(model fixe) mais être en :
classname
mpweapon_panzerfaust
model xmodel/weapon_panzerfaust_ammo
Pour mettre un modèle
sur un autre ou le long d'un mur, utiliser la coche SUSPENDED,
sinon le modèle tombera jusqu'à ce qu'il rencontre un
brush dans le jeu.

Au final, voici à peu
de choses prêts ce à quoi devrait ressembler le mapping
dans la vue 3D de Graydiant.

Voilà pour le mapping,
dernière chose à régler, charger nos FX
(DUST et STONE) en precache dans
notre fichier tuto_fx.gsc. Pour cela reprennez le
fichier et ajouter les lignes en rouges :
main()
{
precacheFX();
Feu();
Fumee();
}
precacheFX()
{
level._effect["stone"] = loadfx ("fx/cannon/stone.efx");
level._effect["dust"] = loadfx ("fx/cannon/dust.efx");
}
Feu()
{
level._effect["feu"] = loadfx("fx/map_mp/mp_fireplace_fire.efx");
org = getent ("feu","targetname");
maps\mp\_fx::loopfx("feu", org.origin, 1);
}
Fumee()
{
level._effect["fumee"] = loadfx("fx/map_mp/mp_smokemist_chimney.efx");
org = getent ("fumee","targetname");
maps\mp\_fx::loopfx("fumee", org.origin, 1);
}

Vous pouvez maintenant compiler
votre map et tester le fruit de votre travail.
Les fichiers (.map - .gsc -
csv) de notre tuto 23/. 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é.