Announcement

Collapse
No announcement yet.

Unreal Engine 4.16 Preview

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by xN31 View Post
    Hello Dan, thanks for the info, very useful! I'm very happy to see the new audio engine and the steam audio SDK in this release, I've been waiting eagerly for them ;-)

    A couple of questions:
    - How can I double-check if the new Audio Engine is correctly enabled? I set the AudioDeviceModuleName parameter in WindowsEngine.ini the editor's config folder (not the project one). Is this sufficient or shall I also use the command line parameter?
    - How do you tag the static meshes? Is it sufficient to add a component tag with the text "Phonon Geometry Component" in the details panel?
    - When I exported the scene the first time there was a dialog asking if I want to import the .obj file generate. Is this necessary? (I didn't..)
    - How can I double-check if occlusion are working properly? In my case either the effect is too subtle (even using 100 as Occlusion Volume Attenuation I cannot tell any difference) or not working at all..
    - When I exit from the VR preview with the plugin enabled the editor crashes (only after tagging and exporting the scene as above, before it didn't)
    - I cannot package a win64 executable with Steam Audio enabled, when I try I get the linking error below. Any idea how to fix this?

    UnrealBuildTool: UELinkerFixups.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl EmptyLinkFunctionForStaticInitializationPhonon(void)" (?EmptyLinkFunctionForStaticInitializationPhonon@@YAXXZ) referenced in function "void __cdecl UELinkerFixups(void)" (?UELinkerFixups@@YAXXZ)
    Hey xN31! I'm sure [MENTION=655292]freeman_valve[/MENTION] can expound on improvements they've made that we weren't able to get in already, but it's worth repeating that it's in an experimental state at the moment. Packaging is just one of the many things we're eager to resolve as we refine and improve the implementation. In some ways, Steam Audio goes places our plugins have never gone before as it's a very deep replacement of core audio engine features. We're interested in streamlining this process so that Steam Audio and any other interested developer can make deep changes to how our audio engine works.

    With that said, it's worth exploring the Steam Audio Plugin Settings in your Project Settings:

    Click image for larger version

Name:	steamaudioprojectsettings.JPG
Views:	1
Size:	96.3 KB
ID:	1126979

    The length of your impulse--the duration of the impulse--is your Impulse Response Duration, and the Indirect Contribution is like a gain value.

    Once you have it working, you'll want to go over these Global Project Settings to tune your performance and preference.

    In my very brief time experimenting with the plugin for GDC, my preferences were to lean toward a higher ambisonics order (which increases the accuracy of the spherical response), a shorter impulse duration, and a slightly boosted indirect contribution. The result felt like a subtle early reflection, which was very nice for giving a feeling of physical presence to the level geometry, and then I paired it with our algorithmic reverb as an optimized and more aesthetically designed late reflection.

    However, I think there are lots of opportunities for use and I'm excited to hear what people come up with and encourage experimentation.

    (The HMD transition crash could be a bug with audio device swapping and the current version of the Steam Audio plugin)
    Dan Reynolds
    Technical Sound Designer || Unreal Audio Engine Dev Team

    Comment


    • Originally posted by TheJamsh View Post
      As for the new Audio Engine, I noticed in Aaron's demo at GDC he was using an envelope to drive materials.

      Are there new Material Nodes available for this or is this purely a Blueprint/C++ implementation? I made a frequency spectrum analyzer in 4.15 with C++, but it relies on storing compressed bulk data of the original .wav as an asset. Being able to read from sound-cues in real time would be nice!

      EDIT: Totally gonna abuse the volumetric particle feature... Can these special particles also be driven with textures?
      Hiya TheJamsh,

      There are a few steps involved in setting up an envelope follower, but once you have it, you can do whatever you want with the data; whether that's feeding scalar values in a Material Instance or driving some other game parameter!

      The first thing you'll want to do is set up a Source Effect of the Envelope Follower type:
      Click image for larger version

Name:	Setting_up_envelope_follower_01.JPG
Views:	2
Size:	39.6 KB
ID:	1126981

      Then you'll want to put this effect in a Source Effect Chain. Source Effect Chains are pre-attenuation effect chains processed in order of listing that you attach to a source sound (Like a SoundWave, or a SoundCue, or a Synth, or whatever you like).
      Click image for larger version

Name:	Setting_up_envelope_follower_02.JPG
Views:	2
Size:	44.3 KB
ID:	1126982

      Once created, you'll want to attach it to your source sound like so:
      Click image for larger version

Name:	Setting_up_envelope_follower_03.JPG
Views:	2
Size:	43.0 KB
ID:	1126983

      Once you've established which sound you want to follow, in whatever actor you want to create the effect in, add a special component called the EnvelopeFollowerListener (this is a component that will link the Envelope Follower to a Delegate call in your BP). Additionally, you'll want to add a reference to your Envelope Follower Source Sound Effect so you can link the two together.
      Click image for larger version

Name:	Setting_up_envelope_follower_04.JPG
Views:	2
Size:	49.5 KB
ID:	1126984

      Once you've added your Envelope Follower Source Effect Reference, you'll want to make sure it's referencing the correct asset:
      Click image for larger version

Name:	Setting_up_envelope_follower_05.JPG
Views:	1
Size:	34.0 KB
ID:	1126985

      Then you want to register your Envelope Follower Listener to listen to your Envelope Follower Source Effect--basically, this says, hey EnvelopeFollowerListener component, I want you to Listen to this specific EnvelopeFollower Source Effect. You can also unregister (which is awesome, because it means you can register and unregister based on blueprint logic).
      Click image for larger version

Name:	Setting_up_envelope_follower_06.JPG
Views:	2
Size:	115.4 KB
ID:	1126986

      Once you've registered them together, the On Envelope Follower Update event (which is bound to the EnvelopeFollowerListener component) will send out delegate information with float data you can use however you wish!
      Dan Reynolds
      Technical Sound Designer || Unreal Audio Engine Dev Team

      Comment


      • Question for the audio devs:

        How hard is it to give that Phonon Geometry Component procedurally generated geometry, so geometry that is not a static mesh? Is it relatively simple to spawn a new Phonon Geometry Component at runtime and give it a vertex and index buffer or is that not possible?

        I am not talking about "there's a blueprint node for that"-possible, I'm more talking about "after a few hours of searching through the code and making things that are private public or adding a few small functions to the component, it will work"-possible, so is there a technical limitation that would make that not work?
        Easy to use UMG Mini Map on the UE4 Marketplace.
        Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

        Comment


        • Oculus GearVR splash screen no longer showing in 4.16P1: https://answers.unrealengine.com/que...orking-in.html
          Headgear - VR solutions

          VR Game Release: We Come In Peace...
          Oculus GearVR: https://www2.oculus.com/experiences/...6630401745678/
          Daydream VR: https://play.google.com/store/apps/details?id=com.headgear.WCIP

          Comment


          • [MENTION=524867]dan.reynolds[/MENTION] thanks, very informative :-) Concerning my first two questions:
            - How can I double-check if the new Audio Engine is correctly enabled? Is there some message I should look for in the logs?
            - How do you tag the static meshes? Is it sufficient to add a component tag with the text "Phonon Geometry Component" in the details panel? Sorry, I'm probably missing something pretty obvious here ;-)

            Comment


            • Originally posted by John Alcatraz View Post
              Question for the audio devs:

              How hard is it to give that Phonon Geometry Component procedurally generated geometry, so geometry that is not a static mesh? Is it relatively simple to spawn a new Phonon Geometry Component at runtime and give it a vertex and index buffer or is that not possible?

              I am not talking about "there's a blueprint node for that"-possible, I'm more talking about "after a few hours of searching through the code and making things that are private public or adding a few small functions to the component, it will work"-possible, so is there a technical limitation that would make that not work?
              That sounds really cool! I have no idea!

              I'm assuming you mean BSP. BSP, I believe, is either opt-all-in or not currently--though there's a lot of different strategies for implementation and we're still exploring those. If your code/script generates BSP in the level editor, then you could probably export the scene like normal after your script has done its work. If you do it in code, then I'm not sure, maybe you can tap into the OBJ export somehow.

              "A few hours" is a few hours for one programmer and a few days for another and a few minutes for yet another--but I believe in you, man! It sounds like a really cool thing you're attempting! Go for it!
              Dan Reynolds
              Technical Sound Designer || Unreal Audio Engine Dev Team

              Comment


              • Originally posted by xN31 View Post
                [MENTION=524867]dan.reynolds[/MENTION] thanks, very informative :-) Concerning my first two questions:
                - How can I double-check if the new Audio Engine is correctly enabled? Is there some message I should look for in the logs?
                - How do you tag the static meshes? Is it sufficient to add a component tag with the text "Phonon Geometry Component" in the details panel? Sorry, I'm probably missing something pretty obvious here ;-)
                It's funny you should say that, because at the moment, there is a debug output in your Output Log when you start up the editor, a "LogAudioMixerDebug: " will list your audio device, sample rate, and all your output channels. This will be probably be turned off in the future.

                As for your second question, yes, you can totally add the component in the details window--there should be an "+ Add Component" drop down menu available.
                Dan Reynolds
                Technical Sound Designer || Unreal Audio Engine Dev Team

                Comment


                • Originally posted by dan.reynolds View Post
                  That sounds really cool! I have no idea!

                  I'm assuming you mean BSP. BSP, I believe, is either opt-all-in or not currently--though there's a lot of different strategies for implementation and we're still exploring those. If your code/script generates BSP in the level editor, then you could probably export the scene like normal after your script has done its work. If you do it in code, then I'm not sure, maybe you can tap into the OBJ export somehow.
                  I'm not talking about BSP, I'm really talking about a fully procedural mesh where you only have the individual vertex positions and the index buffer for how to connect them. Something like you have with the Procedural Mesh Component.

                  So does that Phonon Geometry Component only need the vertex and index buffer from the static mesh, or does it need something like the simple collision that's setup for the static mesh? Is there anything like that that would make it difficult to use procedural meshes with it?

                  Originally posted by dan.reynolds View Post
                  "A few hours" is a few hours for one programmer and a few days for another and a few minutes for yet another--but I believe in you, man! It sounds like a really cool thing you're attempting! Go for it!
                  Thanks!
                  Easy to use UMG Mini Map on the UE4 Marketplace.
                  Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

                  Comment


                  • Originally posted by John Alcatraz View Post
                    I'm not talking about BSP, I'm really talking about a fully procedural mesh where you only have the individual vertex positions and the index buffer for how to connect them. Something like you have with the Procedural Mesh Component.

                    So does that Phonon Geometry Component only need the vertex and index buffer from the static mesh, or does it need something like the simple collision that's setup for the static mesh? Is there anything like that that would make it difficult to use procedural meshes with it?



                    Thanks!
                    I believe the obj is constructed from collision when available--but [MENTION=655292]freeman_valve[/MENTION] would have more insight into your method!
                    Dan Reynolds
                    Technical Sound Designer || Unreal Audio Engine Dev Team

                    Comment


                    • Does this update include support for audio streaming from file? I saw the new Audio Engine stuff and got very excited, but I'm not clear on whether UE4 yet supports streaming audio. The new synthesizer stuff is rad but getting streaming audio on all platforms (esp. PS4/XB1) would be massively helpful.

                      Comment


                      • Originally posted by dan.reynolds View Post
                        I believe the obj is constructed from collision when available--but [MENTION=655292]freeman_valve[/MENTION] would have more insight into your method!
                        So the steam audio occlusion uses a OBJ mesh? That would be nice, creating a OBJ from the mesh shouldn't be a problem, unless it needs to be setup in some specific way, like if the mesh is required to be convex.
                        Easy to use UMG Mini Map on the UE4 Marketplace.
                        Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play

                        Comment


                        • Originally posted by SteveElbows View Post
                          There is a post earlier in this thread that is a starting point for now:

                          https://forums.unrealengine.com/show...l=1#post700272
                          Awsome, thx... managed to put together a quick test with my Vive controllers. Maaan, this is gonna be fun once i figure out what does what hehe

                          Comment


                          • Originally posted by drunkenmaster View Post
                            Does this update include support for audio streaming from file? I saw the new Audio Engine stuff and got very excited, but I'm not clear on whether UE4 yet supports streaming audio. The new synthesizer stuff is rad but getting streaming audio on all platforms (esp. PS4/XB1) would be massively helpful.
                            Hi drunkenmaster!

                            Totally agree! [MENTION=36447]Minus_Kelvin[/MENTION] may wish to expand on this, but I can say we already have streaming on Windows and PS4 and more platforms are currently in the works--including mobile platforms!
                            Dan Reynolds
                            Technical Sound Designer || Unreal Audio Engine Dev Team

                            Comment


                            • Originally posted by John Alcatraz View Post
                              So the steam audio occlusion uses a OBJ mesh? That would be nice, creating a OBJ from the mesh shouldn't be a problem, unless it needs to be setup in some specific way, like if the mesh is required to be convex.
                              The obj should appear in your content folder currently, you could probably investigate from there!
                              Dan Reynolds
                              Technical Sound Designer || Unreal Audio Engine Dev Team

                              Comment


                              • Originally posted by Jonas_Molgaard View Post
                                Awsome, thx... managed to put together a quick test with my Vive controllers. Maaan, this is gonna be fun once i figure out what does what hehe
                                YES! Awesome!

                                Osc Frequency Mod modulates the frequency from the base value of the designated Oscillator (and there are two, Osc 0 and Osc 1).

                                For my 4.15 Audio Engine Sneak Peek (the February stream), I demonstrated a synth where I altered the frequency of 8 oscillators (4 Modular Synths) to get that rich movie theater logo sound.
                                Dan Reynolds
                                Technical Sound Designer || Unreal Audio Engine Dev Team

                                Comment

                                Working...
                                X