I decided to use Wwise for my game audio graduation project, and today I would like to talk about why I made this decision and how Wwise helped me with my creative process. I hope my blog will be helpful for students who are experimenting with Unreal Engine 4 and Wwise, as well as audio folks who may not even be sure what Wwise is all about!
Why I decided to learn Wwise
About two years ago, I started reading about Wwise because I heard about it at school and noticed it mentioned in several games and online articles. At the time, my understanding of the game audio production process was that an Audio Director, for example, would send out a request for sounds, a sound designer would create them, and then send them on to a programmer for integration. That was why, in effect, I was only studying the creation of sounds. However, when I started looking into Wwise, I found that the workflow called for the audio team to also provide the playback structure of sound effects and music, and then the programmer would integrate the data. It was a shock to realize that, in order to keep up with the latest in game development, I shouldn't be satisfied with just learning how to create sounds!
Why I chose the Unreal + Wwise combination
At the preliminary stage of my project, I spent quite a lot of time thinking about how I, as a student, should approach potential employers. I identified the issues I thought were most important, and categorized them into two major objectives for my project:
- Objective 1: Demonstrate that I can produce and integrate various types of audio.
- Objective 2: Create a project that proves that I am passionate about games and can contribute to a team right away.
For my first objective, although I studied audio production and integration at school, and through Wwise certifications and documentation, how would I be able to demonstrate my abilities? The problem was finding a target to integrate my audio into. I think quite a few students get stuck here. You assume that you need professional help to even get started on such an endeavor, or you get intimidated by the presumed steep learning curve and the lack of time. I was one of those students.
My second objective was also tricky. I was confident that my understanding and creativity in the field of audio were strengths I could emphasize, but when it came to immediate productivity, how close was I to real-life game production, how familiar was I with the latest methods, and was I actually using them? I thought those were the factors the audio professionals would be looking at, along with my creative potential.
That's where the Unreal Engine 4 came in. Many companies are using this game engine now, and many people are interested in the integration with Wwise, too.
I thought that if I created a game with UE4, I could satisfy the second objective I had laid out for myself. However, I still needed to satisfy my first objective, which was a much bigger challenge, to say the least. Fortunately, there is a demo project called Wwise Audio Lab that uses Wwise and Unreal, but since I was a novice in UE4 and had never studied programming, there was too much information to go through and it didn't come naturally to me. I made up my mind to learn how to use UE4, relying on online videos and information, and I was able to learn the basics of Unreal game creation through webinars and such.
Eventually, I was able to compile a game using Unreal and Wwise. I should also point out that, as a student, I could use Wwise for free in my school projects!
Unreal + Wwise features I used
Now, about my project.
I created a third-person game, and I used Unreal and Wwise to take advantage of three features: Switches, States, and Game Parameters.
I used States for my artistic expression of how the player dies.
In Wwise, I used a filter on the SFX bus when the player dies. The way the volume changed bugged me, so I raised the bus volume slightly.
This screenshot above shows the "Rev" setting when the player dies and is losing consciousness. When the Death State is posted, the Rev volume is set to go up.
Below are my settings in UE4. Notice the red box on the far left, and the blue box on the far right.
When my character is hurt, the red box on the left posts an Event. The system is set up so that when the blue box on the right receives the Event, it issues a Death State. That is all it takes to use the State feature. It was unexpectedly easy, and I was amazed...
I used the Switch feature to change the footstep sounds of the main character, and also the enemy (a bear). Let me give you an example by following the footsteps Event of the bear, shown in the screenshot below.
In Wwise, I created the Footstep_Bear Switch Group, and I set up two Switches: Brick and Snow.
Now, let's see what I did in UE4. When the Bear overlaps BoxCollision, a Footstep name is issued, and the name is stored in a Game Instance.
As you can see in the next screenshot, I planned for the name information to be picked up by AnimBP, which sets the Switch.
I used the game parameter feature to post the speed of rolling rocks and the distance between objects and players, in order to relay that information to Wwise. For example, this screenshot shows the game parameter for the distance between arrow-shooting floor traps and the player.
In UE4, after the audio Event that I want to change takes place, the RTPC value is set.
In Wwise, I set the Gain values of the three sounds in the TrapArrow Blend Container so that they change based on distance. I wanted the volumes of the first and second sounds, a dry metallic sound and a low sound of the rising arrow to respectively decrease as the distance increased, and the third one, a wet metallic sound, to grow louder as the distance increased.
That's a recap of the kind of features I used.
Looking back, I am amazed that I completed this project in 40 days or so, considering that I had no knowledge of UE4 functions to start with. It wouldn't have been possible without Audiokinetic's documentation, learning material, and tutorial videos, and I am grateful. I certainly ran into obstacles repeatedly along the way. I would suddenly stop hearing a sound, or values that were supposed to be posted weren't received, and, at times, it was hard for me to find the right information to solve my problems. When it came to information specifically about audio, the pool was even smaller. "I need more information!" was often how I felt during this project, and I hope one day I will be able to provide that kind of support to others.
I discovered that I could accomplish a lot, even on a personal student project. If you're studying audio and are interested, please try playing around with UE4 and Wwise. It's much more fun than you'd expect, and perhaps as captivating as playing games!