Using Parameters in lieu of triggered events

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.

This approach would certainly have a performance overhead. Even when events are “muted”, the Studio runtime still has to update the event’s state (eg. timeline, AHDSR, etc) each tick. If you are looking at hundreds of events running like this, the performance hit is probably going to be significant. However, the actual figures are going to depend on the platform specs, the complexity of the events, and other factors.

Do you have the option to stop / start events on demand, rather than mute / unmute them? A stopped event preserves its parameter values, but does not incur any update or mixing overhead.

Also worth noting, using event sounds you can in fact start and stop events based purely on a parameter value.

1 Like