Making a Game Part 10. Audio
2015-03-19
It's now time to tell you about the part of Pyatigor's Tale game in which none of us had professional skills or even significant work experience. Thus, we want to introduce you to an article about the process of game voicing, written in "as is" style.
Introduction
Most of the work on recording, preparing and correcting audio files was done with the help of the very easy-to-learn tool called Audacity, which is free and open source software.
You can divide sounds presented on the scene into three parts:
- Sounds coming from the character. They are not only screams and wheezes, but also hits, sword swings, etc;
- Environment sounds such as a volcano hum and music;
- Special sounds. For example, sounds of crystal breaking or a victory sound.
In Blend4Web - just as in Blender - sounds are added with the help of Speaker objects. Blend4Web supports all native Blender settings. Also, there are some specific engine settings which are described in the user manual.
Speaker Objects
The principle of placing speakers is very simple. All character sounds are placed in the file with the character's geometry and material then added to the common group.
Positional Sound is set as a speaker type for all sounds surrounding the character.
Background music sounds and sounds of the environment are placed in the file of the scene which they will be played in. They have Background Music and Environment Sound types accordingly.
All the rest of the speakers are placed on the same logic: golem's sounds with the golem's geometry, rock-crushing sounds with the rock's geometry, etc.
Where to Get Audio Files?
The most interesting part is where the whole variety of sounds came from.
We had two sources which we were taking sound samples from in the process of voicing. The first one is the purchased library with a number of prepared sound samples, the second - sound samples recorded with the help of a microphone and improvised means.
Naturally, it's difficult to find suitable files out of the box. So, to achieve the required result it was often needed to combine different samples which didn't sound similar to each other. And with the help of different manipulations on them using Audacity to bring them to the desired sound.
It can be seen more clearly with the following sound track.
Golem's Walk
The sound of golem's walk can be called a typical complex combined sound. Firstly, golem is a very heavy and massive creature which slowly waddles with all its body mass. And secondly, it's just a pile of stones combined in some magic way. All these had to be expressed in sound!
This small sound segment, consisting of someone's shuffling in the sand, was used as the base of the golem's walking sound:
Of course, the golem wouldn't make a sound like this while moving on such a surface. That's why we needed to add some additional effects:
Impact of a blunt object on the ground will add heaviness to the golem's stomp:
"Living stones" would create friction between each other while golem is walking, so a sound of stones grinding was added between the steps.
Combining it all in Audacity in the required order and correcting the volume of every sample gives us this walking sound:
Useful Filters
Sometimes, it wasn't enough to just combine different samples into one to achieve the required effect. The sounds of some samples were also changed. Let's consider the filters which were used in the preparation of the sound tracks.
The most commonly used effect - more likely, not the effect, but the necessity - is sound normalization. Normalization produces the alignment of volume so that all the scene sounds will have equal amplitude on the same volume settings. This allows us to set up the sounds in relation to each other on the stage of Blender speaker customization.
It makes no sense to show the places where normalization was used because the sounds were affected by normalization everywhere.
Equalization - is one of the ways to change the frequency characteristics of the sound track. For example, it was used when there was the necessity to increase only low or high frequencies of the sound file.
Change Pitch is a good effect for quick customization of the whole sound file tone. Its work with specific examples can be seen a bit lower in the section on creating characters speech.
Speed changing allows us to increase or decrease sound velocity. Accordingly, this changes its tone a bit. For example, this effect was used for golem's walk sound effect in order to synchronize armature animation with the sound.
And a very useful Noise Removal effect which allows us to remove extraneous noise on the record. After pressing Get Noise Profile, it is required to identify the part of the record which has only noise in it (for example, in a gap between speeches), and the program will remove all noises similar to the one in this gap from the whole audio file.
Character's Shouting
It is not possible to find everything in the sound library, and we wanted to move away from ready-made solutions and to make something from scratch. Thus, it was decided to record the voice of the character by ourselves.
We have used the following equipment for recording:
- USB 2.0 audio interface Focusrite Scarlett 6i6;
- Microphone Rode NTG-1;
- Operating system Ubuntu Linux;
- Software Audacity.
After a short "casting" and choosing whose voice suites better for this, we started recording.
The process of recording the character's speech was done in the following order. First, Evgeny Rodygin (developer of the programming part of the Pyatigor's Tale. His voice we thought best suited for this) spoke several variants of phrases on the given topic. For example, on the characters attack:
This is an example of recording several variants of character's shouting during the sword attack in a row. It is given without processing and with the noises as is. Further, we have chosen the three most suitable variants, and the others were deleted:
With the help of the Noise Removal effect the background noise was removed:
In order to make the voice more youthful with the help of the Change Pitch effect it was changed to 4 semitones higher than the original.
As a result, we got a bit of a comical voice for the young fellow:
All the rest of the speech samples were made based on the same principle.
Golem's Get-Out
The most difficult combination of different sounds is the audio track of golem's getting out. The hardest part was to synchronize separate sound fragments with golem's animation.
Blender sequence editor was used for this. All sounds were placed in it in the right order and were edited in Audacity if needed.
All that is left to do is to combine it all into one solid file by pressing Audio in the Render section:
Thus, we've got a pretty complex structured audio file with sounds being synchronized with actions performed by the golem.
Conclusion
That's all. This is the last tutorial from the series of articles on creating audio-visual content for the first level of the Pyatigor's Tale game. The next lessons will be devoted to the programming - the part which is never seen by the end user but without which the set of all these textures, geometry and sounds will just stay a set of textures, geometry and sounds.
The source files are included in the free Blend4Web SDK.
As always you can leave your comments about the article on our forum in this post.
Changelog
[2015-03-19] Initial release.