This is a quick guide to demonstrate how to get your audio visualization in a movie render via sequencer.
Couple quick points:
- Audio should not be relied upon or used for renderings.
- This guide will focus on UE 5.5.
- For UE 5.5, there is a great plugin that greatly speeds up this procedure. It costs $5 on Fab. I will be using it for this guide. But I will let you know what it does, if you want cheaper options or to design it yourself.
Summary:
Because audio can not be relied upon for renderings, that means we cannot collect the audio data (Amplitude Envelopes, etc.) reliably in real time during the render. So we are going to collect this data BEFORE the render, save it, and then use it during the render. The visualization will work exactly as expected in complete silence, without any audio being interpreted in real time. This will create a flawless visualization render which you can then take and place your audio on top of in the software of your choice.
So let’s get started.
Guide:
-
From Fab purchase the plugin “Operation File [Read / Write]”
Link: https://www.fab.com/listings/9bb525d5-b037-4b7f-b60b-c7cdc9e07d31
This plugin allows you to save arrays of strings to file and load arrays of strings from file.
If you have a method of doing that already, you do not need this plugin then. -
Make a blueprint for your audio source.
For the sound file, make sure “Enable Amplitude Envelope Analysis” is set to True if you are using envelopes, or “Enable Baked FFT Analysis” is set to True if you are using FFT.
For this guide, I am going to stick to envelopes.
In the Blueprint, add an Audio component. Set the sound to your sound file, and make sure auto activate is off.
Create a variable called Envelopes and set it as an array of strings.
Create a variable called activate and set it as a boolean. (Set default to true for now)
Now set the blueprint exactly to this:
- The timer is set to a time of 0.02 seconds. That is the interval for collecting each packet. Lower numbers are more accurate, but I found this one to work just fine.
- If you are using FFT, you would replace the blueprint for get Cooked Amplitude Envelope Data.
- The last blueprint “File Save by Array String” is from the plugin mentioned above. I am saving these packets to location C:\hi5.txt on my computer.
- Open the blueprint for your audio visualization object.
Create a variable called Envelopes and set it as an array of strings.
Create a variable called arrayIndex and set it as an integer.
Now set the blueprint exactly to this:
- The timer is set to a time of 0.02 seconds. This number must be the exact SAME as the timer in the audio blueprint. If the intervals are off, you will be reading data at the wrong time.
- For my current project I am changing the scale of my logo depending on the amplitude envelope, so that is why when I get an envelope I am multiplying it, maxxing it, and setting the scale of my logo. For your project, you can replace these blueprints so that you can work with your data however you like.
- The second blueprint “File Load by Array String” is from the plugin mentioned above. I am loading the packets from location C:\hi5.txt on my computer. (Same location from audio blueprint).
-
Place your Audio Blueprint in the world.
Hit Simulate.
Wait for the audio to finish.
End the simulation.
Delete the audio blueprint.
By now, your computer has stored the audio information on file.
You can now test this by running simulate and seeing your objects react to the saved audio data. -
Render
In your sequencer, hit the render button.
Ensure there is no audio track. Ensure there is no Wav output in render settings (Again, as best practice just avoid audio when rendering)
Hit render.
And viola!
You have now created a movie / cinematic with audio visualization in Unreal Engine.
For the final step, just add the audio on top of this clip in your desired software, and you are done.
This comprehensive guide is brought to you by Devatora.
Let’s help share solutions to difficult problems.
if you have any questions, please leave them below.