Presentation is loading. Please wait.

Presentation is loading. Please wait.

Audio Tech Full Training CryEngine3 Tomas Neumann (constantly WIP)

Similar presentations

Presentation on theme: "Audio Tech Full Training CryEngine3 Tomas Neumann (constantly WIP)"— Presentation transcript:

1 Audio Tech Full Training CryEngine3 Tomas Neumann (constantly WIP)

2 FarCry Facts Shipped Sounds.pak 240MB –1,400 individual wave files (reduced Wav) –35 subfolders Shipped Music.pak 465MB –Low/high spec version (22k wav, OGG) –2h 35 minutes Shipped English.pak 425MB –3,700 lines of voice + lipsync files Total –1.1 Gig of audio data for Audio of 3Gig –35% of Gold-ISO were audio data

3 Crysis Facts Shipped Sounds.pak 656MB –3,500 events in 170 groups in 9 projects (factor 20) –15,000 individual wave files –26 categories Shipped Music.pak 570MB –3 Gig of adaptively-scored music data –5h 10 minutes Shipped English.pak 190MB –8,000 lines of voice + lipsync files Total –18% of Gold-ISO were audio data –20 Gig of data on Audio Build PC for Game02 –14 Languages, 250,000 voice files in overall process

4 Warhead Facts Shipped Sounds.pak 900MB –x events in x groups in x projects (factor x) –x individual wave files –26 categories Shipped Music.pak 190MB –1h 45 minutes Shipped English.pak 181MB –5,000 lines of voice + lipsync files Total –1,2 Gig of Audio of 5.5 Gig –22% of Gold-ISO were audio data

5 Overview Audio Level placed –Volume-based (Area) –Spots –FlowGraph –DialogManager –Trackview Systematic –Weapons –Vehicles –Physics –Particles –Flash Animation –Blended / Layered –Foley –Footstep signals Asset Production –Data-driven events –FMOD Designer.FDP (xml project).FEV (bin. project).FSB (wavebank) Dialog –LocalizationManager –Sub-Titles Runtime Effects –SoundMoods –Reverb –Dialog effects

6 FMOD Eventsystem Integration

7 Eventsystem Overview Data-driven –Distance, individual falloff curve, mixing –Looping, 3D, 2D, variations, priority Syntax –Path/project:group(/group):event Sounds/weapons:scar:select Code controlled –Start, stop, pause –Parameters: rpm, mass, speed, damage

8 Asset Production

9 Workflow Sound Designer –Create event (wave data + definition + behavior) –Save and checkin project file (.fdp) Audio Build PC –Build process, compress data per platform –Creates bin. project and wavebanks (.fev/.fsb) Game Programmer –Play sound when availible –Update parameter, communicate to directly to SD Sound Designer (or GameD, ParticleD, AnimationD) –Pick event from SoundBrowser –Implement in game (FlowGraph, TrackView, Particle, Facial..)

10 Workflow Example Create project –Project name has to be the same than folder it is placed in Create group –As many levels of group depths are supported Create event –„Holes“ in placing sound definition might cause unexpected problems –Add layer, assign to parameter –Add parameter controlled effect Create category –Sort event into category Save you work –Save and checkin project file (.fdp) Editor uses.fdp for sound browser functionality

11 Build Process Build process creates.fev and.fsb –Local / remote (dedicated audio build PC) –Create wavebank –Wavebank settings per platform –Creates bin. project and wavebanks (.fev/.fsb) Code uses.fev for accessing event structure Restart audio while in Game/Editor –#Sound.DeactivateAudioDevice() –#Sound.ActivateAudioDevice() –Mfx_reload tab –Reload... dialog

12 Dynamic Event Behavior Individual Event Parameter –Distance-based aspects of sound („distance“) –Interactive: Vehicles: rpm, speed, surface, damage Weapons: spin-up Particles: lifetime Physics: mass, speed More: „doppler“, „front_left_rear“, „top_rear_down“, „top_left_down“ –Battle-sensitive animal ambiences („battle“) –Area-sensitive via reverb area („environment“) –Dynamic background noise on radio chats Global Parameter –TimeOfDay-sensitive ambiences („daylight“) –SP/MP tweak („sp_coop_mp“)

13 Dynamic System Behavior CVar-based volume SoundMoods –Category-based mixing system –Mixing deskish control over faders and effects –Effects: Volume / Pitch Lowpass / Highpass Compressor 2 ParamEQs (Any VST-Plugin) SoundMoods: –Mission objective –Underwater –Low-health –Explosion –Vehicle –Cloak –Frozen –Cutscene –Huge alien

14 Mixing Static Mix –Set volume on event prop, not in sound definition –Network Audition Enable cvar s_NetworkAudition 1 (opens port) Connect to localhost or remote machine Ingame mixing and profiling Dynamic in-game mix: Soundmoods! –Category based mixing –Music ducking

15 Other Audio Middleware FMOD Eventsystem in CE2 since mid.‘05FMOD Audiokinetic‘s WWiseWWise CRI Audio Unreal engine integrate FMOD and WWise FMOD (Firelight Technologies) Wwise (Audiokinetic)Audiokinetic

16 Audio GUI

17 Sound Scripts

18 Sound/Dialog Browser SoundBrowser –shows all curent events scanning FDP files DialogBrowser –Shows all entries in LocalizationManager

19 Database Music

20 Database SoundMoods

21 Database Reverb Presets

22 Dialog Editor

23 Cutscene Audio Place events from SoundBrowser –Use Sound-Track, don‘t add SoundEventSpot Place dialog from DialogBrowser

24 Audio Details

25 Sound Implementation Volumetric Effects –Ambience –Random Oneshots –Reverb –Opt. Soundmoods FlowGraph –PlaySound-Node –Dialog-Node –Use instances of sound entities

26 Script Entities Sound –SoundEventSpot (simple placable sound) –AmbientVolume (attachable to area) –RandomVolume (attachable to area) –SoundMood (attachable to area or flowgraph) –ReverbVolume (attachable to area) Dialog –Dialog (also flowgraph) Music –ThemeSelector (attachable to area or flowgraph) –MoodSelector (attachable to area or flowgraph) –EndTheme (attachable to area or flowgraph) –Stinger (also flowgraph) –MusicLogic (also flowgraph) –PlayPattern

27 Volumetric Sounds Point –Simple radial propagation (arbritary volume behavior) Line –2 points, closest to listener Sphere –Radius, closest or at listener if inside Cone –Specified by sound designers Area-attached (shape, box, sphere) –Reverb, ambiences, randomsound, soundmood

28 Obstruction Effect if sound is blocked from listener –Direkt (dry) signal by ray cast –Indirekt (wet) signal by Visarea Controllable by CVars Obstruction flag set by code (might change) Listener spawned sounds usually skipped Material based by pierceability

29 Culling Effect if playback gets skipped Outdoor –Distance is larger than radius Indoor –Max. visarea propagation reached Priority –Event priority lower than current threshold –(FMOD counts zero as being highest)

30 Dialog

31 Playback –2D –3D on character‘s head bone position

32 Dialog Source –Languages/Dialog/ –Uncompressed WAVs –Dialog_recording Excel Build –Localized/English.pak –Compressed MP2/MP3 –XMA in development via FSB Syntax (File/key) File: languages/dialog/subfolde r/soundfile.wav Key: subfolder/soundfile Playback –SoundBuffer of wav attached to empty prototype event sounds/dialog:dialog:clean Format priority –s_MpegCompression 1/2/3

33 Localization Manager Xml sheet –Stores keys/parameter –Dialog_recording_list.xml (ai/story/mp)

34 Code

35 Overview Code SoundSystem –Sound PlatformSound –AssetManager Manages audio cache Controls SoundBuffer –MoodManager –ReverbManager NULL Implementation Sound and parameter names are lower case Prevent hardcoded sound names gEnv->pSoundSystem is always valid

36 Overview Code SoundSystem Interface Sound AudioDevice FMOD-Ex (4.26.00) EventSystem GroupProjectEvent BufferPlatformSound Xbox360 XAudio2PS3XP: DSoundVista: WASAPI (OpenAL) Parameter ReverbSoundMoods PSPMac FMOD specific code FMOD Designer (4.27.00)

37 Code Interface ISound.h for ISoundSystem and ISound –Sound will not move unless you do it IEntitySoundProxy for sounds on entities –Sound will move/rotate with entity –Faster access to find a sound by SoundID –Hidden entities (layer) dont play sounds

38 Modular Interfaces ISoundSystem and ISound –Core functionality –GetExtended() know what you are doing Ask me if you are unsure! –GetDeprecated() No support Dont count on it –GetWorkInProgress() Might have bugs

39 Ref Counting Sounds, SoundBuffers, Platformsounds –Release() dont destroy –Reset and stored in pool to be reused SoundIDs used to prevent ref-couting –No guarantee sound still exist –Test for valid SoundID –Only use scoped smart_ptr

40 Script Interface ScriptBind_Sound.h –Most functionality –Also Reverb, SoundMood, Music ScriptBind_Entity.h –proxy access ScriptBind_MusicLogic.h

41 Golden Rules Query information –Create the sound –Query: Loop, 3D/2D, Radius Dont hardcode: Sound references Parameter names Set Flags: Event, Voice

42 Music

43 Overview Music MusicSystem –Theme Mood –Pattern MusicLogic (optional) –AnimationGraph –MusicLogic events Editor –Database-Music –Animationgraph Sources –Music: Game/Music –Events: Game/Libs/MusicLogic –Music graph: Game/Animation/grap hs/ (will change)

44 Database View Theme –Wider range of music of a certain area or situation Mood –Special motive PatternBlock –Variation of motive Layer –Start (optional) –Main (loop) –Rythmic (synched) –Incidental (synched) –Stinger (async) –End (optional) Pattern –Reference to file –Always link to WAV

45 Music Logic Dynamic Music –Picks Mood –AI Intensity Idle/alerted/combat 100 m radius –Player Intensity Wounded Killed enemy Suit Mode –Game Intensity OR of above Code –CryAction Specification –Music Events and Points –Game/Libs/MusicLogic Graph –/Animation/Graphs

46 Music Graph Animation Graph Code Traverse Nodes –Match input values –Enter wait time –Leave wait time –Allow change early Mood Node –Set Mood on enter –Wait leave time –Leave early on Allow Change Stinger Node

47 Script / FlowGraph Control Script Entity –SetTheme –SetMood –EndTheme Can be triggered or linked to area Flowgraph –SetMusicLogic

48 Questions? Please post them in the Sound and Music forum on MyCryENGINE.

Download ppt "Audio Tech Full Training CryEngine3 Tomas Neumann (constantly WIP)"

Similar presentations

Ads by Google