Contenu sonore (RWW)

De wiki.railsim-fr.com
Aller à : navigation, rechercher



En travaux.png
Article en cours d'avancement

Attention ! cet article n'est pas encore terminé.
Le pilote de cet article est Pierreg ; afin d'éviter les conflits de version, merci de lui faire part de vos intentions avant toute modification importante via sa page de discussion.


À retenir : Lors de l'élaboration de sons pour RailWorks il est fortement recommandé d'utiliser une carte son de type EAX. Sans carte EAX vous ne pouvez pas utiliser les paramètres de réverbération ou de masquage. Même si vous jugez ces effets inutiles, vous ne serez pas en mesure de simuler la façon dont les utilisateurs de carte de type EAX entendront vos sons.

Aperçu du Sound Blueprint

Pour mettre en œuvre les sons sous RailWorks, il faut d'abord savoir utiliser le Blueprint Editor. Pour créer un Sound Blueprint faire click-droit sur un dossier du Blueprint Editor, sélectionnez New Blueprint puis Sound Blueprint

Le Sound Blueprint de base se présente comme cela :

Sound blueprint 1.jpg

Le texte qui suit décrit les caractéristiques uniques du Sound Blueprint :

Category Choisir Sound pour toute source sonore positionnable dans la simulation. Pour les sons des trains ou tout autre son attaché à un objet particulier, le son n'étant pas individuellement positionnable, choisir Exclude dans la liste.
Sound Component Lien vers le fichier Audio Control XML file (en fait c'est un .proxyxml - voir Commandes sonores pour plus de détails).
Type Choix correct très important :

Ambient : son n'appartenant ni à une rame ni au réseau ferroviaire ; par exemple, sons de cloches d'église positionnés dans la scène ou attachés à un modèle d'église, sons de l'environnement, sons routiers, sons d'usine, sons d'oiseaux etc. Le volume de tous ces sons est contrôlé par le réglage : Ambient Volume sur la page Options du jeu.

Cab : sons qui ne sont entendus que dans la cabine de conduite. Leviers, boutons, AWS, etc. Ces sons ne sont pas activés à l'extérieur. Pour les locomotives à cabine ouverte, il faut ajouter des sons de type RailVehicle ; ces sons pourront être également entendus à l'extérieur.

Passenger : Idem Cab mais pour les sons entendus dans les voitures.

RailVehicle : Tous les sons émis par le matériel ferroviaire - moteur, freins, klaxons etc.

Geometry ID (cerclé en rouge sur le schéma) Référence à la géométrie du marqueur indiquant la place de la source sonore dans l'éditeur. Peut être une référence à un fichier .IGS.
Editor Render Data Ces paramètres fixent les tailles des marqueurs visibles dans l'éditeur lorsque l'on positionne des sources sonores. Ils sont réglés à l'oeil et à l'oreille et ne sont pas directement liés à l'atténuation audio réelle. Rayons donnés en mètres pour une source sphérique IGS de 1 mètre de diamètre p.ex. l'usine " A BT1 Industrial".

Repere source audio.jpg


Commandes sonores

Les commandes sonores (Audio Control) qui sont spécifiées dans le Sound Blueprint /Sound Component font référence aux fichiers sonores et à la façon de les jouer.

Il existe 4 types de commandes sonores recommandées :

  • la commande sonore générique
  • la commande de son d'ambiance
  • la commande de sons spécifiques vapeur
  • UI Audio Control

Les autres commandes de la liste ne sont que des noms différents affectés à la Commande sonore générique. Il est préférable d'utiliser la version générique pour éviter toute confusion.

Toutes ces commandes sonores sont des variantes de la commande générique, avec des spécificités comme décrit dans les sections suivantes .

Pour créer une nouvelle commande sonore :

  1. Click-droit sur un dossier vu du Blueprint Editor.
  2. Sélectionner New Audio Control
  3. Choisir le type dans la liste

Il y a deux paramètres sonores essentiels dans RailWorks :


Volume

C'est le facteur d'échelle du volume du son joué par rapport au volume de l'échantillon sonore d'origine. RailWorks utilise une échelle linéaire de 0 -> 1 : diviser la valeur du volume par 2 abaisse le niveau de -6dB. Voir ci-dessous :

RailSim Volume (linéaire) Decibel (dB)(logarithmique)
1 0dB (volume max)
0.5 -6dB
0.25 -12dB
0.125 -24dB
0.015625 -192dB
0 ∞ (silence total)

Pour régler des sons faibles on utilise habituellement des valeurs très faibles (entre 0 -> 0.1)


Pitch (hauteur du son)

Cette variable indique la fréquence à laquelle l'échantillon est joué par rapport à sa fréquence d'origine. Elle peut varier de 0 à 2.

RailSim Pitch (linear) Demi-tons
2 +12 (un octave de plus, fréquence double - > divise la durée par 2)
1.5 +7 ~1.9 cents
1.25992 +4
1 Rejeu normal
0.5 -12 (un octave complet de moins, fréquence moitié -> double la durée)
0 vitesse nulle : non recommandé !

Comme vous pouvez le voir, les relations de demi-tons ne sont pas des valeurs intuitives et il est préférable de simplement juger à l'oreille, sauf si vous avez la compétence dans ce domaine. La limite de la hauteur est basée sur la limite supérieure de fréquence d'échantillonnage de la carte son utilisée. Si votre carte ne peut jouer des échantillons de fréquence supérieure à 44,1 kHz, par exemple, et que vous essayez de jouer un échantillon de fréquence 22.05khz au facteur « 2 » n'aura aucun résultat. Sur les configurations actuelles la fréquence de 44,1 kHz est standard et pour être compatible n'essayez pas de dépasser cette fréquence après application de cette variable.


Commande sonore générique

Vous trouverez ici des sons que vous pouvez placer sur un train générique simple. Il comporte un son de moteur en boucle et des sons de crachottement.


Sons

C'est un exemple d'AudioControl et c'est là que l'on référence les fichiers sons de base et la façon de les jouer. Toujours utiliser des sons Mono sauf pour les sons Ambient Areas, tel que spécifié plus bas.

Generic audio control.jpg

3 rubriques à informer dans cette section :

  • Activation Distance : 310 mètres (noter la valeur légèrement supérieure à la valeur (300) du paramètre No further Attenuation Distance dans la section Random Sample Sound )
  • Single Sample Sound : décrit dans la section Single Sample Sound ci-dessous.
  • Random Sample Sound : décrit dans la section Random Sample Sound ci-dessous.


Single Sample Sound
Name Engine Loop
Is Looped True (True pour un son en boucle, False pour un son unique instantané)
Priority 50 (valeur de 1 à 100), utilisée si trop de sons simultanés sont lancés pour la carte audio : les sons de priorité faible seront ignorés.
Base Volume 0.5 (équivalent à -6db)
Volume Variation 0 (le son est toujours joué à son volume d'origine)
Base Pitch Shift 1 (‘1’ son joué à fréquence d'origine)
Pitch Shift Variation 0 (le son est toujours joué à sa fréquence d'origine)
Attenuation Start Distance 20 mètres (le son diminuera à partir d'un éloignement de 20 mètres de sa source)
No further Attenuation Distance 300 mètres (la diminution du son cessera à partir d'un éloignement de 300 mètres de sa source)
Product Pathname chemin du Produit
Filename chemin du fichier son (format mono wav, 16bit 11,025 à 44.1 khz recommandé)


Random Sample Sound
Name Engine Splutter (crachottements du moteur)
Is Looped False (le son n'est joué qu'une fois lors de l'évènement déclencheur)
Priority 50
Base Volume 0.5 (équivalent to -6db)
Volume Variation 0.25 (chaque fois que le son est joué un facteur aléatoire entre -0.25 et 0.25 est appliqué : ce son va donc être joué avec un facteur de volume compris entre 0.25 et 0.75)
Base Pitch Shift 1 (‘1’ son joué à la fréquence d'origine)
Pitch Shift Variation 0.5 (chaque fois que le son est joué, un facteur aléatoire entre -0.25 et 0.5 est appliqué à la fréquence : ce son va donc être joué avec un facteur modifiant la fréquence entre 0.75 et 1.5. La valeur inférieure sera en fait -0.25 compte tenu de la relation avec l'octave comme indiqué précédemment)
Attenuation Start Distance 10 mètres (le son diminuera à partir d'un éloignement de 10 mètres de sa source puis disparaîtra)
No further Attenuation Distance 300 mètres (la diminution du son cessera à partir d'un éloignement de 300 mètres de sa source)
Liklihood 0.5 (Probabilité de jeu de cet échantillon sonore parmi plusieurs autres. Dans l'exemple ci-dessus il y a deux échantillons : Splutter1.wav et Splutter2.wav. La somme des probabilités peut ne pas à être égale à 1. Elle est simplement relative à cette description de Random Sample Sound.)
Pathname chemin du Produit
Filename chemin du fichier son (format mono wav, 16bit 11.025 -> 44.1 khz recommandé)


Courbe

La définition d'une courbe sonore permet de modifier le volume de la boucle sonore du moteur en fonction d'une variable de type Controlleur. Ici c'est la variable "moment de la journée" (Minutes_Since_Midnight) qui est utilisée.

Courbe modulation volume.jpg

X est en minutes et Y est la facteur appliqué au volume.


Chaîne de modifications

Chaine modificateurs 1.jpg

C'est là que nous précisons comment la courbe est utilisée pour produire le graphique ci-dessous :


Courbe volume-temps ecoule.jpg

NdT : on remarque que la courbe est inversée par rapport aux déclarations faites dans la rubrique précédente.

Nous avons donc créé une courbe où le Volume est en X et le Controlleur Minutes_Since_Midnight en Y.

En fait le volume joué va être fonction de la valeur du Controleur Minutes_Since_Midnight. Cette fonction se représente avec l'entrée en X et le résultat en Y. (NDLT)

Le volume de ce son change selon l'heure de la journée. À minuit (0 minute), il va jouer volume 0 (silence), à 1h00 (60 minutes), il jouera à 0,25 x volume, et à 16h (960 minutes), il va jouer à plein volume ('1 ' volume).

Dans une chaîne de modifications, vous pouvez avoir autant de courbes de volume que vous voulez et ils interagissent entre eux, mais ils ne peuvent jamais pousser le volume au-dessus de la valeur 1.


Instance Groupe

Le groupage est un outil utile pour contrôler l'arrêt de certains sons qui ne doivent pas être joués en même temps. Par exemple :

Instance group.jpg

Nous allons appliquer cet exemple au crachottement de notre locomotive :

Nombre maximum d' instances 1 (tout déclenchement de son auquel est appliqué ce groupage ne produira qu'un seul son, quel que soit le nombre de déclencheurs).
Action sur dépassement Reject New - Pas d'autres sons de ce groupage ne sera joué tant que le son en cours ne soit terminé, c'est-à-dire toutes les nouvelles demandes de déclenchement sont rejetées.
Stop Oldest - (stop plus anciens) Si un nouveau déclenchement arrive, le nouveau son sera joué immédiatement et le plus ancien sera arrêté. (utile avec un maximum du nombre de cas supérieur à 1).
Stop Newest - (stop plus récent) Si un nouveau déclenchement arrive, le nouveau son sera joué immédiatement et le plus récent sera arrêté. (utile avec un maximum du nombre de cas supérieur à 1).


Boucle et instantané

C'est là le noeud du contrôle sonore. Nous indiquons ainsi au simulateur quand et comment jouer les sons.

Sons boucle et ponctuel.jpg

Dans la section Loop, nous avons créé une rubrique Controlled Loop où apparaissent les paramètres suivants.

Play State Both : le son sera entendu où que l'on soit dans le jeu.
Inside : le son ne sera entendu qu'à l'intérieur d'une cabine
Outside : le son sera entendu partout sauf dans la cabine
Sound Engine Loop (le son que nous avons créé en section 1)
Modifier Chain Engine Time Volume (la châine de modification que nous avons créée en section 3)
Controller name* Minutes_Since_Midnight
Loop Condition* Value in range (donc en minutes)
Active Range start value* 30
Active Range end value* 1380


Ces quatre derniers paramètres fixent les conditions de démarrage et de fin de la boucle. Dans cet exemple, la boucle commencera à jouer à 00h30 et cessera à 23h00 (1380 minutes depuis minuit). D'autres conditions de contrôle de boucle sont décrits ci-dessous.

Dans la section Oneshot nous avons créé une rubrique Triggered Oneshoot. Elle est similaire à celle de la Controlled Loop avec les différences suivantes :

  • Trigger Type : Every trigger value increasing (ce qui signifie que chaque fois que Minutes_Since_Midnight s'incrémente le son est déclenché : ce qui produit un son toutes les minutes).
  • Instance Group : si des sons de plus de 1 minute sont déclenchés ceci empêche qu'il y en ait 2 joués en même temps. Le groupage Instance Groupe peut également être attribué au début de l'Audio Control dans la section Sons, mais il ne fait pas de différence et il est plus facile à gérer, si vous l'assignez dans la rubrique Controlled Loop ou Oneshots.


Conditions possibles dans une rubrique Controlled Loop
  • Value in range (valeur dans une plage) : la boucle sera jouée chaque fois que la valeur sera dans la plage spécifiée.
  • Value is changing up (valeur augmente) : la boucle sera jouée chaque fois que la valeur sera en train de changer vers le haut. Les valeurs Active Range sont ignorées <?>
  • Value is changing (valeur change) : la boucle sera jouée chaque fois que la valeur sera en train de changer vers le haut ou vers le bas. Les valeurs Active Range sont ignorées.
  • Value is changing down (valeur diminue) : la boucle sera jouée chaque fois que la valeur sera en train de changer vers le bas. Les valeurs Active Range sont ignorées.


Conditions de déclenchement pour les sons instantanés
  • Value increase past (valeur en augmentation) : le son est joué quand la valeur du contrôleur devient supérieure à la valeur spécifiée dans Trigger Value.
  • Value decrease past (valeur en diminution passé) : le son est joué quand la valeur du contrôleur devient inférieure à la valeur spécifiée dans Trigger Value.
  • Value moves past (valeur différente) : le son est joué quand la valeur du contrôleur devient différente de la valeur spécifiée dans Trigger Value.
  • Value is changing up (valeur augmente) : le son sera jouée chaque fois que la valeur sera en train de changer vers le haut.
  • Value is changing (valeur change) : le son sera jouée chaque fois que la valeur sera en train de changer vers le haut ou vers le bas.
  • Value is changing down (valeur diminue) : le son sera jouée chaque fois que la valeur sera en train de changer vers le bas.
  • Every trigger value increasing (augmentation de la valeur de déclenchement) : le son sera joué chaque fois que la valeur du contrôleur est incrémentée de la valeur spécifiée dans Trigger Value.
  • Every trigger value decreasing (baisse de valeur de déclenchement) : le son sera joué chaque fois que la valeur du contrôleur est décrémentée de la valeur spécifiée dans Trigger Value.
  • Every trigger value moves past (variation de la valeur de déclenchement) : le son sera joué chaque fois que la valeur du contrôleur est incrémentée ou décrémentée de la valeur spécifiée dans Trigger Value.


Value is changing gate time - Fenêtre de déclenchement (en secondes)

Il est vital d'utiliser ce paramètre si le déclenchement d'un son dépend d'une valeur qui fluctue souvent ou de façon imprévisible (c'est-à-dire de certains paramètres de simulation). Si ce paramètre est mis à '10 ', peu importe la variation de la valeur du contrôleur valable pour déclencher un son, il ne se passera rien pendant 10 secondes après le dernier déclenchement. Ceci peut être utilisé pour arrêter les saccades de sons en boucle attachés à une commande en cabine ou pour arrêter des centaines de déclenchements successifs liés à la variation d'un contrôleur dont la valeur peut évoluer à chaque cycle de simulation.

Sons d'ambiance

Les sons d'ambiance ont un seul Audio Control.

Pour le créer, cliquez avec le bouton droit sur un dossier, sélectionnez Nouveau puis sélectionnez Ambient Audio Control.

Les 4 premières sections (Sound, Curves, Chaîne de modifications et groupes d'instance) d'un Ambient Sound Audio Control fonctionnent de façon identique à celles d'un Audio Control générique. Toutefois, les sections Loop et Oneshot ont des contrôles différents.

Il existe deux types de sons d'ambiance :

  • Ambient Area - Stereo Sounds : sons aléatoires instantanés ou en boucle de longue durée, comme par exemple, le chant des oiseaux ou les rumeurs de la ville. Ces sons sont «partout» perçus par l'observateur à l'intérieur de l'espace 3D et sans faire de panoramique.
  • Point Sound - Mono Sounds : sons d'objets aléatoires instantanés ou en boucle de courte durée es sons d'objets, comme par exemple les cloches des églises ou les bruits d'une usine. Ces sons sont positionnés dans l'espace 3D, sont perçus de façon stéréophonique et l'effet Doppler leur est appliqué automatiquement. Lorsque l'observateur est dans le train, la variation de ces sons lui donnent une indication sur sa vitesse.

Repere son ambiance.jpg


Sons en boucle

Il s'agit du Ambient Sound Control pour un son en boucle. Il peut être utilisé pour les deux types Ambient Area et Point Sound, mais pour cet exemple nous montrons le cas de l'Ambient Aera et il y a une différence de mise en œuvre entre les sons stéréo et mono.

Dans cet exemple, nous créons une boucle de fond comportant des chants d'oiseaux en hiver. Tout d'abord on fixe la distance d'activation à 800, ce qui donne un espace ambiant de 1600 mètres de diamètre.

Distance activation son ambiance boucle.jpg
Son ambiance boucle.jpg

Il y a quelques paramètres que nous reconnaissons (Play Etat, Sound, Modifier Chain, etc.)

Les sections Weathers et Seasons servent simplement à définir dans quelles conditions cette boucle sera jouée. Dans ce cas, les oiseaux ne chantent pas sous la pluie ou la tempête (à noter que cela signifie que le son s'arrête brutalement sans atténuation). Pour une atténuation il faudra utiliser un contrôleur Weather spécial présenté dans la section Sons de la météo et il ne fonctionnera qu'en hiver.

Les paramètres retard (delay) et variation du retard ne sont pas applicables à la boucle. Ils sont donc à zéro (ils sont utilisés pour l'Ambient Aera Oneshot Sounds).

Les heures de début et de fin sont assez évidentes. Cette boucle démarre à 4h00 et finit de jouer 18h30. Notez que vous ne pouvez pas avoir une heure de départ supérieure à l'heure de fin. Si vous voulez avoir un son commençant à jouer 21h00 et finissant à 4h vous devez créer deux Ambient Loops avec des paramètres identiques, sauf les horaires, pour l'un de 21.00 à 24.00 et pour l'autre de 0.00 à 4.00.

Maintenant, rappelez-vous ceci est un exemple d'une Stéréo Ambient Aera, et que dans le système audio RailWorks les sons stéréo sont traités un peu différemment. Vous ne pouvez pas utiliser des valeurs d'atténuation de début et de fin des valeurs comme indiqué dans la section Sound de l'Audio Control. Cela signifie que nous devons définir nous-mêmes la façon dont le son baisse en volume lorsque l'on s'éloigne de sa position. Cela peut être fait avec le Contrôleur ListenerDistanceSquared. Il s'agit d'une valeur à la puissance 2, ainsi pour donner un point sur la courbe ou une portée, vous devez éléver au carré la valeur nécessaire comme dans l'exemple :

Required distance (m) ListenerDistanceSquared (m)
0 0
10 100
53 2809

Donc, dans notre exemple, nous pouvons voir que l'Active Range Value est 0 à 2.850.000, ce qui, en mètres (utiliser la racine carrée!) représente 0 -> 1688. Ainsi, nos sons commencent à jouer quand nous sommes à 1688 mètres ou 1,5 km de là. Cependant, cela ne contrôle pas le volume lorsque nous nous éloignons de la source. Toutefois, nous pouvons créer une Chaîne de modifications qui utilise ListenerDistanceSquared et une courbe pour atténuer le son quand nous nous éloignons.

Chaine modificateurs 2.jpg

Avec les sons Ambient Area c'est une bonne idée d'utiliser des courbes qui s'imbriquent parfaitement avec les autres zones d'Ambient Area afin de créer un fondu progressif d'une zone à l'autre, par exemple lorsque vous vous déplacez d'une zone industrielle à une zone rurale. Vous désirez également que le volume du son reste constant sur un certain rayon autour du point source. Donc, essentiellement cette forme :

Graphe attenuation sonore 1.jpg

La ligne bleue indique le niveau du volume autour de la source : il reste à volume constant dans un certain rayon. Si vous vous éloignez, le volume du son se réduira à zéro. Cela vous permet d'avoir un fondu entre deux Ambient Area de la façon suivante :

Graphe attenuation sonore 2.jpg

En passant du son bleu au son vert vous aurez un fondu entre eux. C'est ce qui est représentée graphiquement ci-dessus. Donc, dans l'éditeur, cela devrait ressembler à ceci:

Reperes son ambiance.jpg

Maintenant, nous devons réellement définir la courbe indiquée à la section Modifier Chain, que j'ai appelé ListenerDistanceSquared Curve.

Je vous suggère d'utiliser les valeurs suivantes. Avec ces valeurs, vous utilisez une distance d'activation de 800 comme indiqué précédemment, et les valeurs de portée de l'Ambient Loop de 0 -> 2850000. Ensuite, dans votre Sound Blueprint, vous pouvez utiliser un rayon intérieur (Inner Visual Sound Radius) de 250 et un rayon extérieur de 750 et vous aurez une ambiance sonore qui ressemble à ceux de l'image ci-dessus dans l'éditeur.

Les valeurs de la courbe sont :

X - ListenerDistanceSquared Y - Volume
62500 1
75625 0.988553
90000 0.977237
105625 0.944061
122500 0.891251
140625 0.841395
160000 0.785236
180625 0.716143
202500 0.645654
225625 0.57544
250000 0.501187
275625 0.42658
302500 0.350752
330625 0.281838
360000 0.216272
390625 0.154882
422500 0.102329
455625 0.058884
490000 0.025704
525625 0.004677
562500 0

Donc, pour une valeur de ListenerDistanceSquared de 0 à 62500 (ou à l'intérieur d'un rayon de 250m) le volume sera à 1, puis de 62500 à 562500, le volume passera de 1 à 0 (à l'extérieur du rayon de 750 mètres). TIP: les valeurs de X doivent toujours être entrés dans l'ordre croissant.

Ces courbes utilisent une atténuation à puissance constante, ce qui signifie que, au moment où vous êtes à égale distance de deux sources, le volume global restera constant alors que si l'atténuation avait été linéaire, il y aurait eu un trou sonore entre les deux zones.

Vous remarquerez qu'il n'y a pas de valeur 0 pour ListenerDistanceSquared dans le tableau car il est toujours supposé que la première valeur Y dans une courbe sera appliquée à toutes les valeurs inférieures jusqu'à la première valeur de X. Ainsi le tableau ci-dessus est supposé commencer comme ci-dessous :

X - ListenerDistanceSquared Y - Volume
0 1
62500 1
75625 0.988583

Sons aléatoires instantanés

Ce type de son (Ambient Random Oneshots) se contrôle à peu près exactement de la même manière que le Ambient Loop, et devrait également avoir une Chaîne de modifications utilisant ListenerDistanceSquared s'il s'agit de son stéréo. En principe les sons Oneshots sont plutôt monophoniques, ce qui est le cas illustré ci-dessous. Dans ce cas, on utilise des distances d'atténuation comme décrit dans la section Sound de l'Audio Control. Ainsi, la leçon à tirer ici est :

Les sons Monophoniques sont beaucoup plus faciles à gérer que les sons Stereophoniques !

Ambient Random Oneshots va jouer de façon aléatoire des sons qui vont enrichir votre ambiance sonore. Utiliser simultanément de tels sons en combinaison avec des sons en boucle donnera une ambiance plus variée et sera plus efficace pour la gestion mémoire.

Son ambiance aleatoire ponctuel.jpg

Donc, cet exemple est très similaire au précédent, avec quelques exceptions. Une Chaîne de modifications n'est pas nécessaire car il s'agit d'un son mono et l'atténuation du volume avec la distance est traitée automatiquement. Aussi, en bas, vous aurez remarqué que nous n'avons pas besoin d'un nom de contrôleur, les sons commenceront tout simplement à jouer une fois que nous sommes à l'intérieur de la distance de 800, telle que définie au plus haut niveau de l'Ambient audio.

La différence réside dans les valeurs de Delay et Delay Variation. Il s'agit souvent de décrire la façon dont les sons aléatoires sont déclenchés et entendus. Le temps de retard est le temps en secondes entre les triggers de déclenchement, donc on va entendre un son toutes les 30 secondes, mais cela interagit également avec le Random Delay Variation de 10, qui va ajouter une valeur aléatoire entre -10 et + 10 à notre valeur de retard. Le résultat est que nous aurons droit à un déclenchement toutes les 20 à 40 secondes. Donc, il n'y aura pas un déclenchement prévisible toutes les 30 secondes, ce que l'utilisateur n'aurait pas manqué de détecter.

Sons routiers

C'est dans le Vehicle Property Blueprint que vous pouvez spécifier un contrôle sonore, par exemple ici Car_Sound.xml :

Vehicle property blueprint audio control.jpg

Vous pouvez alors le lier à un contrôle sonore générique en boucle lié à la valeur de la vitesse comme ceci :

Controle audio generique vehicules boucle.jpg

La valeur de vitesse rendue sera utilisée pour contrôler le volume et la hauteur du son par l'intermédiaire d'un modificateur de la chaîne.

Il y a également une section pour référencer un contrôle audio dans le Traffic Controller Blueprint. Ici, vous pouvez définir un contrôle audio qui définira un bruit de fond routier en boucle. Max Sounds déterminera le nombre de voitures actives simultanément au niveau sonore. Sur les routes à fort trafic, vous pouvez facilement générer simultanément des centaines de sons de voiture et si vous ne faites pas attention à cette valeur, la carte son de l'ordinateur sera rapidement à court de canaux audio.

Traffic controller blueprint audio control.jpg

Sons ferroviaires

Sons des bogies

C'est dans le Blueprint du matériel (Loco Blueprint ou Wagon Blueprint) que l'on spécifie le Bogie Audio Control (Generic Audio Control) qui permet d'ajouter les sons de roulement : joints des rails et frottement des boudins de roue.

Pour activer les sons des joints il faut utiliser le contrôleur JointCount comme le montre l'image ci-dessous. La distance entre les joints est spécifiée dans le Blueprint TrackBedRumble.

Sons bogie bruits joints.jpg

Pour les sons de frottement des boudins, il faut utiliser le contrôleur Curvature (courbure) comme ci-dessous.

Sons bogie crissement boudins.jpg

La courbure courante de la voie est renvoyée à l'aide du contrôleur Curvature (le courbure vaut 1/rayon). Ainsi, une voie de 200 mètres de rayon renvoie 0,005. Une voie droite renvoie 0. Vous pouvez alors utiliser un modificateur de chaîne basé sur la courbure et la vitesse instantanée (AbsoluteSpeed) pour avoir un effet sonore temps réel désiré.

Sons d'attelage

C'est dans le Blueprint du matériel (Loco Blueprint ou Wagon Blueprint) que l'on spécifie le Coupling Audio Control (Generic Audio Control) qui permet d'ajouter les sons d'attelage et de dételage.

Bruits attelage.jpg

Lorsque le contrôleur CouplingState est à '1', le wagon est attelé et il est à '-1' lorsqu'il est dételé. Sachant cela, il est facile d'écrire les conditions des sons instantanés d'attelage et de dételage comme ci-dessus.

Sons de voie/roulement

Voici un exemple typique d'un TrackSound Blueprint. L'exemple montre le cas d'un "grondement" lors du passage sur un pont métallique.

Track sound blueprint.jpg

En général ce Blueprint référence différents Contrôles sonores que l'on trouvera ci-après : grondement (Rumble), vibrations (Tingle), aiguille (Junction), réverbération (Reverb) et déraillement (Derailment).

Idéalement, il faudrait créer un nouveau TrackSound Blueprint pour chaque type de voie dans le jeu. Le minimum étant 2 : un pour la voie courante et l'autre pour la voie en tunnel.

Le paramètre "distance entre les joints" (en mètres) et le paramètre "distance au bruit d'aiguille" détermine la fréquence et quand sont déclenchés les bruits de joint spécifiés dans le Bogie Audio Control. Par conséquent, sur des longs rails soudés, vous devez utiliser une distance nulle ou peut-être une très grande valeur (par exemple tous les 10 km). Sur une voie ancienne, vous devez utiliser une distance entre les joints de valeur spécifique à cette voie. L'image ci-dessus montre une distance de 30 m utilisée sur la route de base "Bath-Templecombe".

Le paramètre Category doit être positionné à Exclude from browser list si vous ne voulez passélectionner ce son individuellement depuis l'éditeur.

La section Colour fixe la couleur de représentation de ce Rumble particulier dans l'éditeur. Pour définir les différents types de grondements sur une portion de voie, vous devez :

  1. Ouvrir l'Éditeur -> Track -> Sélectionner Tool
  2. Sélectionnez la portion de voie.
  3. Ouvrez le panneau de droite et sélectionnez le type de rumble.


Le TrackSound Blueprint doit être référencé dans le Track Blueprint pour apparaître dans cette liste. Il est également très important que le Default Rumble Blueprint soit positionné dans le Track Blueprint avant toute pose de voie dans l'Éditeur. Sinon, vous devrez les positionner à la main sur 90% de la voie posée, ce qui rique d'être long.

Choix grondement editeur de lignes.jpg

Voici une section du Rumble Audio Control :

Controle audio grondement.jpg

Le positionnement du grondement est géré automatiquement par le module sonore du simulateur. Cette position est liée à la voie, comprise dans la longueur de la rame et au plus proche de l'écran <?>.

Comme vous pouvez le voir ci-dessus, les boucles de contrôle sont à l'ordre du jour ! AbsoluteSpeed est le contrôleur que vous devriez utiliser pour contrôler le volume du grondement basé sur la vitesse et modulé par une courbe sonore et une chaîne de modifieurs. La valeur de déclenchement recommandée est positionnée à 0,05. Cela signifie que le grondement n'est pas émis lorsque le train est à l'arrêt ou même presque à l'arrêt.

Voici une portion représentative d'une section audio définissant les vibrations : Tingle (Generic Audio Control)

Controle audio tintement.jpg

L'effet de vibrations (Tingle) est utilisé pour contrôler deux effets sonores RailWorks, bien que toute une gamme d'effets potentiels soient possibles.

L'effet Tingle est le bruit du rail vibrant lorsqu'un train approche. Ceci est contrôlé par le contrôleur AbsoluteSpeed mais aussi via le contrôleur DistanceToConsist qui est la distance du point le plus proche entre la rame et l'observateur.

Le contrôleur JetFighter est utilisé pour représenter l'effet de souffle du train qui passe rapidement devant l'observateur. Il est identique au contrôleur DistanceToConsist sauf qu'il vaut zéro lorsque la caméra de l'observateur est attachée à la rame.

Sons de déraillement

Controle audio deraillement.jpg

Le Derailing Audio Control est un contrôle audio générique qui se déclenche lorsque la rame déraille. La valeur de AbsoluteSpeed peut alors être utilisée pour déclencher un crissement et un grondement. DerailImpactCount est incrémenté de 1 chaque fois qu'un matériel rencontre un obstacle, ainsi qu'au point de déraillement.

Sons d'aiguille

Des sons d'aiguillage peuvent être ajoutés à l'aide du contrôleur SwitchingProgress qui varie progressivement de 0 à 1.

Il semble bien que ce soit les sons de passage d'aiguille qui sont ainsi mis en place mais le document ne dit pas à quelles positions correspondent le 0 et le 1. Les passages voie directe et voie déviée devraient avoir des sons différents... ? (NDLT)

Sons réverbérés

Ceci est parfois appelé "effet paroi" : le son est entendu presque simultanément à son écho (NDLT)

L'effet de réverbération est référencé dans le TrackSound Blueprint. Cet effet nécessite une carte EAX activé. Ci-dessus un exemple typique des paramètres liés à la réverbération dans un tunnel :

Reverb effect.jpg

Sons de gare/quai

Les sons de quai fonctionnent d'une manière similaire ux sons de route. Si vous connectez un modèle générique à un Platform Blueprint, vous pouvez utiliser le contrôleur NumberOfPeopleOnPlatform pour régler le niveau de l'ambiance globale des sons sur le quai (sons d'ambience en boucle avec toux, sonneries de téléphone, conversations...).

Sons de signaux

Afin de rendre les sons d'un signal mécanique qui se déplace le signal script doit créer un contrôleur de type SignalProgress qui fonctionne de la même façon qu'un contrôleur d'aiguille.

Points de ravitaillement

Il y a trois contrôleurs pour créer des sons de chargement :

  • charbon (CoalAmount)
  • eau (WaterAmount)
  • fioul (DieselAmount )

Ces sons de ravitaillement seront effectivement utilisés dans l'Audio Control du matériel correspondant. Vous pouvez alors déclencher les sons en boucle lorsque le contrôleur est en train de changer la valeur, ce qui naturellement ne se produit que lorsque le matériel adéquat est en train de se ravitailler.

Pont transbordeur et Plaque tournante

Le contrôleur audio générique de ce type d'objet est référence comme fils (+Child) dans le Blueprint de l'objet.

[image]

Ces objets fonctionnent tout simplement avec un contrôleur dont le nom est construit avec le nom de l'animation qui les contrôlent. Dans cet exemple, comme la plaque tournante est animée en utilisant un fichier animation appelé Rotate.ia , nous avons un contrôleur AnimationTime_Rotate. (sans le suffixe ia)

Si l'animation a été appelée par exemple Turntable.ia le contrôleur automatiquement créé sera appelé AnimationTime_Turntable.

Les contrôleurs de type AnimationTime sont en secondes. Si vous voulez juste déclencher une boucle lors de l'animation (comme pour la plaque tournante) vous devez alors utiliser "Value is changing" comme condition. Si vous voulez déclencher les sons uniquement à un point particulier de l'animation, il faut utiliser la durée en secondes pour atteindre le moment de l'animation où les sons seront émis. Il est parfois plus facile d'obtenir ce timing par la construction de l'animation elle-même.

Sons de matériels

Les effets sonores d'une locomotive sont certainement le domaine plus important dans l'aspect sonore de Rail Simulator. Pour le développement, ce chapître suppose que vous déjà pris connaissance des précédents. La liste des contrôleurs pour utilisation dans les différents types de locomotives est présentée. Tout le matériel roulant peut également hériter de tous les contrôleurs spécifiés dans l'Engine Blueprint correspondant ou du type AnimationTime tel que décrit dans la section Pont transbordeur et Pont tournant.


Locomotive diesel

Ces variables se placent dans une rubrique +Control de l'Engine Blueprint (NDLT)

RPM Doit être ajouté comme commande dans l'Engine Blueprint mais ne nécessite ni animation ni commande visible pour fonctionner. C'est la commande indispensable pour les sons d'une locomotive diesel. Pour améliorer les différents effets sonores vous devrez définir les paramètres de variation du régime moteur (RPM Delta) ainsi que les séquences de démarrage et d'arrêt du moteur.
RPMDelta Peut être ajouté comme commande dans l'Engine Blueprint mais ne nécessite ni animation ni commande visible pour fonctionner. Cette valeur indique la rapidité de l'évolution du régime moteur afin de le prendre en compte au niveau sonore (dans l'Audio Control correspondant). Variable de -1 à 1
CompressorState Passe de 0 à 1 quand le compresseur se met en route (commandé par la boucle de simulation)
ImpactCount Variable qui s'incrémente de 1 chaque fois que le train heurte un obstacle sans dérailler.
DieselAmount Volume courant de carburant.
DistanceTravelled Distance parcourue en mètres depuis le début du scénario courant.
BrakeAmount Force totale de freinage sur la rame : 0 à 1
TrainBrakeAmount Idem mais pour le frein de train seulement.
LocoBrakeAmount Idem mais pour le frein de locomotive seulement.
ControlType Mode de conduite : 0=simple, 1=intermediate, 2= Expert
AbsoluteSpeed Vitesse en mètres par seconde.
WheelSlipAmount Glissement : 0 = train immobile, 1=roulement normal (sans glissement), 3=Glissement pur (en français on distingue le patinage d'une roue en traction et l'enrayage d'une roue freinée NDLT)
Ammeter Utile pour déclencher un changement de sons lors de changements de rapport ou pour une modification des sons lorsque l'effort de traction augmente.


Locomotive électrique

Ces variables se placent dans une rubrique +Control de l'Engine Blueprint (NDLT)

Current Doit être ajouté comme commande dans l'Engine Blueprint mais ne nécessite ni animation ni commande visible pour fonctionner. C'est la commande indispensable pour les sons d'un engin électrique.
CompressorState Passe de 0 à 1 quand le compresseur se met en route (commandé par la boucle de simulation)
ImpactCount Variable qui s'incrémente de 1 chaque fois que le train heurte un obstacle sans dérailler.
DistanceTravelled Distance parcourue en mètres depuis le début du scénario courant.
BrakeAmount Force totale de freinage sur la rame : varie de 0 à 1
TrainBrakeAmount Idem mais pour le frein de train seulement.
LocoBrakeAmount Idem mais pour le frein de locomotive seulement.
ControlType Mode de conduite : 0=simple, 1=intermediate, 2= Expert
AbsoluteSpeed Vitesse en mètres par seconde.
WheelSlipAmount Glissement : 0 = train immobile, 1=roulement normal (sans glissement), 3=Glissement pur


Locomotive à vapeur

ImpactCount Variable qui s'incrémente de 1 chaque fois que le train heurte un obstacle sans dérailler.
DistanceTravelled Distance parcourue en mètres depuis le début du scénario courant.
BrakeAmount Force totale de freinage sur la rame : 0 à 1
TrainBrakeAmount Idem mais pour le frein de train seulement.
LocoBrakeAmount Idem mais pour le frein de locomotive seulement.
ControlType Mode de conduite : 0=simple, 1=intermediate, 2= Expert
AbsoluteSpeed Vitesse en mètres par seconde.
WheelSlipAmount Glissement : 0 = train immobile, 1=roulement normal (sans glissement), 3=Glissement pur (en français on distingue le patinage d'une roue en traction et l'enrayage d'une roue freinée NDLT)


Le Tender dispose des paramètres ci-dessus et suivants :

WaterAmount Volume courant d'eau
CoalAmount Volume courant de charbon


Le contrôleur Audio vapeur contient également une section unique utilisée pour déclencher les effets sonores d'échappement de vapeur (chuffs) et mécaniques synchronisés par tour de roue motrice (voir image ci-dessous).

Il est important que les deux paramètres "diamètre de roue motrice" et "nombre de cylindres" soient correctement définis pour avoir le nombre correct de "chuffs" par tour de roue !

Le contrôleur Audio vapeur dispose d'une section "échappement" (Exhaust) qui est un contrôleur Oneshot.

Snd exhaus.jpg

Pour ajouter des sons d'échappement, il faut insérer un Steam Exhaust Element dans la section Exhaust. Utiliser un contrôleur AbsoluteSpeed avec des valeurs min et max valides. De cette façon vous pourrez utiliser différentes séries de sons d'échappement de longueurs plus courtes pour différentes vitesses.

Si vous ajoutez un Steam Exhaust Element nommé 1, à chaque déclenchement d'échappement la séquence déclenchée sera 1, 1, 1, 1, 1, 1, etc

Si vous ajoutez trois Steam Exhaust Element nommés 1, 2 et 3, à chaque déclenchement d'échappement la séquence répétée sera 1, 2, 3, 1, 2, 3, 1, 2, 3. Bien sûr, chaque son référencé ici pourrait aussi être une séquence aléatoire pour que la sonorisation soit plus variée.


Matériel remorqué

Snd wagon1.jpg

Dans la figure ci-dessus sont présents différents contrôleurs pour la sonorisation des wagons ou des voitures.

DistanceTravelled Distance parcourue en mètres depuis le début du scénario courant. Peut être utilisé comme ci-dessus avec un contrôle Oneshot utilisant un paramètre de type Every Trigger value increasing pour déclencher un son tous les 150 mètres par exemple ou tout autre cycle.
AbsoluteSpeed Vitesse en mètres par seconde.
DoorsOpenCloseRight et DoorsOpenCloseLeft Utilisé pour les sons d'ouverture et de fermeture des portes


Effet d'occlusion dans les voitures

Snd carocclu.jpg Il est utilisé pour contrôler la façon dont le son est affaibli (ou feutré) à l'intérieur d'une voiture : cela consiste essentiellement à diminuer le volume des hautes fréquences. Il ne s'appliquera pas aux sons instantanés et en boucle marqués INSIDE dans les voitures et des wagons.

Voir le document EAX4 Sound Designer's Guide (A4).pdf pour la description de ces paramètres.


Sons en cabine

Il faut utiliser le Cab audio control pour déclencher les sons dépendants des commandes (leviers, boutons, interrupteurs) présentes en cabine. Les contrôleurs associés sont hérités de toutes les commandes (Control) définies dans l'Engine Blueprint (Regulator, Reverser, Brakes Controls, etc.).

Klaxons

Snd horns.jpg

Il est préférable de définir le klaxon/sifflet comme un fils Sound de l'Engine Blueprint pour deux raisons :

S'il dépend du contrôle sonore en cabine (cab audio control), le son ne sera pas entendu à l'extérieur de la cabine (comme celui des essuie-glaces). Pour entendre le klaxon plus loin que les bruits de moteur, il faut définir une distance d'activation supérieure et des paramètres d'atténuation adéquats. L'activation du klaxon est réalisée par un contrôleur nommé simplement Horn dans l'Engine Blueprint.

Occlusion

Snd occlu.jpg

Il est utilisé pour contrôler la façon dont le son est affaibli (ou feutré) à l'intérieur d'une cabine : cela consiste essentiellement à diminuer le volume des hautes fréquences. Il ne s'appliquera pas aux sons instantanés et en boucle marqués INSIDE dans les Blueprint cabines.

Voir le document EAX4 Sound Designer's Guide (A4).pdf pour la description de ces paramètres.

Sons d'objets animés de la scène

La sonorisation des objets animés dans la scène fonctionne exactement de la même façon que celle décrite pour les ponts transbordeurs ou les plaques tournantes, à l'aide du contrôleur AnimationTime_AnimationName (sans inclure le suffixe .ia).

Les objets par défaut chariot élévateur et excavatrice, qui sont plaçables directement dans la scène, ont ce type de sonorisation. L'Audio Blueprint doit être référencé comme fils (+Child) dans le Blueprint de l'objet.

Sons de la météo

Les sons de la météo sont paramétrés à l'aide du Weather Audio Control référencé par le Weather Pattern Blueprint.

Il y a 5 variables liées à la météo :

  • vitesse du vent (Windspeed)
  • intensité de la pluie (RainDensity)
  • intensité de la grêle (HailDensity)
  • intensité de la neige (SnowDensity)
  • intensité de la neige fondue (SleetDensity)

Elles sont toutes basées sur les mêmes unités que celles du Weather Pattern Blueprint.

Si vous voulez que le son de la pluie change en fonction de son intensité, vous devrez créer différents modifieurs capables de sélectionner un son en boucle parmi plusieurs.