Spawning random "stationary" 3D spatialized sounds without dev/engine support

Hey there,

Wanted to poll the community here on how they spawn random “stationary” 3D spatialized events without dev support. What I mean by this is the sound is spawned in 3D space and has it’s appropriate distance attenuation and panning applied. An example might be birds/bugs in a forest. The sound spawns but you can still “walk” past it, without it being hand-placed in the level. I feel like this is something that is done often in games and thought it would be pretty straight forward. Maybe I’m missing something?

For the longest time I thought maybe Scatterers could do this, but after perusing here for a bit and trying some things out in-game it looks like events started this way (by placing event references within the Scatterer, each with their own spatializer) will move with the event in which they were referenced. This makes sense because all of the signal is going through that parent event.

In walks command instruments and their ability to start/spawn events without sharing routing. What I’ve found by starting events this way, is that the Command-Instrument-Started event (if 3D with a spatializer) will spawn at the current location of the parent event that started it. So if the parent event is tied to the listener, then the started event will spawn at the listener’s current location and then you can walk away from it. That’s progress.

Now, having the sound spawn right on top of you isn’t ideal most of the time. So how do you go about offsetting that event’s spawn location from the parent event that started it? For now I’m just applying some random direction, pre-spatializer so that it sounds like it’s starting from somewhere other then where you are and will rotate/move while you move, but you can’t do things like starting the sound in front of you and move towards it. You can still only move away from the spawned event and it will fold down/attenuate as you move farther away.

Long post…but would love to hear if others have been able to achieve what I’m talking about. My solution above works pretty well if the parent event isn’t tied to the listener, but say, to a spline along the edge of the forest that you’re walking by, but I think there’s room for improvement.

Thanks for reading!

I understand your problem, but I don’t get why you need to do it that way, nor what type of effect you exactly want. Why isn’t it possible to place an event in the game map? How do you retrieve from the game the location where you’d like the sound to come from? Should that sound be at a specific place, or at a random place within a range, or at multiple places at the same time?

There is no way to spawn an event instance in the game world in a specific position without specifying its location in code, other than the ways you have already observed and rejected.

In what circumstances are you able to add new events to a game, but unable to specify their locations? I am not aware of any game engine that has that limitation, and find it hard to imagine why such a limitation might exist.

Also, I’m not sure why scatterer instruments don’t achieve what you want. It’s true that if a scatterer instrument moves, its spawned sounds move with it, but why not just use stationary scatterer instruments?

Thanks for the replies. “Why are you trying to do it this way?” is a legit response and kind of what I expected. I work on a game where we don’t do this kind of thing often which is why I was originally polling on how other’s tackle it.

Based off the responses, it seems the “normal” way to achieve the same effect would be to hand-place all the events around a level? While this is entirely possible, it feels pretty tedious and static when the desired result is “random” placement. Maybe others are tying these events to game objects, like trees, so any random bird sound will come from one of the many trees when placed in a level?

Outside of the forest example I’m envisioning other uses for spawning the random stationary events, like random dopplered sounds that could pan and doppler accordingly/dynamically based off speed and direction.

Again, thanks for the discussion. :slight_smile:

The method that seems the most appropriate to what you’re describing would be spatialized scatterer instruments per zone.
Exemple, you create a 3D event called “forest zone”, placed in the game level, at the center of the zone. This event would contain one or several scatterer instruments (birds, etc…). You’ll define scatterer max distance accordingly to the “radius” of the zone. Increasing the scatterer min distance is also great to have the sound less polarized on the center of the zone.
Also, you’ll have to set the spatializer sound size = min distance = the radius of the zone. This will let the scatterer handle the spatialization whithin the defined zone. The spatializer max distance should be set to define the range where you’re not anymore in the “zone” but still want to hear the sound coming from it.

1 Like

I’ll play around with that method more and see if I can make it work for my purposes.

Heya, I don’t think there is a way to achieve exactly what you want in FMOD alone. Scatterer instruments can get close, but it sounds like what you want will require some scripting in the game engine to spawn in sounds — you won’t have to hand-place them, but you will need someone who can code to write a script that can do this.

1 Like