FMOD Studio
|
FMOD Studio is the current audio interface for all HeroCloud developers. [|FMOD Studio] provides a fully featured [| project editing and design system], and also supports fully-featured playback of WAV, MP3, and XMA audio files.
Developers currently using the older project-based FMOD Ex system can continue to do so, and do not have to change.
New developers may choose to the use legacy project-based FMOD Ex system if they are more familiar with it. However, Firelight is no longer updating FMOD Ex, so we recommend starting with FMOD Studio.
If a developer uses WAV, MP3, or XMA for audio, they will automatically be using FMOD Studio as the underlying audio system.
DO NOT mix FMOD Ex and FMOD Studio projects or audio files in the same world is as they are independent systems and will cause interference with each other.
FMOD Studio Projects
FMOD Studio provides a fully featured [| project editing and design system]. When downloading, please select the FMOD Studio project editor version that matches the version of HeroEngine you are using. This can be found on the product release page. For HeroCloud customers, this is version used by the current HeroEngine release on the Release history page.
An FMOD Studio project consists of the following:
- 1x: “master bank.bank”
- 1x: “master bank.strings.bank”
- 1x or more named project bank files, e.g.: weapons.bank, car.bank, cheering.bank
A single set of master bank and master string banks are used for the entire game project.
Due to streaming downloads or updates from the repository or patch server, we do not recommend creating BANK files larger than 5 MB - 10 MB, and preferably smaller. Audio should be organized into specific.BANK files, e.g.: character sounds, weapon sfx, dungeon background music, menu sfx, etc.
Once an FMOD Studio project is created, the files are uploaded to the HeroEngine file repository, and the appropriate project .bank file is selected and loaded using the HeroBlade Create => Audio menu.
The properties that are specific to an FMOD Studio Project are:
- Volume
- Playback volume for the project bank
- Paused
- Pause playback
- Stopped
- Stop playback
- _audioPitch
- Change audio pitch, default 1.0
WAV, MP3, and XMA Audio Clips
Audio files are instantiated in the world HeroScript, or the HeroBlade Create => Audio menu option
The properties that are specific to an FMOD Studio audio clip are:
- Volume
- Playback volume for the audio clip
- Paused
- Pause playback
- Stopped
- Stop playback
- _loopAudio
- Whether the clip plays once, or loops
- _muteAudio
- Mute the volume for the clip, but continue to play it
- _audioPitch
- Change audio pitch, default 1.0
- InnerAngle
- Inner cone angle for directional sound
- OuterAngle
- Outer cone angle for directional sound
- VolumeOutsideCone
- Volume outside cone for directional sound
- MinDistance
- Minimum distance sound is heard
- MaxDistance
- Maximum distance sound is heard
- Is3D
- Whether sound is spatialized to 3D (true), or is non-spatialized 2D (false)
- AmbientType
- Omni directional or directional 3D sound
- _audioRolloff
- Attenuation for 3D sound: linear, linear squared, or inverse
Audio Clip HeroScript External Functions
All HeroScript external functions for playing audio clips have been updated to work with FMOD Studio. Please be aware of this if you have been using FMOD Ex projects, as this could could cause a conflict due to the usage of both systems.
Other Audio Formats
If you are interested in support for additional audio formats, please review the FMOD Studio documentation, and contact mailto://support@heroengine.com .
Porting from DirectMusic to FMOD Studio
In order to facilitate porting from an older DirectMusic system to FMOD Studio, MP3 format audio files are used.
When a DirectMusic “.sgt” file is requested, the file request is processed in order to load any existing spec properties, and then an MP3 format version of the file is requested using the existing fully qualified directory path name. This allows an easy transition away from DirectMusic by eliminating the need for any data changes besides the bulk file conversion outside the client itself.
There are a few DirectMusic-specific properties that are not supported as part of this legacy transition as they do not map to MP3 file properties: CutoffDistance (we use max distance and rolloff attenuation), StartOffset, FadeInLength, FadeOutLength, and CleanUpOnEnd. However, these should not matter, especially during a transition.
As DirectMusic audio clips used non-standard distance and range attenuation, any clip with a maximum distance of more than 20 units is divided by 10 to bring it down into a reasonable and correct range.
Also, since looping a DirectMusic audio clip was embedded in the DirectMusic segment instead of set as a property, we arbitrarily decide to loop legacy ambient files - those in a path with "ambient" in the name, or that have the "amb_" string somewhere in their filename.
DirectMusic audio files that relied on dynamic music or embedded volume (which overrode client spec properties) may not play correctly. However, we have encountered very few files which used these features.
Batch conversion of DirectMusic .sgt files to WAV format files can be handled using [| sgt2wav]. Once converted to WAV, files can then be batch converted to mp3 format using any number of available applications such as [| LameXP]