SourceEngine Ajouter des nouveaux sons de pas

  • Initiateur de la discussion
  • Administration
Seb

Seb

El Dictator
Membre du Staff
Messages
1 875
Score réaction
454
Points
370
Ce tutorial réalisé entièrement par Vosvoy et provient des archives de mapping-area et modding-area.
Les archives sont anciennes, certains tutoriels peuvent ne plus correspondre aux dernière versions.


-

Bonjour à tous et à toutes.

Voici un tutoriel visant à vous montrer comment ajouter de nouveaux bruits de pas ( " footsteps " ) selon un type de surface. Ce tutoriel s'adresse en priorité aux débutants désireux de créer un mod sans être obligé de toucher à la programmation pure et dure, car les confirmés n'en auront surement pas besoin ( du moins, c'est ce que je pense ).

Comme je viens de le notifier ci-dessus, sachez que pour effectuer cet ajout vous n'aurez pas besoin de toucher au code principal du jeu.​

Je vais donc vous indiquer la marche à suivre et, après cela, vous expliquer le pourquoi du comment.

Pour commencer, prenons un exemple basique et concret. Vous aurez peut-être remarqué qu'en jeu, lorsque vous marchez sur une texture de tapis ou de moquette, les sons " dirt1.wav ", " dirt2.wav ", " dirt3.wav ", et " dirt4.wav ", sont audibles. Ces sons sont plutôt utilisés pour des textures de terre.

Afin de changer cela, vous devez vous procurer deux scripts: " surfaceproperties_manifest.txt ", et " game_sounds_physics " ( du jeu Half-Life 2, inclus dans " source engine.gcf " ), quatre sons de pas sur de la moquette que vous nommerez " moquette1.wav ", " moquette2.wav ", " moquette3.wav ", et " moquette4.wav ", ainsi qu'une texture de moquette que vous appellerez " moquette.vtf " avec un VMT du même nom complètement vide ( n'y touchez pas pour le moment ).

Première chose à faire, vous devez créer un nouveau fichier texte complètement vide que vous nommerez " surfaceproperties_XXX ", soit " XXX " les initiales du nom de votre mod. Par exemple, si votre mod s'appelle " Modding Area Blaster ", appelez le script en question " surfaceproperties_mab.txt ". Peu importe, mais faites au plus simple de sorte que vous puissiez vous y retrouver, si vous avez du mal à vous organiser. Après l'avoir renommé, n'y touchez plus pour le moment.

Maintenant, nous allons nous intéresser au script " surfaceproperties_manifest.txt ". Ouvrez ce fichier et, normalement, vous tombez sur ceci:

Code:
// Override this file in your mod directory so you can load the base HL2 file as well
surfaceproperties_manifest
{
"file" "scripts/surfaceproperties.txt"
"file" "scripts/surfaceproperties_hl2.txt"
}
Ajoutez-y une ligne:

Code:
// Override this file in your mod directory so you can load the base HL2 file as well
surfaceproperties_manifest
{
"file" "scripts/surfaceproperties.txt"
"file" "scripts/surfaceproperties_hl2.txt"
"file" "scripts/surfaceproperties_XXX.txt"
}
Enregistrez ce fichier à cet endroit " C:\Programs Files\Steam\SteamApps\sourcemods\nomdevotremod\scripts ".

Maintenant, ouvrez votre fichier " surfaceproperties_XXX.txt " et ajoutez les lignes ci-après ( les textes après les "\\" ne sont que des commentaires. Ne les copiez pas ):

Code:
"Moquette"
{
"friction" "0.8"
"stepleft" "Moquette.PiedGauche"
"stepright" "Moquette.PiedDroit"
"bulletimpact" "Dirt.BulletImpact" \\type de son d'impact de balle dans de la terre ( déjà existant ). Cela est suffisant.
}
Enregistrez ce fichier à cette endroit " C:\Programs Files\Steam\SteamApps\sourcemods\nomdevotremod\scripts ".

Maintenant, ouvrez votre fichier " game_sounds_physics.txt " et ajoutez ces lignes entre deux types de surfaces. Par exemple, entre les fonctions " Dirt.BulletImpact " et " Mud.StepLeft ", existantes ( les textes après les "\\" ne sont que des commentaires. Ne les copiez pas ):

Code:
\\"Dirt.BulletImpact"
\\{
\\ "soundlevel" "SNDLVL_75dB"
\\ "volume" "0.7"
\\ "pitch" "PITCH_NORM"
\\ "rndwave"
\\ {
\\ "wave" "physics/surfaces/sand_impact_bullet1.wav"
\\ "wave" "physics/surfaces/sand_impact_bullet2.wav"
\\ "wave" "physics/surfaces/sand_impact_bullet3.wav"
\\ "wave" "physics/surfaces/sand_impact_bullet4.wav"
\\ }
\\}
"Moquette.PiedGauche"
{
"soundlevel" "SNDLVL_75dB"
"volume" "0.6"
"pitch" "PITCH_NORM"
"rndwave" \\appelle de façon aléatoire les différents sons indiqués en fonction du pied gauche lors de la marche.
{
"wave" "player/footsteps/moquette1.wav"
"wave" "player/footsteps/moquette3.wav"
}
}
"Moquette.PiedDroit"
{
"soundlevel" "SNDLVL_75dB"
"volume" "0.6"
"pitch" "PITCH_NORM"
"rndwave" \\appelle de façon aléatoire les différents sons indiqués en fonction du pied droit lors de la marche.
{
"wave" "player/footsteps/moquette2.wav"
"wave" "player/footsteps/moquette4.wav"
}
}
\\"Mud.StepLeft"
\\{
\\ "soundlevel" "SNDLVL_75dB"
\\ "volume" "0.6"
\\ "pitch" "90,105"
\\ "rndwave"
\\ {
\\ "wave" "player/footsteps/mud1.wav"
\\ "wave" "player/footsteps/mud3.wav"
\\ }
\\}
Enregistrez ce fichier au même endroit que les deux autres.

A présent, créez un dossier " materials " dans le répertoire principal de votre mod ( si il n'existe pas, bien entendu, car il me semble que ce dossier n'est pas conçu par défaut lorsque vous venez tout juste de créer votre mod dans le SDK ). Ensuite, créez un autre dossier du nom de " Props " et placez-y votre texture de moquette avec son VMT vide.
Pour le moment, cela nous donne: " C:\Programs Files\Steam\SteamApps\sourcemods\nomdevotremod\materials\Props ".

Ouvrez le VMT avec un éditeur de texte et collez-y ces lignes ( les textes après les "\\" ne sont que des commentaires. Ne les copiez pas ):

Code:
"LightmappedGeneric" //type du shader utilisé.
{
"$basetexture" "Props/moquette" //chemin dans le répertoire principal de votre mod où se trouve votre texture de moquette avec le nom celle-ci.
"$surfaceprop" "moquette" //type de la surface. Ici, de la moquette ( surface que nous venons de créer ).
"%keywords" "initialesdevotremod" //fonction qui vous permet de retrouver plus facilement vos textures personnalisées dans Hammer.
}
Enregistrez ce fichier avec l'extension .vmt et placez-le au même endroit où se trouve votre texture de moquette c'est-à-dire:
" C:\Programs Files\Steam\SteamApps\sourcemods\nomdevotremod\materials\Props ".

Enfin, créez un dossier " sound " dans le répertoire principal de votre mod. Cela fait, créez à nouveau un dossier " player " et un autre nommé " footsteps ", à l’intérieur de celui-ci. Placez-y les quatres sons de pas sur de la moquette ( moquette1.wav, moquette2.wav, etc... ).
Cela nous donne donc: " C:\Programs Files\Steam\SteamApps\sourcemods\nomdevotremod\sound\player\footsteps\moquette1.wav, moquette2.wav, moquette3.wav, moquette4.wav ".

Félicitations, vous venez de créer un nouveau type de surface avec des bruits de pas qui lui correspondent. Il va sans dire qu'il est nécessaire d'utiliser votre texture dans votre map et de tester la modification en jeu.

Mais, concrètement, qu'avons-nous fait?

Gardez en mémoire qu'un jeu fonctionne comme un " pipeline " ( ou un arbre généalogique, si vous préférez ). Certains fichiers " appellent " d'autres fichiers pour une ou des fonctions précises.
Dans le cas présent, les scripts " surfaceproperties_XXX.txt " et " game_sounds_physics.txt " indiquent au moteur du jeu qu'il existe une nouvelle surface spécifique au mod via le " surfaceproperties_manifest.txt ", qui lui-même est appelé par un autre script du nom de " game_sounds_manifest.txt ". Ce sont ces scripts qui lanceront alors les sons en fonction de cette fameuse surface.

Plus simplement, cela donnerait:

_1-> " surfaceproperties_manifest.txt " va appeler le nouveau script de votre mod en relation avec les types de surfaces ( soit " surfaceproperties_XXX.txt " ).

_2-> " surfaceproperties_XXX.txt " va créer et appeler votre nouvelle surface ( soit " Moquette " ).

_3-> " game_sounds_physics.txt " va appeler de façon aléatoire quatre sons de pas en fonction de cette surface ainsi que des sons d'impact de balle qui lui correspondent ( soit " moquette1.wav ", " moquette2.wav ", " moquette3.wav ", " moquette4.wav ", pour les pas, et " sand_impact_bullet1.wav ", " sand_impact_bullet2.wav ", " sand_impact_bullet3.wav ", " sand_impact_bullet4.wav ", pour les impacts de balle ).
Voilà, c'est tout. Après, vous pouvez suivre la même démarche pour d'autres types de surfaces ( feuillage, neige, échelle en bois, tuiles, etc... ) et/ou plus de sons de pas ( soit autant de sons répertoriés dans le script " game_sounds_physics.txt " et existants dans votre dossier " sound\player\footsteps ". Vous pourriez par exemple en mettre huit -> quatre gauche, quatre droite. Vous pourriez même aller jusqu'à dix sons de chaque, mais cela n'est pas recommandé ). A vous maintenant de tenter la chose, selon vos besoins.

Maintenant, si vous ne connaissez pas très bien le système de script du Source Engine en rapport avec les sons, je vous conseille de vous référer à cet article, car cela vous permettrait de mieux comprendre certaines fonctions que vous rencontrerez surement à l'avenir dans ce genre de fichier ( en anglais, malheureusement ):

https://developer.valvesoftware.com/wiki/Soundscripts

En espérant que ce tutoriel fera des heureux, je ne peux que vous souhaiter bonne chance pour vos projets.
 
Discord Hytale, Minecraft, Rust, ARK, FiveM

Découvrez mTxServ!

Discord d'entraide

Rejoignz-nous sur Discord