Hi all, I have a “Looping Playlist” playing random short (1-2s) dialogue sounds forming sentences. Now when I “stop” or “switch to a parameter”, the playhead skips to another “Playlist” to play one last sound. This is what I came up with for an (almost) natural sounding dialogue. But there must be something better…
What I would like, is the “Playlist” to stop picking up any new sound clips when I call the “parameter” or “stop”. Basically whenever I call the “endOfDialogue” parameter, I would like the “Playlist” to just stop functioning but keeping playing the last sound clip it has loaded in full, so that I can have a nice and organic ending to the dialogue.
(attached is my system that I want to improve)
Hi,
One setup I like for doing this kind of things is this:
Note the async and the loop buttons, and the sustain point. You end your event by releasing the sustain point.
I’ve just tested this but the problem is that it just stops the audio abruptly, it doesn’t play the last sample in full
If you trigger the stop by stopping the event, that’s the expected behavior.
Ok, so it seems you want a fixed length loop so my previous solution may not be the best. What you should do is adding a condition on the loop, like this:
This will allow the loop to finish the current play before stopping.
Note that it would be safer to uncheck the “loop” button in the multi, since your loop is done in the timeline.
Hi, no I don’t want a fixed length loop, each audio clip has different duration. The method you showed doesn’t work. If I do like you showed it just plays once and then it stops.
Your loop region must be longer than the multi for it to work.
But if you don’t want a fixed length loop, why don’t you try my first setup?
“Your loop region must be longer than the multi for it to work.” If I do that, then the clips will be either overlapping or won’t be playing one after the other, instead they will wait for the playhead to reach the end of the loop, introducing silences.
Your first setup stops the sound abruptly to me.
It stops abruptly if you stop your event directly. You have to click “key off” to trigger the sustain point and so indirectly stop the event.
Oh sorry, yes I missed that! (silly me) that works
Now I need to study the way of calling “key off” in Unity. I have never done that so any quick tips (if they do exist!) are much appreciated
Here’s an even better way for you, which is the best of both worlds:
You can either stop with “key off” or by directly stopping the event.
I wasn’t sure an event state condition on a sustain point would work, but it does work exactly how you’d like to. Event state conditions are a quite recent feature in FMOD, that’s why I didn’t think to use it in my first setup!
This is awesome, it works a treat! thank you very much and sorry for my mistake. You’re a star!
1 Like