Ajouter ses propres sons.
Nous allons voir dans çe tuto comment mettre des sons localisés sur notre map.
Dans la vue 2D, faire clic droit / script / model. Vous obtenez ainsi un petit cube de couleur bleu.

Maintenez ce cube, qui s'appelle un script_model, séléctionné et appellez la console des entités (raccourci : N).
Entrez comme clé / valeur
model / fx/dummy.tik
targetname / son_local1
N'oubliez surtout pas de cocher la case ALWAYS_DRAW. Cela sert à ce que l'on entende le son, même si un mur vous sépare du script_model. Si on ne le faisait pas, vous n'entendriez le son que dans la pièce ou vous l'avez mis !

Et voilà c'est fini au niveau mapping.
De manière générale, si vous voulez trouver un son :
--> soit vous prenez Packscape et vous ouvrez le pack3.pk3 dans lequel se trouvent beaucoup de sons (notez le chemin comme ceci : sound/mechanics/Mec_Alarm_02.wav)
--> soit vous faites la même chose mais sans passer par packscape, en allant dans le dossier sound situé dans main.
(Note : Pour un son de pluie sous un toit, on mettrait ceci : sound/amb/Amb_RainRoof_02.wav)

Maintenant le script :

Dans votre script nomdelamap.scr, mettez ceci en dessous de main: :(on va prendre l'exemple du son de pluie).

local.master = spawn ScriptMaster local.master aliascache pluie1 sound/amb/Amb_RainRoof_02.wav soundparms 1.2 0.2 0.8 0.2 500 1000 auto loaded maps "dm obj"

1.2 c'est le volume du son "BaseVolume".
0.2 Ici le volume serra modifier à chaque départ "RandomVolume" (exemple: volume 1.2 RandVolume 0.2 = volume compris entre 1.0 et 1.4)
500 c'est la distance "MinDist" autour du script_model jusqu'à laquelle on entend le son à un volume de 1.2. Au-delà de 500 le volume du sons baisse.
1000 c'est la distance au-delà de laquelle on entend plus le son "maxDist". 500 et 1000 sont des unités de radiant, dites unités quake (du nom du moteur du jeu).


Dans le script nomdelamap_precache.scr, mettez ceci :

aliascache pluie1 sound/amb/Amb_RainRoof_02.wav soundparms 1.2 0.2 0.8 0.2 500 1000 auto loaded maps "dm obj"

Cela sert à mettre en mémoire le son lors du chargement de la carte et à éviter les "lags" lorsque votre son sera joué !
On revient dans le script nomdelamap.scr, et on met ceci :

main:
//ici vous mettez ce que je vous ai dit de mettre plus haut (local.master ...)
level waittill prespawn
level waittill spawn
thread sons
end
sons:
$son_local1 playsound pluie1
end

Vous voyez ici que pluie1 est le nom donné au son que nous avont déclaré plus haut ! La commande playsound joue le son UNE SEULE FOIS. Si vous voulez qu'il soit joué en boucle, alors il faudra mettre :
$son_local1 loopsound pluie1 1.2 500

les chiffres en couleurs ont la même fonction que ceux que j'ai cité plus haut (sauf le troisième qui n'y est pas ici). Mais vous vous demandez pourquoi on les remet ici alors qu'on les a défini lors de la déclaration du son (aliascache ...). Et bien tout simplement parceque la commande loopsound ne prend pas en compte ces valeurs, et qu'il faut les redéfinir ici. Pourquoi ? Je ne saurais pas vous répondre, mais c'est comme ça.

Voilà c'est fini, vous n'avez plus qu'à tester.

Par Danker 2003 - Copyright © by CaskAmi Prod. Tout droit réservé.

Retour à la liste des tutoriels
Copyright Amigos3D © 2018 - Auteur: Amigos3D
Tous droit reserve, reproduction partiele ou totale interdite sans mon accord prealable.
Politique de confidentialité.