Page:
SoundGroup
Pages
0AD_The_Vision
0adManual
0adStory
AIEngineAPI
Actor_Editor
Actors
Adding_A_New_Civilization
Adding_font_support
AegisBot
Alpha20_Timosthenes
Alpha21
Alpha22
Alpha23
Alpha24
Alpha25
Alpha26
Alpha27
Alpha_Release_Roadmap
AndroidPort
AnimationExportTutorial
AnimationSync
ArtDesignDocument
ArtFileNamingConventions
ArtPolyCountGuidelines
ArtScaleAndProportions
Atlas Real time_Editing
Atlas_Internals
Atlas_Manual
Atlas_Manual_Cinematics_Tab
Atlas_Manual_Environment_Tab
Atlas_Manual_Heightmap_Import
Atlas_Manual_Map_Preview
Atlas_Manual_Map_Tab
Atlas_Manual_Object_Tab
Atlas_Manual_Player_Tab
Atlas_Manual_Starting
Atlas_Manual_Terrain_Tab
Atlas_Scenario_Editor_DD
Atlas_Tricks
Atlas_User's_Guide
Audio_Design_Document
Audio_Voice_List
Audio_XML
Audio_class.xml
Audio_group.xml
Aura_Templates
Background_Seasons
Background_Territories
Background_Weather
Basic3DImplementation
BasicAnimationImplementation
Biome_Reference
BuildAndDeploymentEnvironment
BuildInstructions
BuildInstructionsGettingTheCode
BuildServerSetup
Building
BuildingWindowsDependencies
BundleDesignMac
Changelogs
Cheat_Templates
Cinematic_Editor_HOWTO
Civ_Athenians
Civ_Britons
Civ_Carthaginians
Civ_Celts
Civ_Gauls
Civ_Han
Civ_Hellenes
Civ_Iberians
Civ_Macedonians
Civ_Mauryas
Civ_Persians
Civ_Ptolemies
Civ_Romans_Imperial
Civ_Romans_PreImp
Civ_Romans_Republican
Civ_Seleucids
Civ_Spartans
CodeAndMemoryPerformance
CodeQuality
Coding_Conventions
ColladaExporting
CompilingUsingTheReleaseSourceArchives
Compiling_Atlas
CompressedTextures
CppSupport
CreatingNewUnits
DD_Gameplay_features
DD_Introduction
DD_Overview
DDv3WIP
Debugging
DebuggingOnWindows
Debugging_Tools
Deployment
Design_Document
DiplomacyStates
DocumentManagement
EngineDocumentation
EngineFunctions
EngineProfiling
EnglishStyleGuide
Entity
EntityEditorDesign
ExportingErrors
Exposed_Audio_Functions
Exposed_Camera_Functions
Exposed_ConfigDB_Functions
Exposed_Console_Functions
Exposed_Entity_Collection_Functions
Exposed_Entity_Functions
Exposed_Entity_Other_Functions
Exposed_Entity_Template_Functions
Exposed_GUI_Functions
Exposed_LightEnv_Functions
Exposed_Load_Progress_Functions
Exposed_Misc_Functions
Exposed_Network_Functions
Exposed_Player_Functions
Exposed_Renderer_Functions
Exposed_Script_Object
Exposed_VFS_Functions
Exposed_Vector3D_Functions
FAQ
Finding_Your_Way_Around
Font_Builder
Font_Builder2
Formations
FormationsWip
GLESPort
GSOC_Ideas
GUI Achievements
GUI Actions
GUI Addendum
GUI Asset_List
GUI Button
GUI Campaign
GUI Check box
GUI Classes
GUI Coding_Conventions
GUI Color picker
GUI Credits
GUI Custom_Objects
GUI Data_Types
GUI Design
GUI Document_Archive
GUI Drop down
GUI Empty
GUI Engine
GUI Game_Session
GUI Graphical_User_Interface
GUI History
GUI Image
GUI Input
GUI List
GUI Load_Game
GUI Loading
GUI Main_Menu
GUI Manual
GUI Menu
GUI Minimap
GUI Multiplayer
GUI OList
GUI Options
GUI Profile_Manager
GUI Progress bar
GUI Properties
GUI Radio button
GUI Repeat
GUI Save_Game
GUI Scenario_Editor
GUI Scripting
GUI Scripting_Reference
GUI Session_Creation
GUI Session_Sub Windows
GUI Single_Player
GUI Slider
GUI Splash
GUI Sprites
GUI Starter_Documents
GUI Styles
GUI Text
GUI Text_Renderer
GUI Welcome_Window
GUI XML_Files
GUI_Object_Interface
GameDataPaths
GamePerformance
GameplayDesignConstruction
GameplayDesignPrinciples
GameplayDesignProjectiles
GameplayFeatureStatus
General_XML_Concept
GettingStarted
GettingStartedProgrammers
GettingStartedReinforcementLearning
GettingTheUnixRelease
Gitea_Act_Runner_Setup
GraphicsCompatibility
GraphicsFeatureStatus
GraphicsProfiling
Graphics_Implementation
Handle_manager
HannibalBot
Heightmap_Library
Home
HotKeys
HowToUseTrac
Implementation_of_Internationalization_and_Localization
Installing_East_Asian_Locales
Intensity_&_Priority
Internationalization
Internationalization_and_Localization
JSConversions
JSON
JSRootingGuide
JSSerialization
JS_Object_Interface
Jans_stomping_ground
JavaScript
JavascriptDebugging
JavascriptDebuggingServer
JenkinsSetup
JuBot
Language_Editor
LatestRelease
LatestReleaseLinux
LatestReleaseMac
LatestReleaseOther
LatestReleaseWindows
LinuxAppImage
List_Entities_Nature_Fauna
List_Entities_Nature_Fauna_Cosmetic
List_Entities_Nature_Fauna_Herd
List_Entities_Nature_Fauna_Hunt
List_Entities_Nature_Flora
List_Entities_Nature_Flora_Plants
List_Entities_Nature_Flora_Trees
List_Entities_Nature_Geological
List_Entities_Nature_Geological_Minerals
List_Entities_Nature_Geological_Other
List_Entities_Nature_Special
List_Entities_Player_Cavalry
List_Entities_Player_Infantry
List_Entities_Player_Ships
List_Entities_Player_Siege
List_Entities_Player_Structures
List_Entities_Player_Support
List_Maps_Intro
List_Maps_Polar
List_Maps_Tropic
List_Maps_Types_Alpine
List_Maps_Types_Desert
List_Maps_Types_Mediterranean
List_Maps_Types_Savanna
List_Maps_Types_Semi Arid
List_Maps_Types_Special
List_Maps_Types_Steppe
List_Maps_Types_Temperate
Loading
Localization
Localization_de_DE
Localization_el_GR
Localization_en_GB
Localization_es_ES
Localization_fr_FR
Localization_id_ID
Localization_nl_NL
Lock Free_Data_Structures
Logging
MacBuildInstructions
Manual_BasicGameplay
Manual_Buildings
Manual_Cheats
Manual_Civilizations
Manual_GUI_Overview
Manual_MainMenu
Manual_OtherFeatures
Manual_Quickstart_PlayedRTS
Manual_SettingUpAGame
Manual_Settings
Manual_SpecialBuildings
Manual_Terminology
Manual_Units
MaterialFormat
MaterialSystem
Message_Extraction
Mod_Layout
Mod_List
Mod_Publishing_Process
Mod_Verification_Process
ModdingGuiAndSimulation
ModdingResources
Modding_Guide
NightlyBuild
NormalMaps
Nova (theme)
OpenAL_Parameters
OpenGL_Texturing
OpenSourceRelease
PMD_File_Format
PMP_File_Format
POSIX_Definitions
PSA_File_Format
ParallaxNormalMaps
ParticleFormat
PetraBot
Phabricator
Platform_Specifics
Player_Colours
Playing0AD
PortA24ToA25
PortA25ToA26
PortA26ToA27
Pregame_GUI
Profiler2
RMS_Areas
RMS_Biomes
RMS_Connections
RMS_Constraints
RMS_Regions
RMS_Sessions
RMS_Surfaces
RMS_Territories
RMS_Triggers
RMS_Water
Random_Biome_Library
Random_Map_Generator
Random_Map_Generator_Internals
Random_Map_Scripting_Functions
Random_Map_Scripting_Interface
ReleaseProcess
ReportingErrors
Resource_Management
ReviewingPatches
Rmgen2_Library
Rmgen_Library
ScriptCustomTypes
ScriptGlue
ScriptableComplex
ScriptableObject
SecurityModel
Self_Test_Helpers
Session_Creation
Session_GUI
SimulationArchitecture
SimulationRequirements
SimulationSyntax
SoundGroup
SoundNamingConventions
Sound_engine
SourceMap
SpecialCommands
SpecificNames
SpiderMonkey
StarterTasks
StaticRootingAnalysis
Strategy_Guide
SubmittingPatches
SwitchingToYourPCsDedicatedGPU
SynchedJSObject
TDD_AI
TDD_Audio
TDD_FileFormats
TDD_GUI
TDD_GameObjectXml
TDD_Graphics
TDD_Infrastructure
TDD_InterCallingAnalysis
TDD_LowLevel
TDD_MiscEngine
TDD_MultiplayerLobby
TDD_Scripting
TDD_Simulation
TDD_Tools
Task_List
TechModifications
TechnicalArtRequirements
Technology_Templates
TerrainFileFormat
TextureFormat
TortoiseSVN_Guide
TranslatingMods
Translation_DE_0adManual
Translation_DE_HotKeys
Translation_DE_Localization
Translation_DE_Manual_BasicGameplay
Translation_DE_Manual_Buildings
Translation_DE_Manual_Cheats
Translation_DE_Manual_MainMenu
Translation_DE_Manual_OtherFeatures
Translation_DE_Manual_Quickstart_PlayedRTS
Translation_DE_Manual_SettingUpAGame
Translation_DE_Manual_Settings
Translation_DE_Manual_SpecialBuildings
Translation_DE_Manual_Terminology
Translation_DE_Manual_Units
Translation_DE_wiki
Translation_ES_WfgAcademiaInto
Translation_IT_Strategy_Guide
Translation_IT_wiki
Triggers
TutorialScenarios
UIConventions
Unit_Summary_Table
Unit_Summary_Table_Generator
Useful_Links
UserDataProtection
VFS_Binding
VerifyingYourDownloads
Virtual_File_System
Vulkan
Walls
War_Story
WfgAcademiaInto
WritingTests
XML.Actor
XML.Entity.Actions.Attack
XML.Entity.Actions.Barter
XML.Entity.Actions.Create
XML.Entity.Actions.Escort
XML.Entity.Actions.Formation
XML.Entity.Actions.Gather
XML.Entity.Actions.Graze
XML.Entity.Actions.Heal
XML.Entity.Actions.Lock
XML.Entity.Actions.Loot
XML.Entity.Actions.Move
XML.Entity.Actions.Patrol
XML.Entity.Actions.Repair
XML.Entity.Actions.Scout
XML.Entity.Actions.Trade
XML.Entity.Traits.AI
XML.Entity.Traits.Anchor
XML.Entity.Traits.Armour
XML.Entity.Traits.Audio
XML.Entity.Traits.Auras
XML.Entity.Traits.Creation
XML.Entity.Traits.Footprint
XML.Entity.Traits.Formation
XML.Entity.Traits.Garrison
XML.Entity.Traits.Health
XML.Entity.Traits.ID
XML.Entity.Traits.Loot
XML.Entity.Traits.MiniMap
XML.Entity.Traits.Population
XML.Entity.Traits.Promotion
XML.Entity.Traits.Rank
XML.Entity.Traits.Supply
XML.Entity.Traits.Transform
XML.Entity.Traits.UP
XML.Entity.Traits.Vision
XML.Entity
XML.Tech.Design
XML.Tech
XML_Cliff
XML_Formation
XML_Terrain
XML_Water
XeromycesExample
premake
qBot
1
SoundGroup
s0600204 edited this page 2015-05-22 23:56:57 +02:00
Sound Groups are collections of sounds for particular purposes, used by Entity Templates.
To use them in an entity template, use:
<Sound>
<SoundGroups>
<walk>actor/human/movement/walk.xml</walk>
<run>actor/human/movement/walk.xml</run>
<attack>attack/weapon/sword.xml</attack>
<death>actor/human/death/death.xml</death>
</SoundGroups>
</Sound>
A SoundGroup is defined in the following fashion:
<?xml version="1.0" encoding="utf-8" ?>
<SoundGroup>
<Gain>1</Gain>
<Priority>80</Priority>
<RandGain>1</RandGain>
<GainUpper>1</GainUpper>
<GainLower>0</GainLower>
<Path>audio/actor/fauna/death</Path>
<Sound>camel_death_10.ogg</Sound>
<Sound>camel_death_11.ogg</Sound>
</SoundGroup>
SoundGroup Attributes
Sound
- Required
- Type: String
- Description: A file to play, without path. You can have more than one of this entry.
Path
- Required
- Type: String
- Description: Base path to audio files
Gain
- Optional
- Type: Float
- Default: 0.7
- Description: Volume of effect in game. 1.0 is full volume, lower values are quieter. Cannot be set higher than 1.0.
RandOrder
- Optional
- Type: Boolean Integer
- Default: 0
- Description: If 0, then the sounds will be selected to play in the order defined in the soundgroup. If 1, they will be selected to play at random.
RandGain
- Optional
- Type: Boolean Integer
- Default: 0
- Description: If set to 1, then the Gain will be overridden by a value selected at random from between GainUpper and GainLower, with a different value being chosen each time a sound in this group is played.
GainUpper
- Optional
- Type: Float
- Default: 1.0
- Description: The upper bound of the RandGain
GainLower
- Optional
- Type: Float
- Default: 0.8
- Description: The lower bound of the RandGain
Looping
- Optional
- Type: Boolean Integer
- Default: 0
- If set to 1, this sound will loop indefinately.
Omnipresent
- Optional
- Type: Boolean Integer
- Default: 0
- Description: If set, this soundgroup will be played whether the source is onscreen or not. Volume will be affected by distance between camera and source.
Distanceless
- Optional
- Type: Boolean Integer
- Default: 0
- Description: If set, this soundgroup will be played whether the source is onscreen or not. Volume will not be affected by distance. Ideal for alerts and global sound effects.
HeardBy
- Optional
- Type: String
- Possible Values: "owner"
- Default: Unset/NULL
- Description: Who should hear this sound. If not set, then everyone will hear the sound (distance/on-screen permitting). If set to "owner", then only the owner of the entity making the sound will hear it. No other values are permitted.
Pitch
- Optional
- Type: Float
- Default: 1.0
- Note: Must be larger than 0
- Description: Desired pitch shift, where 1.0 equals same pitch out as in. Each reduction by 50 percent equals a pitch shift of -12 semitones (one octave reduction). Zero is not a legal value.
RandPitch
- Optional
- Type: Boolean Integer
- Default: 0
- Description: Whether or not Random Pitch-Shifting is enabled for this effect
PitchUpper
- Optional
- Type: Float
- Default: 1.1
- Description: Upper bound of the Random Pitch Shifting. See description for Pitch.
PitchLower
- Optional
- Type: Float
- Default: 0.9
- Description: Lower bound of the Random Pitch Shifting. See description for Pitch.
Priority
- Optional
- Type: Float
- Default: 60
- Description: The priority of the sound. In cases where there are too many sounds active for the system to play them all, or cases where two sounds need to be started in the same frame, higher priority sounds take precedance.
- Recommended values:
- 100 - emergency use only (undefined overhead)
- 90 - required (voiceover, you are under attack warning)
- 80 - rather important (battle sounds, death, destruction)
- 70 - rather important (building)
- 60 - not so important (resources)
- 50 - fluff (ambient - birds, etc.)
Cones
Sounds in 0AD may be directional. This is simulated with the use of two cones, one inside the other. The sound is played at the volume set by inside the inner cone, with the sound attenuating (decreasing) between the edges of the inner and outer cones until it hits the volume set by . The direction of the cones are determined by which way the entity making the sound is facing. (Diagram may be needed)
ConeGain
- Optional
- Type: Float
- Default: 0
- Description: This is the volume of the effect outside the directional cone.
ConeInner
- Optional
- Type: Float
- Default: 360.0
- Description: Inside angle of the sound cone, in degrees. The default of 360 means that the inner angle covers the entire world, which is equivalent to an omnidirectional source.
ConeOuter
- Optional
- Type: Float
- Default: 360.0
- Description: Outer angle of the sound cone, in degrees. The default of 360 means that the outer angle covers the entire world. If the inner angle is also 360, then the zone for angle-dependent attenuation is zero.
Unused Attributes
These are not currently used by the Sound Manager (at least as best as this author can tell, anyhow)
Replacement
- Optional
- Type: String
- Remarks: Haven't a clue what this is/was supposed to be. Clears grammar checks, but not actually read by pyrogenesis, nor is there a space reserved for it in the cpp object.
Threshold
- Optional
- Type: Float
- Default: 3
- Remarks: Read and stored in the cpp object, but not used.
- Description: Intensity Threshold switching value. The Sound Manager was going to have this concept of "Intensity". Essentially, if you have one gatherer collecting wood, the system will play a (randomly selected from the group) sound effect of a single axe htting wood. A second gatherer joins in, and the system ends up playing two sounds from the same group within a short space of time. As the number of gatherers increases, then the system is suddenly having to play multiple sounds simultaneously from the same group, which apart from potentially not sounding good, isn't good for performance. To keep things simpler for itself, once the sound manager reaches the point where its playing a given amount of sounds or more simultaneously from the same audio group, then it will switch to playing a single sound effect of multiple hits. This value is, as far as I can determine, the threshold at which this group would stop and the one above it would start. The intensity system was never fully implemented, so this value is useless.
Decay
- Optional
- Type: Float
- Default: 3.0
- Remarks: Read and stored in the cpp object, but not used.