FMOD Studio Features: Instant Replay

Checked with: Version 1.07.00  03/02/2016

We show how you can use Instant Replay to quickly fix audio bugs, as well as test how your game sounds for different player styles.

 

Download FMOD Studio from the downloads page Downloads Page

 
 

Transcript

 

(0:00) Hello and welcome to the advanced tutorial for the updated Profiler feature. Over the last few months we have made several updates to the Profiler, which we will cover in this tutorial. The video for this tutorial covers the major update from 1.06, and we will look at extra functionality added through 1.07 and up to 1.08 in this tutorial.

(0:11) In the previous video, we covered over basic UI and usability with the Profiler, so if you have not used the Profiler before, you should definitely check that tutorial before following along with this tutorial.

(0:23) In this tutorial, we will demonstrate some specific applications of the Profiler and how it fits in with your project workflow. Now, we are going to investigate the Profiler API functionality and how it benefits your workflow. We will specifically cover how to troubleshoot and diagnose issues and audio bugs within your FMOD Studio projects and games. We will also have a look at how you can use the Profiler to ensure your mix is consistent across all styles of Player Performance.

 

(0:52) Now, we’re going to explore how the API capture feature in the Profiler is going help upgrade your workflow. People who are going to benefit most from our updates to the Profiler, is actually remote sound designers.

(1:07) This upgrade is going to help you become a more integrated part of your team, and enable you to work better with your production and QA teams. With the Profiler, you do not have to rebuild, compile and play the game every time just to be able to do your job. This is going to save you build and compile time – we have all had those moments where you have forgotten to make one tiny little change in Studio, and then you have had to build the whole game again.

(1:36) With the API capture feature, you can iterate without needing go through the build process every single time with every single change. This can be incredibly use for subtle or hard-to-get-to Bugs. You can call on the Pro Gamers in the QA department and record their performance in the Game to have that “Playthrough” on file for iteration.

(2:01) Profiler API feature is also going to help you with the way that you diagnose and log bugs within Studio before rolling your changes into the game, and can also help you build a history of bugs. The ability to mix and master across player styles and through time is also granted by the Profiler update as well. You’ll be able to record the audio output of the game so that you can keep reference or have sizzle content on hand.

 

(3:04) Now, enough talk, let’s actually get stuck into investigating the API capture feature.

 

(3:11) Now, I have my FMOD Studio project and my Unreal Engine 4 project ready to go as well. These project can be obtained straight off the FMOD Downloads page for you to practise with.

The UE4 Project and assets we use are available on the Downloads page.

The UE4 Project and assets we use are available on the Downloads page.

(3:42) To get started, the Profiler needs the Banks to be built freshly. For this UE4 projects, I will show you I have the build folder set to the Unreal Engine 4’s Content folder, in the FMOD folder, that is where your Banks need to be built for UE4 to pick them up. When we build out our Banks, UE4 is definitely seeing my updates there.

Build the banks out to the FMOD Directory in the UE4 Project's Content folder.

Build the banks out to the FMOD Directory in the UE4 Project’s Content folder.

(4:28) We will “Play” the game in the Editor or UE4, then back in FMOD, and we can “Connect” to the game (local host is fine if you are running it off your computer).

Connecting to the Game to record its output can be done by the File menu.

Connecting to the Game to record its output can be done by the File menu.

(4:37) Then we open the Profiler window, and then you can hit Record right away, and the Profiler will start recording what is happening in our UE4 project.

When you're connected to the game, the Red Border will show you that you're ready to record.

When you’re connected to the game, the Red Border will show you that you’re ready to record.

 

(4:43) So we can watch the Profiler, while moving around in the UE4 Level, and the Profiler will actually populate with all of the events that we triggered.

Once you hit record, the Profiler will create a new session and start recording in Data immediately.

Once you hit record, the Profiler will create a new session and start recording in Data immediately.

(4:59) We’ll check a few events as we go – so I can hear that the tornado is ducking my character sounds.

(5:19) We can see on the Right Hand Side that the Active Snapshots are listed, and the Intensity of the Twister Ducking Snapshot is shown to increase as we move towards the Twister.

The Active Snapshots are listed on the Right Hand Side, and show the Intensity percentage.

The Active Snapshots are listed on the Right Hand Side, and show the Intensity percentage.

 

(5:37) If we throw a grenade and what I am listening for is the interplay between the two snapshots – so the tornado snapshot and the grenade snapshot that have the ducking. We can see the Grenade snapshot Intensity increase, and we can hear that the wind sounds and the tornado sounds are not being ducked by the Grenade snapshot. So now that we have heard this and used the Profiler to confirm the Snapshots are not behaving as we intended.

We can see that the ducking on the Ambience Group is not active when we expect it to be.

We can see that the ducking on the Ambience Group is not active when we expect it to be.

(6:02) Now, we will jump out of Unreal and go back to Studio, the Profiler has already stopped recording the Session.

 

(6:12) So now we can use the Timeline in the Profiler window, and find where the Grenade Event was active.

(6:27) So, when we inspect the recorded session to see if there is visible ducking in the Levels Graph. And I can see that there definitely is not any visible ducking, even though both of the Snapshots were active at the time.

(6:34) To fix this, we will open the Mixer window and skip over to the Snapshots view to check out the Snapshots.

(6:44) We definitely heard it was just the Environment Ambience and the Tornado that were not being ducked. Now, we will double check the hierarchy of our snapshots, and we can see that the Bomb Filter is actually stacked on top there. So that tells us that the Bomb Filter ducking will take precedence over anything else that we have got going at the same time, which is perfect, as we want that mix state to be the most “important” and Override all others.

(7:02) I will just double check whether the Ambience group is scoped in, which it is, but we can see that it is not active for any ducking, so we pull the volume down, so that there is ducking happening when the snapshot is active.

The Mixer window shows us there is no Ducking on this Group.

The Mixer window shows us there is no Ducking on this Group.

 

(7:16) We can save and build, and then, instead of needing to open Unreal again, or launching onto a console or any other extensive launching process just to check that the fix has gone through, we can do this form inside the FMOD Studio tool, using the API capture.

We re-recorded the session to show you what successful ducking looks like.

We re-recorded the session to show you what successful ducking looks like.

(7:31) Because my API capture feature is turned on by default – you can tell from this button being highlighted. This means that Studio will be using the settings within Studio, as opposed to the recorded Session.

The API Capture button is up near the Transport Controls.

The API Capture button is up near the Transport Controls.

 

(7:47) One thing that may confuse you is that while we are hearing the updated version, that the metering in the Profiler session recorded in each Track is the original metering. We will hear the correct, updated audio if the API capture button is on. You can always double check that your changes have come from Studio, is by turning the API capture off, you will playback the recording straight from the game.

(8:16) So this is the recorded output from UE4, you can hear all of that wind right on top of the grenade effect, double tap to stop, turn API back on and have another listen. And you can hear that ducking is working now.

(8:34) That tells me that my issue is fixed and that because I have build all of that into my Banks, and Unreal picked up all of those changes, next time I play through my project in Unreal, it will actually sound just like it does in the FMOD Studio Profiler. So that is an example of how you can save time and be more efficiently when it comes to troubleshooting.

 

(9:10) We’re also going to look at using Player Style playthroughs to help our iterative mixing in FMOD Studio. In a situation where we have a hypothetical shooter game, we might have a couple of different ways that a player could play the game, and we need to make sure that the mix for each one of those players sounds just as fantastic for each other player. This can include players that play really fast and really loud, or really slow and really quiet, or straight down the middle.

(9:49) What you can do, is make use of your QA team to playthrough the game in a number of different ways, and pass on to you, a library of FMOD Studio Profiler sessions. You can use each of these Sessions as a reference for optimal mix states for each playthrough type.

(10:10) I will give you three examples here – the fast-loud, slow-quiet and also average play through. When you utilise your QA team to record these different play through types, what you are essentially doing is creating situations where you are testing for different extremes of the game’s sound.

Your Profiler Session library can be organised in to folders.

Your Profiler Session library can be organised in to folders.

(10:31) So your fast-loud play through might actually be someone who runs through the game with rocket launchers and grenades. In this playthrough, you are essentially double checking that the mix never gets too busy, and that the sub-bass is never too heavy or too overpowering, too crunchy from distortion and so on and so forth.

A Loud capture saved in the Profiler Capture Library.

A Loud capture saved in the Profiler Capture Library.

(10:45) Your slow-quiet play through might be someone who plays through more like a spy, so what you are listening for, is that the mix never gets too boring or quiet, that it is always aurally interesting.

The quietest capture possible will let you test that important sounds re audible.

The quietest capture possible will let you test that important sounds re audible.

(10:58) In your average play through type, that might emulate your average player who might do a little bit of this, does a little bit of that, but you always want to make sure that the mix is equally as exciting for them as well.

A standard capture can be used as a mixing 'yardstick'.

13 PROFILE OF AN AVERAGE PLAYTHROUGH

(11:08) What I would be doing, is keeping these three play through types on hand and checking any changes I make in Studio against these Sessions to ensure that we’re always improving the sound of the Game. Additionally, this also means that whenever you need various types of demo material, you have got it there in your Profiler all the time, ready to go.

 

(11:29) Now I hope that these workflow hints and tips have really helped to get more perspective on how you could use the Profiler within your workflow.

(11:48) I hope that this has all been really super useful for you, and we’ll catch you later.

Credits and Attribution

Assets in the asset pack are provided by the Sound Librarian, Soundwave Concepts, Mixamo, Epic Games and Sally Kellaway by herself at Firelight Technologies. Please refer to the Read Me document for further information on licensing, attribution and commercial distribution.