I’m using FMOD 2.07 and UE4.24. We’re thinking about updating FMOD to 2.1.
I created a MusicPlayer event, which contains all of our music cues and triggers them via a MusicState parameter from 0 to 10, being 0 silence.
When I play the event in FMOD, it works with no issues and changes the cue right after I select a parameter change. However, in Unreal, when I open the file and click play and change the parameter it is complete silence. I wanted to ask if anyone has any idea of why that is or what could be that is preventing it from playing in UE4?
i can’t be sure without seeing your event, but I’m guessing the event isn’t persistent. You can set an event to be persistent by clicking the “persistent” toggle button in its macros.
Instances of non-persistent events automatically stop if they are not playing content and there is no content to the right of their timeline playback positions. As a result, if all content in your event is played by a parameter and the event is silent by default, it will stop immediately upon starting if it is not persistent.
If the event is already persistent, it is possible that the parameter value is not being set correctly in UE4. Are you able to send us the blueprint or script you’re using to set the parameter value?
It’s also possible that the parameter you’re using is set to “hold value during playback.” Parameter instances with this option enabled can only have their values changed while the event instance is stopped, not when it is playing. You can view and change this property in the edit parameter dialog.
Thank you for your answer. I tried both checking “Persistent” and also checking if the parameter had “hold value during playback” which it didn’t.
I am attaching some screenshots here. You can see my Music Player event, which has 3 parameters. MusicState is between Cue to Cue, which has silence as 0 and other cues are triggered from 1 to 10. The Subcues are the cues inside each music event, and are from 1 to 4. And the Layers are inside each Subcue to trigger more layers. I also added a link to the test Blueprint I’m using in a level BP. However, I’d love to add it to an actor BP or something I can repeat in multiple levels. The real issue is that when I click on the MusicPlayer event inside Unreal and switch the MusicState parameter, it still does not play.
Any help would be really appreciated.
It’s a global parameter so you might want to use the “Set Global Parameter By Name” node. It should work as it is if the parameter was a local one.
Ah, you’ve built your event on the timeline. That means that event persistence probably isn’t the issue.
Could you try setting the initial value of the MusicState parameter to something other than zero, to see if the event produces audio if it starts at a different value? If it does not produce audio at a different value, it is likely that the issue is unrelated to the parameter, but is actually caused by some other feature of the event - perhaps attenuation from a forgotten spatializer effect or scatterer instrument.
When I used the “Set Global Parameter by Name” node in Unreal, it works. However, one of my cues is supposed to be silent, as I am adding a 3D music cue, which will be playing from a specific area. So, when I put it to silence, it automatically restarts the cue again.
As of now, this is what a have:
- 1 Music player Blueprint that triggers the Music Player on a certain level.
- Multiple trigger boxes Blueprints that I want to trigger the change in the MusicState parameter from the Music Player and go back to the original MusicPlayer cue when you leave the box.
What is the best way to adapt this box trigger to “control” the parameter of the MusicPlayer until you leave the box?
I’m afraid I don’t fully understand your requirements. Could you please describe the behavior you want to achieve, in detail?