Has anybody come up with an elegant solution to supporting different reverbs for each player/listener in splitscreen multiplayer?
I have seen a few comments regarding masking the problem by blending two reverb snapshots together, but it’s not ideal. Alternatively, setting up reverbs per effect seems drastically more expensive than it needs to be.
I’m keen hear people’s thoughts.
There are probably a handful of imperfect solutions to this. Here’s my version and logic: First, I’m assuming you’re sending to the reverb return from a group bus (not directly from events). So, anything you’ve got going into that bus is going to get sent to that reverb. Which means you’ve got to bypass that group bus for Player 2. So you’ll need to:
- Create a new return which will function exactly like the group bus (or busses) you’re routing player-specific audio to. Then another return for Player 2’s reverb.
- Open the Preset Browser, use the Effects tab, and make a new preset > New Effect Chain.
- In the chain make a Gain plugin, and a Send to the new Player 2 return.
- Add Automation to both of them. Add Curve to the Gain and make a new local parameter “Player2” with default settings. Add the same param to the Send.
- Set one to fade out while the other fades in.
- Now “all you need to do” is drop that Preset after the master fader of every bloody event. It’ll automatically add the Player2 param to the event.
Now just make your send from the P2 return to the new P2 reverb return, recreate snapshots for your new returns, etc.
For what it’s worth, even though this is relatively simple unless you’re deep into it and already have hundreds of events, I’d definitely try out that blending approach you mentioned first to see if it’s bearable.
I’m eager to hear others’ approaches as well.
Thanks for the detailed reply! It’s certainly one way of doing it but as you said, it means adding and managing effect chains and parameters on every event which feels very overkill.
Once I actually find a solution I’ll post it on here and show my findings
The nice thing about using a preset is it’s just drag and drop on every event. No setting the curves up more than the first time, no creating a parameter for each event since it automatically plants it.
A few other options:
Create 2 reverb sends from master of all events. Use level triggers to drive those sends up when the event is within the trigger region.
Duplicate all player events for player 2, route then to player 2 bus with its own verb send.
You can load up two simultaneous instances of the FMOD system. On player 2, turn off all busses that are not gameplay sounds, the Music, UI, etc. busses. You’re doubling your RAM usage with this approach, but could curtail that by making a separate project and removing the unnecessary stuff, and even compressing your data more.