The product that I’m working on has a very rich set of data that can be accessed internally or externally through strongly formed names. For example, a user can script to get the engine RPM by asking for “/Engine/RPM” or the 3rd tire’s skidding ratio by asking for “/Tire[2]/skid_rat”. You can also get the “delta” of a variable (per frame) by asking for “DELTA=/Lever/position”. This would get you the change of position per frame…so you can control an FMOD event by automating off of the change of something…maybe you play a squeaking sound as the lever is moving.
Our plan was to have our sound designer name the FMOD parameters using the same exact names. This would allow essentially automatic wiring of sounds to the internal events within the product without needing to write and maintain some conversion table.
What this means however is that events need to be started once and never really stopped. They’d just need to be “muted” when the parameter is in a certain value range. For a few events I’m sure this would be fine but we may have hundreds of events running like this.
I have not yet measured the performance of doing things this way because I figured i would see if this approach is common, or if there’s some more common or preferred way of doing things.