I’m rather new to FMOD Designer but I’m hoping I can get some clarification regarding event categories. I’ve got multiple ‘Simple Events’ which are spread over a few Event Groups (Rewards, Emotions ). I only want one of these simple events to play at a time. I thought that I could accomplish this using the Event Categories. So I setup my project like so

Event Groups
[list:1aw097e2] – Rewards
[list:1aw097e2]- collect_money[/list:u:1aw097e2]
[list:1aw097e2] – collect_experiance [/list:u:1aw097e2] [/list:u:1aw097e2]
[list:1aw097e2]- Emotions
[list:1aw097e2]- player_happy [/list:u:1aw097e2]
[list:1aw097e2]- player_sad[/list:u:1aw097e2]
Event Categories
[list:1aw097e2] – master
[list:1aw097e2] – music [/list:u:1aw097e2]
[list:1aw097e2] – InGameEffects
[list:1aw097e2] – collect_money[/list:u:1aw097e2]
[list:1aw097e2]- collect_experiance[/list:u:1aw097e2]
[list:1aw097e2] – player_happy[/list:u:1aw097e2]
[list:1aw097e2] – player_sad[/list:u:1aw097e2]
The settings for the InGameEffects category are as follows:

Max Playbacks : 1
Max Playbacks Behaviour: Steal Oldest

All of the effects have the same steal/priority settings.

But when the game tries to play two effects at once, both are played, the Max Playbacks seem to be ignored.

Any help or clarification would be great.


  • You must to post comments

AFAIK, max playbacks are for each individual event. There’s an excellent example of how max playbacks work in page 213 of the manual regarding "limiting polyphony" and hearing the footsteps of a group of 32 people.

For what you want to do, there are two ways that I can think of:

1) Use a multitrack event and set the velocity to a speed that will travel across the parameter and act as a "timeline". (I cannot stress to you how much the parameter line is NOT a timeline, but can act like one. Once I got that down, it was easy for me to think of audio linearly and non linearly.)

If you put two sounds on a layer the playback head will travel across them and play both sounds in order. For the second sound, make sure you set the "sound instance property" (page 369 for a description, page 219 for one of the scenarios to use it) to "wait for previous". The second sound won’t trigger until the first sound is finished.

This is only possible if you have two sounds that you know are going to be played together. Otherwise, you’ll be making every possible permutation either in several multi-events, or doing it all in several layers in a multi-event and having your programmer know that:

collect_money + happy= param 01
collect_money + sad = param 02

collect_experience + happy = param 03 ………. etc…. etc….

Lots of work. If not then see number 2.

2) Get your sound programmer to do it in code. I had my sound programmer do that for a bunch of events that needed to be cued so all the notification sounds didn’t happen at once. In fact, what I needed was the notification sound, then another sound to follow. I made each notification sound a multitrack event that had two sounds play one after another. That way, each notification followed in sequential order like pushing tin in for an airport.

In terms of how I use Event Groups, it makes it easier to load and unload groups for performance purposes. Say for example your character has a gun at level 1. You stick with that group "Gun_Level1" for a while. Then when they upgrade, unload "Gun_Level1" from memory and load "Gun_Level2". This is done on the programmers end.

Hope this helps!

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.