What would you include in a beginners lesson to UE4 audio implementation?
At the moment I am spending a fair amount of my time and studies around the use of middleware like Wwise and FMOD. Both are very useful tools and definitely allow for interesting and interactive audio implementation into a game engine. However, I was recently asked to teach a game design student the basics of audio implementation into Unreal Engine.
I agreed to help this student as I was already helping them with gathering all the audio they would need for that game. Whilst I was hoping to get to flex my FMOD abilities on this project, I appreciated that they wanted to learn the basics. From my current knowledge, I know that game design students are far more involved with complex systems when creating their games and, in comparison, sound design is a smaller issue to deal with along the road of production. Programmers, animators and level designers can deal with far more complex blueprints than I usually come across. Within smaller projects, the role of sound design can usually be given to someone who does not specialise in it, such as a level designer. Therefore, it is useful for a game design student to also learn the basics of game sound implementation. If a team wanted greater detail and adaptive audio then they could come to me for help.
Having agreed to help, I knew I should make a list of the basic features to teach. That is what I want to share in this blog post and go over some of the very simple techniques to implement audio into games. Other game audio students and professionals will know a lot of these as well as have a far greater knowledge. If that is you, imagine for a moment what you would choose to show a game design student or beginner in a short lesson.
I want to preface the next section with the fact that it has been a while since I used just Unreal Engine to implement audio and the engine itself has changed in capabilities since that time. I had to go through older projects of mine and relearn some things myself before I felt comfortable in teaching someone else.
I wanted to make sure to teach all of the main areas of audio implementation and the little things to remember, whilst trying not to go overboard and over complicate things. The last thing I wanted was to make things too complicated but when there were somewhat complex things to mention, I would give as simple of an explanation as I could do. Below are some of the sections I decided to include and the basic things I wanted to cover within each:
Making a Cue
Importing a sound
The basic controls (especially looping)
Use ambient track and place it into editor
Attenuation Distance and Spatialisation
Basic explanation of the terms and how they work
Attenuation shapes and falloff distance
Spatialisation uses and controls
Remember the 'Override Attenuation' button
Auto activation
When to use it and when not to
If off, it needs to be triggered using blueprints
Using a Triggerbox
Making one and using it to trigger the sound
Best situations to use one eg Dialogue
Using one to fade another sound in or out
Occlusion
Basic explanation of what it means and how it works
Example, add sound as component to object and change LPF or volume
Adding sounds to animations
Find and open an animation
Add 'playsound' notify where appropriate
Add Cue to the notify
Footsteps
Cue with multiple sounds
Random, Modulation and Mixer blueprints
Add to animation
For multiple surfaces use Line Trace blueprints with animation notify
Reverb
New Sound Attenuation
Add to Cue of sound needing the reverb
Create reverb and set levels appropriately
Add an Audio Volume, make size of area where reverb should be
Add reverb to details section of that audio volume
Obviously there are far more detailed areas that could be included. For example I could have gone into more detail about implementing a dialogue system but I knew dialogue was not going to be part of this person's project. But for a basic overview I believe these to be the most important things to have a basic understanding of. I know some will disagree and have their own way of explaining things but that is a good thing. I am no teacher, I certainly am not currently qualified to be one and I lack the knowledge and understanding my current tutors have (although I am learning more everyday). Also there are plenty of online resources available. I believe that figuring out how you would teach these to someone is a useful to exercise to test your own comprehension of the subject.
Some issues I faced during the lesson included the associated issues with using older versions of Unreal Engine. The main issue being that more recent versions do allow the use of sounds with a bit depth greater than 16Bits. Older versions have trouble with it and when I chose to open the basic First Person level to show how to implement audio, I could not import the audio. Luckily I had the foresight to bounce 16Bit versions of each sound in the case of such an eventuality as well as to take up less storage space if needed. I found it worth explaining this issue to the game design student so that they do not suffer the same problems and are aware of it in case they work on a game in the future using an older version of the engine.
As I said, currently I am mainly making use of middleware. When implementing the audio across to Unreal Engine it is still useful to be aware of those basics in order to be able to trigger sounds and attach parameters where they need to be. Also, it is beneficial to be able to understand and use blueprints for problem solving and work-arounds if needed. But when I was asked to teach the basic Unreal Engine audio implementation I realised I too could benefit from a refresher on it. Plus, the capabilities of UE4 change with newer versions and there are some interesting additions I was not yet aware of.
Overall, I definitely recommend taking the opportunity to teach others the basics when possible or at least planning a hypothetical situation where you do. It can help you reaffirm your own understanding and, who knows? You might realise you want to become a tutor after all!
Thanks for having a read through. Let me know what you think you would include in a lesson like this.
Comments