Hi, we are working on an event used as a trigger for a teleport SFX in our open world. We used a snapshot instrument in the same event to trigger a lowpass filter on the music. Now this needs to be 3D as well. The problem is that even though the event itself is 3D (with a spatializer on the master) only the SFX seems to work within the given range of the spatializer. The snapshot instrument in the event itself doesn’t seem to be 3D and affects all players on the whole island whenever someone teleports.
Any ideas on how to fix this?
Assuming that you’re making a network multiplayer game (as opposed to a splitscreen multiplayer game), you should be able to solve the issue by automating the snapshot instrument’s “Intensity” property on a distance (normalized) built-in parameter, such that the intensity is 100% at the left end of the parameter and 0% at the right end.
To explain why this works, and why the spatializer effect on its own doesn’t, I’ll first have to explain a few other things:
A spatializer effect pans and attenuates the signal at its position in the signal chain. By putting a spatializer effect on the master track as you have, you ensure that that effect will pan and attenuate the master track’s submix of all the signals output by the other tracks of the event.
A snapshot instrument, however, does not output a signal. Rather, it creates an instance of a snapshot, which affects properties in the mixer. As such, the snapshot instrument does not produce any signal that’s mixed into the master track for the spatializer to attenuate.
If you want a snapshot’s effect on the mix to vary, you need to automate its “intensity” property. The intensity property governs how strongly a snapshot instance adjusts the mix; if intensity is 0%, the snapshot has no effect on the mix, whereas if it is 100%, the snapshot’s property values fully replace those of the base mix.
A distance (normalized) parameter is a built-in parameter that measures the distance between the listener and the event instance. The minimum and maximum values of a distance (normalized) parameter are those specified in the event’s macro controls - in your event, 1 and 20, respectively.
Putting all those details together, automating the snapshot instrument’s “Intensity” property on a distance (normalized) built-in parameter such that the intensity is 100% at the left end of the parameter and 0% at the right end means that the effect of the snapshot will be strongest when a player’s associated listener is within the event’s min distance and non-existent when it is outside of the event’s max distance. Assuming I’m correct about your making a network multiplayer game, this means that the snapshot will only affect the mixers of players who are close to the “SFX_WorldTransition” event instance when it plays.
Hello, I was having a very similar issue and the normalized distance parameter did the trick.
However I noticed something I didn’t expect would happen. If a spatializer effect has a distance override, such override gets bypassed and the event’s macro distance control returns. This defeats the purpose of having spatializer presets.
Is there a reason behind this behavior? Would it be possible to scale the normalized built-in distance parameter to a spatializer override?
I’m afraid I have not been able to reproduce this behavior. When I test here, the spatializer effect’s distance override property correctly causes the spatializer effect to use its own min and max distance properties instead of those of the event.
Forgive me if I’ve misunderstood, but it sounds like you might be expecting the distance (normalized) parameter to use the min and max distance properties of a spatializer effect whose distance override is turned on. If so, that is not how it works. Instead, know that every event has min and max distance values specified in its macro controls, which function as the default min and max distance properties to be used by effects and parameters in that event. Individual effects and parameters may use those default values values (as in the case of “distance (normalized)” parameters and spatializer effects with override disabled), or they may use their own values (as in the case of “distance” parameters and spatializer effects with override enabled). Because the purpose of overriding the effect’s min and max distance properties is to allow individual items within an event to use values that differ from the event’s defaults, the override property of a spatializer effect only affects the min and max distance of that particular spatializer effect, not the min and max distance of other effects and parameters within the event.
If you want the spatializer effects and distance (normalized) parameters of an event to use the same min and max distance property values, you should set the spatializers’ override properties to “off.”
Alternatively, if you want an event’s distance parameter to use different min and max distance values to those specified in the event macro controls, you should change the parameter’s type from “distance (normalized)” to “distance.” Because parameters may be shared between multiple events, this will ensure that every event featureing that particular parameter will use the same min and max distance values for that parameter. (Of course, if all the spatializer effects in an event have their distance override properties set to “on,” and all the distance parameters in that event are “distance” parameters instead of "distance (normalized) parameters, the event does not actually use its min and max distance properties for anything.)
You are mistaken. The purpose of shared spatializer effects is the same as that of any shared effect: To allow an effect to be used in multiple different events with the same properties. This behavior works as expected in events with spatializer effects whose distance override properties are enabled, and so the behavior of the spatializer’s distance override property does not undermine this benefit.
No. The min and max distance properties of an event are the default min and max distance for effects and parameters in that event. It is possible for an effect or parameter to deviate from those default values (by using a “distance” parameter instead of a “distance (normalized)” parameter, or by using a spatializer effect with distance override enabled instead of a spatializer effect with distance override disabled), but it is not possible to set up competing alternative default min and max distances for an event and set specific items to use the alternative default values instead of the normal default values, as having multiple competing defaults for the same event would defeat the purpose of having defaults.
I am gonna try to be more specific here.
I am working on an event that has audio and also a snapshot instrument that I use to briefly duck the music as a way to sidechain based on how close/far the player is from the source object. This is a case where I prefer to do this instead of using traditional loudness-based sidechaining in the groups mixer because it gives me more precise control over the mix independently of whatever else is happening in the mix chain.
I wanted to use the normalized distance parameter to control the snapshot intensity so that it would always scale to the min-max values set in the spatalizer override preset in case that was to change down the line. (We are also considering implementing dynamic zoom levels so we will need to figure out a way to scale all emitters accordingly.) The event has only 1 spatializer in the master track. When inserted, having the override ON, the event’s macro min/max disappear. Therefore, my expectation was that the normalized distance parameter would follow the override settings on the master track instead of reverting to the event’s macros.
All of this was in an effort to keep things scalable and repeatable across the project.
The min/max distance slider in the event macro controls disappearing was a bug, and was fixed in FMOD Studio version 2.02.14. In more recent versions, the control correctly remains visible.
As I said in my previous post, the override property of the spatilizer effect is working as expected, because the properties of an effect are only meant to apply to that effect, not to other effects and parameters in the same event.
I can see how being able to set the min and max distance of multiple events in a central location would be a useful feature, but it is not something we currently support. I’ll add you to the list of people who’re interested in this feature.