Wwise Fundamentals
What are Game Syncs?
After the initial game design is complete, you can start looking at how you could use Wwise elements called Game Syncs to streamline and handle the changes and alternatives that are part of the game. You can define which of the four different kinds of Game Syncs you will need to achieve the best results possible to enhance the visuals of the game.
States—a change that occurs in game that affects the properties of existing sounds, music, or motion on a global scale.
Switches—a representation of the alternatives that exist for a particular game element that may require completely new sounds, music, or motion.
RTPCs—properties that are mapped to variable Game Parameter values in such a way that changes to the Game Parameter values modify the properties themselves.
Triggers—a response to a spontaneous occurrence in the game that launches a stinger, which is a brief musical phrase that is superimposed and mixed over the currently playing music.
When you are building your game project, you have to juggle quality, memory usage restrictions, and the time constraints that you face. Using Game Syncs strategically can simplify your work, economize on memory, and help to build a truly immersive game experience.
States are basically “mixer snapshots” or global offsets or adjustments to the game audio and motion properties that represent changes in the physical and environmental conditions in the game. Using States can streamline the way you design your audio and motion, and help you optimize your assets.
States as “mixer snapshots” allow for level of detail and control over the resulting sound output and can be combined with multiple States with expected results. When an object registers to multiple States, a single property can be affected by multiple value changes. In this scenario, each change of value is added up together. For example, when two States in two different State Groups have a volume change of -6 dB, and both become active simultaneously, the resulting volume will be -12 dB.
When you create and define these “mixer snapshots”, you are really creating different property sets for a sound, music, or motion object without adding to memory or disk space usage. These property sets define a set of rules that govern the playback of a sound during a given State (or States). When you apply these property changes globally to many objects, you can quickly create realistic soundscapes that better represent the audio and enhance the game. By altering the properties of sounds, music, or motion already playing, you are able to re-use your assets and save valuable memory.
Example 3. Using States - Example
Let's say you want to simulate the sound treatment that occurs when a character goes underwater. In this case you could use a State to modify the volume and low pass filter for sounds that are already playing. These property changes should create the sound shift needed to recreate how gunfire or exploding grenades would sound when the character is under water.
The following illustration demonstrates how the properties for the volume and low pass filter for the gunfire and grenade sound objects are affected when the underwater State is called by the game.
In Wwise, Switches represent the different alternatives that exist for a particular game object within the game. Sound, music, and motion objects are organized and assigned to Switches so that the appropriate sound or motion object will play when a change is made from one alternative to another in game. The Wwise objects that are assigned to a Switch are grouped into a Switch Container. When an Event signals a change, the Switch Container verifies the Switch and the correct sound, music, or motion object is played.
Example 4. Using Switches - Example
Let's say you are creating a first-person shooter game, where the main character can walk and run through a variety of different environments. Within each environment, you have different ground surfaces, such as concrete, grass, and dirt, and you want different footstep sounds for each of these surfaces. In this case, you can create Switches for the different ground surfaces and then assign the different footstep sounds to the appropriate Switch. When the main character is walking on a concrete surface, the “concrete” Switch will become active and its corresponding sounds will play. If the character then moves from a concrete surface to a grassy surface, the “grass” Switch will become active and its corresponding sounds will play.
The following illustration demonstrates how the active Switch determines which footstep sound is played.
Real-time Parameter Controls (RTPCs) enable you to edit specific object properties in real time based on real-time parameter value changes that occur within the game. Using RTPCs, you can map the Game Parameters to property values, and “automate” property changes to enhance the realism of your game. The parameter values are displayed in a graph view, where one axis represents either the Switch Group or the property values in Wwise, and the other axis represents the in-Game Parameter values. By mapping property values to Game Parameter values, you create an RTPC curve that defines the overall relationship between the two parameters. You can create as many curves as necessary to create a rich and immersive experience for the players of your game.
Example 5. Using RTPCs - Example
Let's say you are creating a racing game. The volume and pitch of the engine sounds need to fluctuate as the speed and RPM of the car rise and fall. In this case, you can use RTPCs to map the pitch and volume level of a car's engine sounds to the speed and RPM values of an in-game car. As the car accelerates, the property values for pitch and volume will react based on how you have mapped them.
The following illustration demonstrates how the volume is affected by the speed of the racing car in the game, based on how it was mapped in Wwise.
Like all Game Syncs, a Trigger is a Wwise element that is called by the game and then defines a specific response in Wwise to accommodate what is happening in the game. More specifically, in interactive music a trigger responds to a spontaneous occurrence in the game and launches a stinger. The stinger, which is a brief musical phrase that is superimposed and mixed over the currently playing music, is a musical reaction to the game. For example, when a ninja draws his weapon, you might want to insert a musical sforzando-type effect over the action music already playing to add even more impact to the scene. The game would call the Trigger which in turn would launch the stinger and your music clip would play over the ongoing score.
Example 6. Using Triggers - Example
Let's say that you have created a fighting game where your main character is a ninja fighter. At several points in the game your character goes into action mode where he fights his enemies. When your character lands a powerful kick, you want to place a music clip that will intensify the auditory impact of that scene. To build your music for these sequences, you will need to create a Trigger, perhaps named “High Kick” to be called at these points in the game. In addition, you will define the short music segment that will provide a quick blast of brass to add some “kick”.
The following illustration demonstrates the Trigger mechanism that plays a stinger at a key point in the game.
The following table shows you which tasks related to Game Syncs are the responsibility of the sound designer and which ones are the responsibility of the programmer:
Tasks |
Sound Designer (Wwise) |
Programmer (Game Code/Tools) |
---|---|---|
Create Switch Groups and Switches |
X | |
Create State Groups and States | X | |
Define State Transition Time | X | |
Subscribe Switch Containers to Switch and State Groups | X | |
Setting up Triggers | X | |
Post State and Switch information from the game engine to the Wwise Audio Engine | X |
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise