GitHub Repository with Source Code
Feature Exists |
A Workaround |
Doesn't Exist As Far As I Know |
Engine |
Unity5 |
Fabric |
Master Audio |
Unreal 4 |
Wwise |
FMOD |
|
---|---|---|---|---|---|---|---|
Feature | Unity Plug-ins | ||||||
Documentation | Click Here | Click Here | Click Here | Click Here | Click Here | Click Here | |
Price (Lowest Tier) | Under 100K Revenue Free |
Under 150K Budget Free |
45$ | 5% of Revenue Or Custom Agreement |
Less Then 200 Assets Free |
Under 100K Budget Free |
|
SFX | Variation | AudioClip[] | Random Component | Drag and Drop Multiple Audio Clips | SoundCue -> Random Node | Random Container | Multi Sound |
Pitch Modulation | audio.pitch = Random.Range (Min,Max) | Audio Component -> Rand Pitch (+/-) | Master Audio Group -> Use Random Pitch | SoundCue -> Modulator Node | Randomizer | Modulation -> Random | |
Variation Priority / Probability | Code Yourself | Event Trigger -> Probability | Master Audio Group -> Voices (Weight) | SoundCue -> Modulator Node -> Weights | Weight | Play Percentage | |
3D | 3D Sounds | Sound Source -> Unity's Audio Source 3D Settings | Audio Component -> Unity's Audio Source 3D Settings |
Sound Source -> Unity's Audio Source 3D Settings |
3D -> Set Attenuation | Positioning -> 3D | Master Track -> 3D Panner |
Custom Rolloff / Attenuation Curve | Sound Source -> 3D Settings | Runtime Parameter -> Parameter -> Distance, Property Volume. & Audio Component -> Override Unity's 3D -> Max Distance = Min Parameter Value |
Sound Source -> Unity's 3D Settings | Blueprints -> Attenuation Node -> Size Adjustments | Positioning -> Attenuation -> Edit | 3D Panner -> Off -> Add Built-in Parameter -> Distance |
|
Save Custom Made Rolloff / Attenuation Curve | Prefabs | Prefabs & XML Support | Create Custom Attenuation Prefab -> Add to Audio Master -> Group Mixer -> Apply Audio Source Templates |
Audio Component -> Attenuation Setting -> Create New Attenuation Class | Positioning -> 3D -> Attenuation -> Edit -> Save Pre-set |
Copy and Paste Curves | |
3D Sound in Game Engine Visualization | Audio Source -> 3D settings -> Max Distance (casts a sphere in editor on change) |
Unity's Audio Visualization | Unity's Audio Visualization | SoundCue -> Debug | In Game -> (command stat sounds -Debug) |
1. Using Unreal's Audio Visualization 2. Wwise's API Show Attenuation Sphere |
1. Using Unreal's Audio Visualization 2. Unity Code Yourself (Draw sphere) 3. In Audio Engine Visualization -> Profiler -> 3D View |
|
Distance Driven Parameters (Besides Panning and Volume) |
Spread, Reverb (Code Yourself - Any) |
Window -> Fabric -> Run Time Parameters -> Parameter -> Distance |
Spread, Reverb (Code Yourself - Any) |
Continuous Modulator Node (pitch only) |
New Game Parameter -> Bind to Build-In Parameter -> Distance |
Add Parameter Add Built-in Parameter -> Distance |
|
Music | Dynamic Music Individual Instrument Mix |
Code Yourself (Hard to keep in Sync) |
Music Component -> Multiple Components Sync to Master Tempo |
Multiple Playlist Scripts -> Sync Clips | Can Be Done In Blueprints or via SoundMix Changes | Music Segment -> Multiple Music Tracks |
New Parameter -> Multiple Logic Tracks |
Dynamic Music Intensity Level Based |
1.Multiple Audio Sources Different Volumes All Mute and One is Full Volume 2.Interpolate Between Mixer Screen-shots |
Timeline Components Controlled by Parameters / EventActions |
Multiple Playlist Scripts -> Sync Clips Code Parameter Yourself |
Alter Volume Parameter or SoundMix Change | Music Switch Container |
Loop Regions Controlled by Parameters |
|
Music Intros and Outros | Not That I Know Of | Intro Loop Outro, Sequence Timeline and Music Components |
Arrange in PlaylistController -> Uncheck Shuffle Mode Add 3 Files Into,Loop,Outro |
Can Be Done in Blueprints | Move Entry Cue and Exit Cue | Arrange In Event's Logic Timelines | |
On Beat Transitions | Get Spectrum Data Code Yourself |
Music Component Transition -> Transitions -> Sync On | Not That I Know Of | Can Be Done in Blueprints | Transitions -> Source -> Exit Source At | Logic Tracks -> Transition -> Quantizable Intervals | |
Entering a Loop Chance to Play | Code Yourself | Event Trigger -> Probability | Not That I Know Of | Can Be Done In Blueprints - Random Node | Music Sequence -> Weight | Play Percentage | |
Edit Transitions | Not That I Know Of | Music Component -> Transitions | Master Audio -> Fades & PlaylistController -> Song Changed Event |
Not That I Know Of | Specific Transitions/ Fade In or Out/ Stingers | Arrange In Event's Transition Timelines Double Click on a Transition to Customize |
|
Mixing | Side Chaining / Ducking | Mixer -> Add Duck Volume Effect -> Send to Duck Vol Effect | ADD Component -> Sidechain | 1. Assign To Bus -> Use Unity 5 Audio Mixer 2. Master Audio -> Music Ducking |
Sound Class -> Passive Sound Mix | Add Effect -> Wwise Meter -> Assign Parameter to Volume | Add Effect -> Compressor -> Sidechain ON Add Sidechain |
Mixing Snapshots | Window -> Mixer -> Snapshots | Unity5's Mixing Snapshots | Unity5's Mixing Snapshots | Save SoundClasses | Layout -> Mixer -> Save and Load Mixing Sessions | Window -> Mixer -> Snapshots tabs | |
Real Time Mixing | Window -> Mixer -> Edit in play mode | Play mode Persistence in Editor, OSC Server/Listener Components | Master Audio -> Show Advanced -> Save Runtime Changes | Researching... | Remote... -> Connect | File -> Connect to Game | |
System | Audio Debugging | Debug.Log(); | Window -> Fabric -> (EventLog / EventMonitor) Or Debug.Log(); |
Master Audio -> Advanced Settings -> Log Sounds / Log Custom Events | Blueprint Debugger / stat sounds -debug | F6 -> Profiler | Window -> Profiler |
Editable Profiler Replays | Not That I Know Of | Not That I Know Of | Not That I Know Of | Not That I Know Of | Not That I Know Of | Instant Replay Profiler -> Toggle API button |
|
Parameters | audio. | Parameters | MasterAudio. | Blueprint Nodes | RTPC (Real Time Parameter Controller) | Parameters | |
Design Approach | C#/JavaScript | Event Based System( Logic Done in Unity's Hierarchy) | Unity Event-Based Or C#/JavaScript |
C++ / Blueprints | Event Based System ( Most Logic is Written in Code) | Visual Logic Tracks ( Most Logic is Done Visually) | |
Web Build Support | Yes | Yes | Yes | Not That I Know Of | No (Using System.IO) | No (Using System.IO) | |
Import .MP3 format files | Yes | Yes | Yes | Not That I Know Of | Not That I Know Of | Yes | |
Import .Ogg format files (Vorbis) | Yes | Yes | Yes | Code Yourself | Not That I Know Of | Yes | |
In Engine Audio Compression Format Conversion (Vorbis / PCM / ADPCM) |
Inspector On a Sound -> Override -> Compression Format | Inspector On a Sound -> Override -> Compression Format | Inspector On a Sound -> Override -> Compression Format | Not That I Know Of | Sound Selected -> Source Settings -> Conversion Setting | Bank Tab - > Select Bank -> Select Platform | |
Audio Steaming | Inspector On a Sound -> Override -> Load Type | Inspector On a Sound -> Override -> Load Type | Inspector On a Sound -> Override -> Load Type | Code Yourself | Sound Selected -> General Settings -> Check-box Stream | Bank Tab - > Select Event -> Click on Steam Button on Audio Track |
Huge thanks to contributors which added information, helped fix problems and pointed to inconsistencies in the table.
@darktonicgames
@bpaterson2000
@Tazman_Audio
@ShriekStudios
@Moy_Fw
@GameAudioInst
@AnastasiaDevana
@MattRyanSound
@AKMikeD
@redbluemonkey
@JayMFernandes
@SimonDSchmidt
@DePanther