Sound Event System

Overview

The event system introduces some new terms that are explained here. There are two perspectives for looking at the event system. First the view of the sound designer who mostly works with a sound specification tool called FMOD Designer to create sound events and organize them. The other view is from the game's or coder's perspective who sees the event system as a data structure where information and sound data gets loaded and from which sound events get spawned.

Project Structure

The event system is composed of several projects. A project is a well-defined set of sound events. These events can be structured in event groups and independently added to a category. You must first export a project for it to be loaded into the event system. Only then can one of its events be played. This build step generates an event data file and several wavebanks.

CryENGINE does not allow for nested project folders (e.g. folder1/folder2/fmodproject.fdp). So always one folder per project to avoid projects not being recognized in the engine.
Additionally, the folder that the Fmod project resides in needs to be named exactly the same as the project itself.

e.g.
sounds/fmodproject1/fmodproject1.fdp
sounds/fmodproject2/fmodproject2.fdp

Event Group

An event group holds several sound events. For a designer he simply organizes similar events in a group. The coder can pre-load all sound data of a group or free data of a group if it's events are no longer referenced.

Category

A category is part of a hierarchical structure to give some additional semantic meaning to an event. An event can only be sorted into one category.

Event

A sound event combines sound assets with varied properties to create full sound. Among many properties, Sound designers can specify basic characteristics such as, whether a sound is looping, if it is played in 2D or 3D, what its radius is and how the sound attenuates over distance. All these properties are stored with the event. An event can be composed of one or several sound definitions which hold the real sound data. A special sound definition is the "programmers sound" which is used to play dialog wave files through a prototype dialog event.

A sound event is played by specifying it with its event name using the following format:

Path/projectname:groupname:eventname

For example: sounds/weapons:scar:reload. Note that preferable all project, group, and event names within the event system should be lower case.

Sound Definition

A sound definition is a container of sound assets, like wave files. A sound definition can hold several entries and on starting the event they will iterate. Each entry can have its own probability to play.

File Types

The event system uses three different file types:

  • Project file, contains data of a project to be used by the Designer tool.
  • FEV - Event data file, contains data of a project to be loaded at run-time.
  • FSB - Wavebank, contains sound data.

Wavebank

In each project sound data of a sound definition can be organized in different wavebanks. These wavebanks have options for compression (PCM/ADPCM/MP3/MPEG2) and if the data gets streamed or fully loaded out of it at run-time.