Hi! We’re at a late stage with a game we’re working on and have a question about an easy way to accomplish a certain task.
We have a ‘velocity’ preset parameter that is being used across a bulk of events in-game. On certain instances only we would like to introduce a slower seek speed (it’s set to ‘Instant’). This might not be possible, but is there a way we can set a custom seek speed for specific instances of this parameter? I know we can duplicate the parameter, call it something like ‘velocity_slow’, and adjust the seek speed, but because we’re at the tail end of this I was hoping there might be a way to tweak this at a per-event level on our end (we’re doing the sound) so the devs don’t have to update a bunch of events in Unity itself.
It might be a bit hacky but you probably could automate another private parameter on your velocity parameter, with the seek speed you want, and use the new parameter on those events (using the replace function). That way, the code would not have to be changed.
Automating an event-specific parameter on another parameter, as Alcibiade suggests, would be an effective solution that would require no special code.
You could also potentially create multiple different preset parameters with the same name. This would allow you to give each version its own seek speed, though you’ll have to put each such preset parameter in a different preset parameter folder to avoid name/path clashes.
Thank you both for the replies! I think we’re going to go with your second suggestion Joseph as it would allow us to use those slower seek speeds as presets quickly and easily. Thanks again!
Bringing this post up again as I couldn’t figure this out!
I’ve got a parameter A which goes from 0 to 1, controlling a crossfade between layers and a master channel EQ on an event.
In one context, I want to transition from 0 to 1 slowly. In another, I want to transition quickly.
I tried using new parameters B and C, each with different seek speeds, and having A be automated by both B and C. My intention is to use the parameters B and C in my code when I want the different seek speeds. However, no matter how I set up the automation curve, The value of A can only ever reach 0.5 unless both B and C are at 1.
How would I go about the solutions suggested above so that I could access different seek speeds and modify the same internal parameter?
This is the expected behavior. When a parameter is automated on multiple different parameters, it is set to the average of the values it is set to by those multiple parameters. (More broadly, when a property is automated on multiple parameters, the method by which the values to which it is set is derived depends on the type of property being automated, as described in the Automation Curve Combination section of the FMOD Studio User Manual.)
The method I described in earlier posts of this thread depends on creating multiple different parameters that share the same name, so that each of those parameters can be given different property values (including seek speed) and used in different events. As long as you do not want different instances of the same event to exhibit different parameter seek speeds, this method should work without problems.
If you want a parameter to exhibit different seek speeds in different instances of the same event, there may be a way to do it, depending on which version of FMOD Studio you are using. If you are using FMOD Studio version 2.03.00 or later, you should be able to achieve the behavior you want by automating the speed property of your seek modulator. If you are using any earlier version of FMOD Studio, having the same parameter exhibit different seek speeds in different instances of the same event is impossible.
As long as you do not want different instances of the same event to exhibit different parameter seek speeds, this method should work without problems.
I have a single event for the music being played in a single event instance in Unity. In one in-game case I want parameter A to go from 0 to 1 slowly, and in another, I want parameter A (on the very same event instance) to go from 0 to 1 quickly. In both cases, ideally in the code I can just set the parameter to 1 and have fmod handle the two different seek speeds, rather than recreating seek speed logic in code, but am happy to change how I call setParameter if needed to specify the behaviour. It doesn’t need to literally be a single parameter A in both cases, but whatever achieves the same effect. I’m not sure I understand how to use multiple parameters with the same name to achieve this?
I’m using a 2.02 version, and can upgrade if necessary. (If what I’m asking is impossible let me know and I’ll just implement it on the Unity side!)
If that’s the case, using multiple parameters with the same name won’t help. As I said in my earlier post, that solution will only work in cases where you need a parameter to have different behavior in different events.
If you want to achieve this behavior, you will have to upgrade to FMOD Studio 2.03.00 or later. As I said in my previous post, having the same parameter exhibit different seek speeds in different instances of the same event is impossible in versions of FMOD Studio prior to 2.03.00.
That being said, I recommend updating your FMOD Studio version only if there’s still a long time to go before your game is released. If release is right around the corner, there’s a chance that the new version might result in changes in behavior that you do not have sufficient time to detect and accommodate for before release. On the other hand, if you’ve only started working on this game project recently, updating to a new major version shouldn’t be a problem.
If you do uupgrade to FMOD Studio version 2.03.00 or later, you should be able to achieve the behavior you want by automating the speed property of your seek modulator on a parameter other than the parameter whose value you’re trying to change at different rates.
Great, I’ll look into 2.03 versions in the future since we do have a near deadline. Although, you keep mentioning “different seek speeds in different instances” when I mean to get different seek speeds within a single instance, so it may not be doable on the fmod side after all. But I’ll find out (and for anyone reading in the future, I’ll report back), thanks for the help!
The solution I suggested will work for getting different seek speeds within the same event instance, too; I only mentioned different event instances because it’s the more common use-case.