"Since, during level load, the sounds are (legitimately) out of range, and therefore calling PlaybackComplete and subsequently deleting themselves, they never play. When you do move back within range of the sound, the component has been deleted. However, commenting out PlaybackCompleted in PlayInternal so that the audio component doesn't delete itself, the audio component never gets PlayInternal called on it again even when you move in-range."
I just realized why this worked in 4.10 and why it doesn't (intentionally) work in 4.11. In 4.10, it would play the sound no matter what its range was, which created an "active sound". This active sound would then try to play itself every frame and as soon as you walk in-range, it would then generate active wave instances and start the sounds. This was precisely the behavior we wanted to optimize out! The only intentional exemptions we added was if the sounds were looping sounds (which is why this implementation still works in 4.11).
So, I'm actually going to tentatively say that this may be "as designed"... maybe we can add an exemption specifically for ambient sound actors? I.e. add a flag that we can check to exempt the audio component from distance checks and set that flag in the specific case of ambient actors? Maybe add it as a user-visible flag to ambient actors so people can turn it on/off at will?
When upgrading a project to 4.11, Sound Cues placed in the level with the 'Attenuation' override node no longer playback as expected.
This issue was a bit weird when testing because the user reporting the bug mentioned some odd steps for reproduction. He has a workaround, but it does not persist when he restarts the editor.'
"I saved the project, closed unreal. Opened unreal 4.11 and opened the 4.10.4 project. I chose to convert in place. Once the project opens up in 4.11, If I got to the sound cue and hit play it won't play. I would have to go to the attenuation node, check off override attenuation. Hit play, it now plays. And check override attenuation on again. Issue comes back in when I close and open the engine."
Aaron M. I know you made a lot of changes to the Audio framework for this release, and especially with the default behavior of concurrency, which the user also points out as well. If there is anything else you need from me, let me know.
1. Open the attached project level.
2. PIE in the default level.
3. Now open the project in 4.11 by using the 'Convert-in-place' option.
4. PIE in the default level.
Outcome Sound cues placed in level will no longer play.
Expected Sound cues play similar to how they did in the 4.10.4 version of the project.
Tested and Reproduced 2/3 times
Head over to the existing Questions & Answers thread and let us know what's up.
0 |
Component | UE - Audio |
---|---|
Affects Versions | 4.11 |
Target Fix | 4.11.2 |
Created | Apr 5, 2016 |
---|---|
Resolved | Apr 6, 2016 |
Updated | Apr 27, 2018 |