3D environment Simulation

Hello! I’m working on the ambient sound for my game, and I need to develop a 3D bird sound logic. I’m using the Scatterer to randomize the bird sounds, and every time a sound is played, it needs to remain random but also simulate a 3D effect for the listener. Just like in the image below, the player should be the central axis of the sound, and the sound should play according to the diagram in the image, so that if a bird sings to the left of the player, when they look left, it feels like they’re facing the bird’s direction.

I thought that just the “Min & Max Scatterer Distance” would handle this, since in my layman’s understanding, it would play the sound in various different positions on the map. Since my project is based on a very old game, I believe a triple-A level logic wouldn’t work due to code limitations.

It’s worth noting that I’m not a developer, I don’t speak English, and I just started with FMOD a short while ago.

And as an alternative, I’m also thinking about creating several points within an area and placing the Scatterer event to play at each of these points. Then another question comes to mind: every time I trigger the same event at different points, will it work to play random audio, or will it repeat the same audios at all points every time I hit play? (last image)

quad

A scatterer instrument does randomize the position of each sound that it spawns. However, whether changing the position of a sound affects that sound’s audible properties depends on that sound’s 3D behaviour.

By default, the 3D behaviour of entries in a scatterer instrument’s playlist are as follows:

  • Single instruments are each given a hidden spatializer effect, whose max distance property is set to 20.
  • Other entries have no 3D behaviour by default.

Thus, if you want a scatterer instrument to randomize the apparent position of the sounds it spawns, you must make sure its playlist entries have appropriate 3D behaviour.

To customize a playlist entry’s 3D behaviour:

  1. Delete the playlist entry from the playlist.
  2. Replace the deleted playlist entry with an event instrument.
  3. Open the event referenced by the event instrument.
  4. Add a timeline sheet to this event, if it doesn’t already have one.
  5. Place the instrument you deleted in step 1 on the timeline sheet of the event.
  6. Add a spatializer effect to the event’s master track. Set this effect’s properties however you please.

This depends on the properties of the scatterer instrument, but by default each scatterer instrument will play different audio.

Hello, Joseph! Tks for the answer!

I think I made a mistake by sending the gif trying to explain what I need. This gif is from a reference of another post here in the forum, it conveyed what I need but not in the correct way, so let me explain:

I need the bird sounds to play randomly (just like it already happens, both in time and distance), but I need the sound to simulate spatialization for the listener. So that the listener is always surrounded by the sounds, and if a bird sings on their right side, when they turn to the right, the sound will centralize in both channels of the headphones.

In my game, when I place the sound on the map, it gets set to a specific coordinate. I would need this sound to always be at the player’s coordinate, playing the event sounds.

And I apologize, but I didn’t quite understand your logic, I’m new to the tool and don’t understand much English, so when I translate your text, some things become confusing for me. Would sending my project or a screenshot help you help me?

There are multiple ways to do this.

The first way is to place one or more event instances containing the scatterer instrument at fixed positions in your game world. The advantage of this method is that it allows you to constrain the sounds to only spawning in particular locations. The disadvantage is that it requires more work to set up.

The second way is to attach an instance of the event that contains the scatterer instrument to the listener, replace the scatterer instrument’s playlist entries with command instruments, and set those command instruments to the “start event” command. This works because events spawned by command instruments inherit the position of the instrument that spawned them when first created, but do not move with the parent event instance after that point. This means that new instances will always spawn in proximity to the listener, but will not move when the listener moves, meaning that the listener can turn to face them or walk past them.