sound_weather - ryzom/ryzomcore GitHub Wiki


title: Sound Design for Weather Effects (2003) description: Guide for setting up weather-driven ambient sounds using zone placement and user variable bindings published: true date: 2026-03-15T00:00:00.000Z tags: editor: markdown dateCreated: 2026-03-15T00:00:00.000Z

Translated from "fr 2003 sound Sonorisation des effets mΓ©tΓ©orologique" β€” a Nevrax production guide describing how to set up audio for weather effects using ambient sound zones and user variable bindings. {.is-info}

Setting up sounds for weather must allow associating a more or less elaborate sound with each weather state and for each zone.

For example, you could have a different sound for variable rain intensities, and a different sound for rain falling on a plain versus in a forest.

Tools Used

Weather sound design is primarily based on the ambient sound system. Sound placement is done using ambient sound zones in the World Editor. By convention, ambient layer 5 is used for weather sounds.

A Georges sheet then allows associating sounds with the weather state.

Weather Description in Ryzom

The weather is composed of a list of atmospheric states. These states are crossfaded one after another as the weather deteriorates.

Each state is identified by a name.

For example, for jungle environments, the following states are available: mist, fair1, fair2, fair3, clouds, rain1, rain2, snow1, thunder1.

Furthermore, depending on the season, the sequence is different. For the jungle, in spring you only find mist, fair1, fair3, clouds, and rain1, whereas in winter you will find mist, fair2, clouds, rain1, rain2, and snow1.

In total, the following weather states exist:

Fair weather:

  • mist: morning mist
  • fair1: fair weather
  • fair2: fair weather β€” some clouds
  • fair3: fair weather β€” pollen

Cloudy weather:

  • clouds: cloudy β€” light wind
  • rain1: drizzle β€” light wind
  • rain2: rain β€” light wind
  • snow1: snow β€” light wind

Storms:

  • thunder1: heavy rain β€” strong wind β€” lightning
  • thunderseve1: runoff β€” sap lightning β€” light wind
  • thundersand1: sand β€” strong wind
  • thundersand2: dense sand β€” strong wind
  • thundersand3: very dense sand β€” strong wind

The table below gives a global view of all states and their sequencing in each environment and for each season.

Weather state table showing all atmospheric states, their visual parameters, and which biomes and seasons use each state

Note: for each type of environment, only a subset of the states is used.

Placing Sound Zones

As with ambient sound placement, weather sound zones are placed in the World Editor based on geography. The parameters that influence the sound of atmospheric effects can be the nature of the ground, the type of vegetation, etc.

Furthermore, the zone masking rules for ambient sounds apply in the same way for weather. For example, it is possible to place a large zone over a forest, then place a smaller zone inside the first one to change the sound heard in a clearing in the middle of the forest.

Creating .sound Sheets for Weather

The sounds used in World Editor zones for weather must be built as complex sounds in "AllInOne" mode. You then add as many parts to this complex sound as there are weather states in the environment you are adding sound to.

For example, for the jungle, the following states exist: mist, fair1, fair2, fair3, clouds, rain1, rain2, snow1, thunder1 β€” that is 9 states, so at most 9 parts (or sub-sounds) in the weather sounds for the jungle.

If certain weather states do not need sound (e.g. fair1), then there is no need to create a sub-sound in the complex sound.

The sub-sounds can in turn be simple, complex, contextual, or ambient sounds (the combination possibilities are virtually unlimited!).

Binding Between Sounds and Weather State

Once the sounds are created and placed on the map, it remains to link the weather state with the sounds for each state.

This is done using a series of Georges sheets with the user_var_binding.dfn format. Each of these sheets allows linking a user variable with a parameter (gain or pitch) to a list of sounds. All sound sources created from this sound will be controlled by the user variable.

In the Ryzom client code, each weather state is associated with a user variable of the same name, whose value is updated based on the weather.

The binding between the user variable and the sound(s) for that particular state is established through the user_var_binding sheet.

For example, if you want to control the volume of the normal rain sound in the forest, you would create a sheet to bind the variable rain1 to the sound rain1_forest.sound, which is itself used in the complex sound weather_forest.sound that was placed on the map.

A Step-by-Step Example: Matis

1 β€” Creating the Sounds

The first step for weather sound design consists of identifying the states you want to add sound to, then determining for each of these states whether multiple variants are needed (plain and forest, for example).

For Matis, three states can have sound: rain1, rain2, and thunder1.

Furthermore, the Matis territory is composed of forests, plains, and a desert area. One can easily assume that the sound of rain will be different in each of these zones.

This means we need 9 base sounds:

  • weather_forest_rain1.sound
  • weather_forest_rain2.sound
  • weather_forest_thunder1.sound
  • weather_plain_rain1.sound
  • weather_plain_rain2.sound
  • weather_plain_thunder1.sound
  • weather_desert_rain1.sound
  • weather_desert_rain2.sound
  • weather_desert_thunder1.sound

These base sounds can of course be any combination of simple, complex, contextual, or ambient sounds.

Once the base sounds are created, we now need to create three sounds that will be placed in the World Editor zones:

  • weather_forest.sound
  • weather_plain.sound
  • weather_desert.sound

These sounds are complex sounds in "AllInOne" mode, into which the three base sounds for each zone type are added. This means all base sounds will be launched simultaneously, but thanks to the user variables, only the relevant sounds will actually be heard.

2 β€” Placing Zones in the World Editor

You can now place zones in the World Editor. The weather complex sounds are placed in the same way as ambient sounds. For example, you can place a huge zone over the entire territory (excluding the desert) and assign it the sound weather_plain.sound, then place smaller zones over each forest with the sound weather_forest.sound, and finally place a zone over the desert with the sound weather_desert.sound. All these sounds are placed in layer 5.

World Editor properties dialog showing a weather zone named 'weather_forest' assigned to layer 4 (should be layer 5 by convention), with annotations A pointing to the zone name field and B pointing to the layer selector

It will also be practical to group the sound zones in a weather folder.

World Editor folder tree showing the sounds hierarchy with various environment folders (kami, marecage, waterfalls, grotte, arena, geyser, jungle, forest, desert, etc.) and a 'weather' folder at the bottom containing 'weather_forest'

3 β€” Creating the Binding Files

All that remains now is to link the user variables controlled by the game's weather system with the base sounds.

To do this, create a sheet in the Ryzom/data/sound/user_var_binding directory for each state that needs to control sounds.

In our case, we will create rain1.user_var_binding, rain2.user_var_binding, and thunder1.user_var_config.

For all three sheets, the parameter to control is the volume. Write "Gain" in the ParamId field.

In rain1.user_var_binding, indicate that the variable "rain1" controls the gain of the sounds weather_forest_rain1.sound, weather_plain_rain1.sound, and weather_desert_rain1.sound, by filling the "Name" field with rain1 and creating three entries in the Sounds array filled with the names of the three sounds.

In rain2.user_var_binding, indicate that the variable "rain2" controls the gain of the sounds weather_forest_rain2.sound, weather_plain_rain2.sound, and weather_desert_rain2.sound.

Finally, in thunder1.user_var_binding, indicate that the variable "thunder1" controls the gain of the sounds weather_forest_thunder1.sound, weather_plain_thunder1.sound, and weather_desert_thunder1.sound.

Subsequently, when new base sounds are created, you just need to add them to the sound list in the existing sheets.

Sound Design for Instantaneous Effects (Lightning)

Certain effects like lightning are given sound directly in the code. Nevertheless, the code simply spawns a predetermined sound source. It is possible to compose this sound source using contextual sounds, complex sounds, etc.

For example, the lightning sound is produced by thunder.sound.

This sound is actually a contextual sound that contains a random selection pattern choosing from 4 sounds: thunder_r4.sound.

There are then four sounds: thunder_0.sound, thunder_1.sound, thunder_2.sound, and thunder_3.sound.

These sounds are complex sounds in sparse mode with a fast beat rate (beat at 10 or even 100), which allows launching several small sounds with very close intervals.

⚠️ **GitHub.com Fallback** ⚠️