Xml File Formats
Contents
- 1 TODO:
- 2 Actor XML
- 3 Asset Preload XML
- 4 Attachment XML
- 5 Attack XML
- 6 Character XML
- 7 Decal XML
- 8 Events XML
- 9 Hotspot XML
- 10 Item XML
- 11 Layered Song XML
- 12 Level Meta XML
- 13 Material XML
- 14 Mod XML
- 15 Music XML
- 16 Nav Mesh Meta XML
- 17 Object XML
- 18 Particle XML
- 19 Path XML
- 20 Reaction XML
- 21 Retarget XML
- 22 Rig XML
- 23 Shader Preload XML
- 24 Sound Group XML
- 25 Synced Animation Group XML
- 26 Version Manifest XML
- 27 Voice XML
TODO:
Level, Saved Object, Prefab - These have more confusing schemas, to the point where I'm not entirely sure they're distinct types from one another, and I haven't nailed them down yet -merlyn
Actor XML
This is the top-level XML file for an NPC or combat character. It binds a Character XML file to a AI angelscript file.
Example
<?xml version="1.0" ?> <Actor> <Character>Data/Characters/rabbot.xml</Character> <ControlScript>enemycontrol.as</ControlScript> </Actor>
Character element
<Character>Data/Characters/rabbot.xml</Character>
Required - Path to Character XML
ControlScript element
<ControlScript>enemycontrol.as</ControlScript>
Required - Path to AI angelscript. Relative to Data/Scripts folder
Asset Preload XML
TODO:
Attachment XML
TODO:
Attack XML
TODO:
Character XML
TODO:
Decal XML
TODO:
Events XML
TODO:
Hotspot XML
TODO:
Item XML
TODO:
Layered Song XML
TODO:
Level Meta XML
TODO:
Material XML
Example
From Data/Materials/default.xml, which is the material XML file that is used from other XMLs, if not required and not specified.
<?xml version="1.0" ?> <material> <events> <leftrunstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_run.xml" attached="true"/> <rightrunstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_run.xml" attached="true"/> <leftwallstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_wallrun.xml" attached="true"/> <rightwallstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_wallrun.xml" attached="true"/> <leftwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_walk.xml" attached="true"/> <rightwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_walk.xml" attached="true"/> <leftcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_crouchwalk.xml" attached="true"/> <rightcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_crouchwalk.xml" attached="true"/> <leftcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_crouchwalk.xml" attached="true"/> <rightcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_crouchwalk.xml" attached="true"/> <land soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_jump_land.xml" attached="true"/> <land_soft soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_jump_land_soft.xml" attached="true"/> <land_slide soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_jump_land_slide.xml" attached="true"/> <slide soundgroup="Data/Sounds/concrete_foley/slide_concrete_short.xml" attached="true"/> <kick soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_kick.xml" attached="true"/> <sweep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_sweep.xml" attached="true"/> <jump soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_jump.xml" attached="true"/> <roll soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_roll.xml" attached="true"/> <edge_grab soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_edge_grab.xml" attached="true"/> <edge_crawl soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_edgecrawl.xml" attached="true"/> <bodyfall soundgroup="Data/Sounds/concrete_foley/bf_concrete.xml" attached="true"/> <bodyfall_light soundgroup="Data/Sounds/concrete_foley/bf_concrete_light.xml" attached="true"/> <bodyfall_medium soundgroup="Data/Sounds/concrete_foley/bf_concrete_medium.xml" attached="true"/> <bodyfall_heavy soundgroup="Data/Sounds/concrete_foley/bf_concrete_heavy.xml" attached="true"/> <weapon_drop_light soundgroup="Data/Sounds/weapon_foley/impact/weapon_drop_light_stone.xml" attached="true"/> <weapon_drop_medium soundgroup="Data/Sounds/weapon_foley/impact/weapon_drop_medium_stone.xml" attached="true"/> <weapon_drop_heavy soundgroup="Data/Sounds/weapon_foley/impact/weapon_drop_heavy_stone.xml" attached="true"/> <blood_spatter soundgroup="Data/Sounds/blood/spatter_hard.xml"/> <blood_drip soundgroup="Data/Sounds/blood/drip_lowpass.xml"/> </events> <events mod="heavy"> <leftrunstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_run.xml" attached="true"/> <rightrunstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_run.xml" attached="true"/> <leftwallstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_wallrun.xml" attached="true"/> <rightwallstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_wallrun.xml" attached="true"/> <leftwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_walk.xml" attached="true"/> <rightwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_walk.xml" attached="true"/> <leftcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_crouchwalk.xml" attached="true"/> <rightcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_crouchwalk.xml" attached="true"/> <leftcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_crouchwalk.xml" attached="true"/> <rightcrouchwalkstep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_crouchwalk.xml" attached="true"/> <land soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_jump_land.xml" attached="true"/> <land_soft soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_jump_land.xml" attached="true"/> <land_slide soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_jump_land.xml" attached="true"/> <kick soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_kick.xml" attached="true"/> <sweep soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_sweep.xml" attached="true"/> <jump soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_jump.xml" attached="true"/> <roll soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_roll.xml" attached="true"/> <edge_grab soundgroup="Data/Sounds/concrete_foley/fs_heavy_concrete_edge_grab.xml" attached="true"/> </events> <events mod="soft"> <weapon_drop_light soundgroup="Data/Sounds/weapon_foley/impact/soft_bag_on_hard.xml" attached="true"/> <weapon_drop_medium soundgroup="Data/Sounds/weapon_foley/impact/soft_bag_on_hard.xml" attached="true"/> <weapon_drop_heavy soundgroup="Data/Sounds/weapon_foley/impact/soft_bag_on_hard.xml" attached="true"/> </events> <physics hardness = "1.0" friction = "1.0" sharp_penetration = "0.0" /> </material>
From Data/Materials/base.xml, which specifies the default max_distance values for all materials.
<?xml version="1.0" ?> <material> <events> <leftrunstep max_distance = "40.0"/> <rightrunstep max_distance = "40.0"/> <leftwallstep max_distance = "40.0"/> <rightwallstep max_distance = "40.0"/> <leftwalkstep max_distance = "25.0"/> <rightwalkstep max_distance = "25.0"/> <leftcrouchwalkstep max_distance = "10.0"/> <rightcrouchwalkstep max_distance = "10.0"/> <land max_distance = "60.0"/> <land_soft max_distance = "30.0"/> <land_slide max_distance = "20.0"/> <slide max_distance = "30.0"/> <kick max_distance = "25.0"/> <sweep max_distance = "25.0"/> <jump max_distance = "40.0"/> <roll max_distance = "15.0"/> <edge_grab max_distance = "25.0"/> <edge_crawl max_distance = "15.0"/> <bodyfall max_distance = "80.0"/> <bodyfall_light max_distance = "40.0"/> <bodyfall_medium max_distance = "60.0"/> <bodyfall_heavy max_distance = "80.0"/> <weapon_drop_light max_distance = "80.0"/> <weapon_drop_medium max_distance = "80.0"/> <weapon_drop_heavy max_distance = "80.0"/> <blood_spatter max_distance = "30.0"/> <blood_drip max_distance = "20.0"/> <flip max_distance = "20.0"/> <choke_grab max_distance = "10.0"/>; <choke_move max_distance = "10.0"/>; <choke_fall max_distance = "10.0"/>; </events> <events mod="heavy"> <leftrunstep max_distance = "50.0"/> <rightrunstep max_distance = "50.0"/> <leftwallstep max_distance = "50.0"/> <rightwallstep max_distance = "50.0"/> <leftwalkstep max_distance = "30.0"/> <rightwalkstep max_distance = "30.0"/> <leftcrouchwalkstep max_distance = "20.0"/> <rightcrouchwalkstep max_distance = "20.0"/> <land max_distance = "80.0"/> <land_soft max_distance = "40.0"/> <land_slide max_distance = "40.0"/> <kick max_distance = "30.0"/> <sweep max_distance = "30.0"/> <jump max_distance = "50.0"/> <roll max_distance = "25.0"/> <edge_grab max_distance = "40.0"/> </events> </material>
Events element
<material> <events mod="soft"> ... </events> </material>
Contains a list of event elements that override default properties for this material.
Mod attribute
Optional - Specifies that this list of events only apply when the given material modifier is specified. TODO: what is a material modifier?
Event element
<material> <events> <leftrunstep soundgroup="Data/Sounds/concrete_foley/fs_light_concrete_run.xml" attached="true" max_distance = "40.0"/> ... </events> </material>
The sound (and physical properties of the sound) for a given material interaction event. The name of the element corresponds to the name of the event (in this example, leftrunstep).
soundgroup attribute
Optional - Specifies the Sound Group XML for the material interaction event.
attached attribute
Optional - Boolean value. If true, the sound (group) will be played as a sound that is attached to the character that triggered the material event.
max_distance attribute
Optional - Decimal value. The max distance that the sound can be while still being made audible to the player.
Mod XML
TODO:
Music XML
TODO:
TODO:
Object XML
TODO:
Particle XML
TODO:
Path XML
TODO:
Reaction XML
TODO:
Retarget XML
TODO:
Rig XML
TODO:
Shader Preload XML
TODO:
Sound Group XML
TODO:
Synced Animation Group XML
TODO:
Version Manifest XML
TODO:
Voice XML
TODO: