Script Son

Un article de Wiki-Mapping.

Jump to: navigation, search

Sommaire

[modifier] Avant-propos

Les scripts de son ont avant tout une fonctions de communications il ne servent pas à jouez de son d'ambiance, le script de son va désigner un son et va lui attribuer un nom pour pouvoir l'utilisé via le script de la map. En effet le script de son n'est pas une chose difficile à réaliser au contraire c'est son utilisation qui est plus complexe, ce qui rend la chose un peu plus compliquée à expliquer.

Alors les scripts ".sound" permettent de configurer des son (.wav) qui pourrant être joués plus tard sur un appel du script . Le fichier .sound, peut être comparer par analogie à un fichier ".shader" qui donne ses propriétés à une textures.

Dans un premier temps nous analyserons un exemple pris depuis le "pak0", ensuite nous traiterons de la création de son propre fichier son . Si vous êtes très impatient tout les points soulevés dans la première partie seront repris dans la seconde pour la création, n'hésitez pas cependant à ouvrir vous mêmes votre pak0 cela est très instructif !

[modifier] Analyse d'un exemple

L'exemple pris sera le script pour la map battery.

[modifier] Ouverture du fichier script et première impressions

Nous allons donc travailler sur le fichier "battery.sounds" contenu dans le dossier sound/scripts du pak0. Les fichiers .sounds s'ouvre et s'édite avec tout logiciel de capture de texte en général (Bloc-notes, Workpad ...), personnellement le workpad ou le bloc-notes sont les plus agréables et les plus faciles à utiliser car leurs interfaces sont très simple.
Ouvrons donc le fichier "battery.sounds":

[modifier] Observations:

A la lecture on remarque plusieurs choses :

// allied commander  * titre du bloc à titre purement indicatif pour faciliter la lecture.
 
battery_allies_ramp_construct  * un nom donné à un bloc de script
{
	sound sound/vo/battery/allies/hq_rampcon.wav   * un chemin vers un fichier .wav précédé de la commande sound
	voice 
	streaming 
}

Remarques: Le script se trouve dans le dossier "..sound/scripts"il a le nom du le map et son extension est .sounds.
Les fichier ".wav" ce trouve dans un dossier "../sound/.." .


[modifier] Impressions:

D'après ce qu'on à observé on c'est rendu compte que l'on devait donné un nom à notre son (nom du bloc de script). On suppose donc que celui-ci va être réutilisé, si on farfouille un peu on se rend compte que celui-ci sert en fait à la désignation du son dans le script de la map , exemple ci dessous:

// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "battery_allies_ramp_construct"
		wm_teamvoiceannounce 1 "allies_hq_compost_construct"

		wm_teamvoiceannounce 0 "battery_axis_ramp_stop"
		wm_teamvoiceannounce 0 "axis_hq_compost_construct"

		wm_addteamvoiceannounce 1 "battery_allies_ramp_construct"
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"

		wm_addteamvoiceannounce 0 "battery_axis_ramp_stop"
		wm_addteamvoiceannounce 0 "axis_hq_compost_construct"
// *---------------------------------------------------------------------------------*

Celui-ci apparait effectivement 2 fois dans cet extrait du script, et beaucoup plus encore .

[modifier] Conclusion:

D'après ce que nous avons pu voir , pour scripter un son il faut répondre à plusieurs exigence:

  • Le script de son doit porter le même nom que la map et son extension est .sounds .
  • Le script de son doit se trouver dans le dossier ..sound/scripts du pk3.
  • Les son désignés par le script doivent se trouver dans le dossier ../sound du pk3 ou dans l'un de ses sous-répertoires.
  • Les son doivent êtres au format .wav !

A partir de là tout est en place pour créer notre script.



[modifier] Création d'un fichier .sounds

Dans ce tutoriel nous considérons que notre map s'appelle tuto_son' et que nous voulons scripter un son qui s'appelle tuto.wav qui sera placé dans le dossier sound/messons/...

[modifier] Conditions:

Avant tout nous devons nous assurer de plusieurs choses:

  • Le script de son doit porter le même nom que la map et son extension est .sounds , ici il se nomera tuto_son.sounds .
  • Le script de son doit se trouver dans le dossier ..sound/scripts du pk3.
  • Les son désignés par le script doivent se trouver dans le dossier ../sound du pk3 ou dans l'un de ses sous-répertoires, ici sound/messons .
  • Les son doivent êtres au format .wav , prenez le fichier .WAV de votre choix ici et renommez le en tuto.wav.

[modifier] Scripting

Créez un fichier texte et renommez le tuto_son.sounds . Ensuite éditez le avec le bloc-notes et ajoutez ses lignes:

//Mon son
tuto_son_monson
{
	sound sound/messons/tuto.wav
	voice
	streaming
}

Et c'est tout maintenant dès que vous voudrez appellé un son dans votre script vous n'aurez cas le désignez par le nom tuto_son_monson .

Alors comme cela parait tout bète et ça l'est on va décomposez tout ça pour que vous compreniez ce que vous avez fait :

//Mon son *on donne un titre pour faciliter la relecture et les modifications ultérieurs que l'on pourrait apporter
tuto_son_monson *on donne un nom au bloc de script , ce sera ce nom qui sera demandé par le script de la map
{
	sound sound/messons/tuto.wav *on donne le chemin d'accès au son
	voice
	streaming
}

Voilà vous avez votre script de son ! Tout simplement!


[modifier] Utilisation:

Nous avons maintenant créé notre script de son, mais à quoi sert-il exactement ?

Prenons un cas concret ! Les allies doivent détruire une porte les axes la défendre, une fois la porte cassé les allies doivent volé de l'or ! voici un petit schéma de la situation !

Etat de la porte : Je rejoins l'équipe ...
Porte non cassée . Axis: j'entend quelqun dire défendez la porte ! Allies: j'entend quelqun dire casse la porte !
La porte est cassée . Axis: j'entend defendez l'or ! Allies: j'entend allez voler l'or !

Nous voyons donc que suivant l'équipe que je rejoin je n'entend pas le même son.
Cela signigie donc qu'il faut 4 son différents ici,

    1. pour la défence de la porte (axis_defence_porte)
    2. pour l'attaque de la porte (allies_detruisez_porte)
    3. pour la defence de l'or (axis_defence_or)
    4. pour la prise de l'or (allies_prise_or)

Voilà alors maitenant nous avon besoins de commandes de script des messages systèmes

Donc au spawn du script multiplayer on utilisera les commandes:

wm_addteamvoiceannounce 0 axis_defence_porte
wm_addteamvoiceannounce 1 allies_detruisez_porte

Et a la destruction de la porte on utilisera les commandes :

wm_removeteamvoiceannounce 0 axis_defence_porte
wm_removeteamvoiceannounce 1 allies_detruisez_porte
wm_addteamvoiceannounce 0 axis_defence_or
wm_addteamvoiceannounce 1 allies_prise_or


Voilà nous ne pouvons que rester que très subjectif , sur le sujet ceci est un travail de finallisation de "map" qui n'engage aucune modification de la carte seulement celle du script et l'ajout de nouveau fichier .