<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChewyGumball</id>
		<title>Dragon Age Toolset Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChewyGumball"/>
		<link rel="alternate" type="text/html" href="http://datoolset.net/wiki/Special:Contributions/ChewyGumball"/>
		<updated>2026-07-05T14:20:56Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.6</generator>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=ERF&amp;diff=13017</id>
		<title>ERF</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=ERF&amp;diff=13017"/>
				<updated>2010-06-11T17:32:14Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* File Format */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ERF editor.png|thumb|ERF editor]]&lt;br /&gt;
&lt;br /&gt;
'''ERF''' (&amp;quot;Encapsulated Resource File&amp;quot;) files are container files for game resources. &lt;br /&gt;
&lt;br /&gt;
== List of common ERF Files ==&lt;br /&gt;
&lt;br /&gt;
ERF Files for Dragon Age Game Resources are stored in the (Dragon Age Install Dir)\packages\core\ Folder and Subdirectories. ERF's for Addons or Mods are usually in their respective Addon or Mod Folder.&lt;br /&gt;
&lt;br /&gt;
Common ERF's of certain interests are,&lt;br /&gt;
&lt;br /&gt;
*Game Resources&lt;br /&gt;
**packages\core\data\2da.erf&lt;br /&gt;
**packages\core\data\anims.erf&lt;br /&gt;
**packages\core\data\consolescripts.erf&lt;br /&gt;
**packages\core\data\designerareas.erf&lt;br /&gt;
**packages\core\data\designercreatures.erf&lt;br /&gt;
**packages\core\data\designercutscenes.erf&lt;br /&gt;
**packages\core\data\designerdialogs.erf&lt;br /&gt;
**packages\core\data\designeritems.erf&lt;br /&gt;
**packages\core\data\designerplaceables.erf&lt;br /&gt;
**packages\core\data\designerplots.erf&lt;br /&gt;
**packages\core\data\designertriggers.erf&lt;br /&gt;
**packages\core\data\face.erf&lt;br /&gt;
**packages\core\data\gui.erf&lt;br /&gt;
**packages\core\data\guiexport.erf&lt;br /&gt;
**packages\core\data\iterationtests.erf&lt;br /&gt;
**packages\core\data\lightprobedata.erf&lt;br /&gt;
**packages\core\data\materialobjects.erf&lt;br /&gt;
**packages\core\data\materials.erf&lt;br /&gt;
**packages\core\data\misc.erf&lt;br /&gt;
**packages\core\data\modelhierarchies.erf&lt;br /&gt;
**packages\core\data\modelmeshdata.erf&lt;br /&gt;
**packages\core\data\pathfindingpatches.erf&lt;br /&gt;
**packages\core\data\postprocesseffects.erf&lt;br /&gt;
**packages\core\data\resmetrics.erf&lt;br /&gt;
**packages\core\data\scripts.erf&lt;br /&gt;
**packages\core\data\shaders.erf&lt;br /&gt;
**packages\core\data\states.erf&lt;br /&gt;
**packages\core\data\subqueuefiles.erf&lt;br /&gt;
**packages\core\data\textures.erf&lt;br /&gt;
**packages\core\data\tints.erf&lt;br /&gt;
**packages\core\textures\high\texturepack.erf&lt;br /&gt;
**packages\core\textures\medium\texturepack.erf&lt;br /&gt;
&lt;br /&gt;
*Patch Resources&lt;br /&gt;
**packages\core\patch\... --- Contains Resources added by Game Patches&lt;br /&gt;
&lt;br /&gt;
*Toolset specific Resources&lt;br /&gt;
**packages\core\data_tools\... ---Contains Resources for the Toolset&lt;br /&gt;
&lt;br /&gt;
== Extracting Resources ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- As long as no technical explanation is present or needed, I may prefer seeing explanations of usage like this: --&amp;gt;&lt;br /&gt;
The Toolset is capable of extracting ERF Files Contents.&lt;br /&gt;
&lt;br /&gt;
If you are modding Resources, the first step would be extracting Resources. You may start of by extracting all Resources of certain interest to you, or just a single File. To Maintain a simple and clean resource place, it is best to use a similar Folder Names to extract in.&lt;br /&gt;
&lt;br /&gt;
One may create a Folder on the HD named for example &amp;quot;gameresources&amp;quot;. Then added with subfolders that suit the Purpose, for example &amp;quot;Materials&amp;quot; in which one extracts only Materials. Preferably the Folderscheme is similar to that of the ERF's, to make browsing simple and easy to remember. &lt;br /&gt;
&lt;br /&gt;
== Packing Resources ==&lt;br /&gt;
&lt;br /&gt;
The [[builder to player]] process packages up resources into ERF files for you, storing the generated ERFs inside [[DAZIP]]s.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can edit any ERF by opening it directly in the Toolset, and add or remove files by drag&amp;amp; dropping them into the Toolset with the ERF open manually. In cases the above process fails or whenever.&lt;br /&gt;
&lt;br /&gt;
== Overriding Resources ==&lt;br /&gt;
&lt;br /&gt;
ERF's are named by their general purpose. But not all material files need to necessarily be put into Materials.ERF as an example. Patches do add every Patched Resource into one single ERF for example. The Original Game Resource ERF Files however are best left alone, as it has a high risk of breaking the game.&lt;br /&gt;
&lt;br /&gt;
Files do not need to be present in ERF Files at all. When Overriding Gameresources as when modding, this is a pretty easy method. Overriding Files are of equal name to their original Gameresource counterpart, and are to be placed into packages\core\override\. The Game will then choose this File over the original.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
The format of Dragon Age erfs is not the same as previous versions. There are no string arrays, only a header, a list of files and the files themselves.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;10%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Header&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Table of Contents&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Files&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
The header consists of:&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;35%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;4 characters (8 bytes) for the type of ERF (&amp;quot;ERF &amp;quot;)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;4 characters (8 bytes) for the version (&amp;quot;V2.0 &amp;quot;)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;16 bit integer representing the number of files encapsulated in this ERF&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
=== Table of Contents ===&lt;br /&gt;
The table of contents is a list whose length is the same as the number of files and whose entries are formatted like so:&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;53%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32 characters (64 bytes) for the file name with trailing null characters if file name is not 32 characters long&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32bit integer representing the offset from the beginning of the ERF to the beginning of the encapsulated file&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32bit integer representing the length of the encapsulated file&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the table of contents comes the encapsulated files which are in their own format, specified by the extension of the file name in the table of contents.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=ERF&amp;diff=13016</id>
		<title>ERF</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=ERF&amp;diff=13016"/>
				<updated>2010-06-11T17:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: Added binary format details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ERF editor.png|thumb|ERF editor]]&lt;br /&gt;
&lt;br /&gt;
'''ERF''' (&amp;quot;Encapsulated Resource File&amp;quot;) files are container files for game resources. &lt;br /&gt;
&lt;br /&gt;
== List of common ERF Files ==&lt;br /&gt;
&lt;br /&gt;
ERF Files for Dragon Age Game Resources are stored in the (Dragon Age Install Dir)\packages\core\ Folder and Subdirectories. ERF's for Addons or Mods are usually in their respective Addon or Mod Folder.&lt;br /&gt;
&lt;br /&gt;
Common ERF's of certain interests are,&lt;br /&gt;
&lt;br /&gt;
*Game Resources&lt;br /&gt;
**packages\core\data\2da.erf&lt;br /&gt;
**packages\core\data\anims.erf&lt;br /&gt;
**packages\core\data\consolescripts.erf&lt;br /&gt;
**packages\core\data\designerareas.erf&lt;br /&gt;
**packages\core\data\designercreatures.erf&lt;br /&gt;
**packages\core\data\designercutscenes.erf&lt;br /&gt;
**packages\core\data\designerdialogs.erf&lt;br /&gt;
**packages\core\data\designeritems.erf&lt;br /&gt;
**packages\core\data\designerplaceables.erf&lt;br /&gt;
**packages\core\data\designerplots.erf&lt;br /&gt;
**packages\core\data\designertriggers.erf&lt;br /&gt;
**packages\core\data\face.erf&lt;br /&gt;
**packages\core\data\gui.erf&lt;br /&gt;
**packages\core\data\guiexport.erf&lt;br /&gt;
**packages\core\data\iterationtests.erf&lt;br /&gt;
**packages\core\data\lightprobedata.erf&lt;br /&gt;
**packages\core\data\materialobjects.erf&lt;br /&gt;
**packages\core\data\materials.erf&lt;br /&gt;
**packages\core\data\misc.erf&lt;br /&gt;
**packages\core\data\modelhierarchies.erf&lt;br /&gt;
**packages\core\data\modelmeshdata.erf&lt;br /&gt;
**packages\core\data\pathfindingpatches.erf&lt;br /&gt;
**packages\core\data\postprocesseffects.erf&lt;br /&gt;
**packages\core\data\resmetrics.erf&lt;br /&gt;
**packages\core\data\scripts.erf&lt;br /&gt;
**packages\core\data\shaders.erf&lt;br /&gt;
**packages\core\data\states.erf&lt;br /&gt;
**packages\core\data\subqueuefiles.erf&lt;br /&gt;
**packages\core\data\textures.erf&lt;br /&gt;
**packages\core\data\tints.erf&lt;br /&gt;
**packages\core\textures\high\texturepack.erf&lt;br /&gt;
**packages\core\textures\medium\texturepack.erf&lt;br /&gt;
&lt;br /&gt;
*Patch Resources&lt;br /&gt;
**packages\core\patch\... --- Contains Resources added by Game Patches&lt;br /&gt;
&lt;br /&gt;
*Toolset specific Resources&lt;br /&gt;
**packages\core\data_tools\... ---Contains Resources for the Toolset&lt;br /&gt;
&lt;br /&gt;
== Extracting Resources ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- As long as no technical explanation is present or needed, I may prefer seeing explanations of usage like this: --&amp;gt;&lt;br /&gt;
The Toolset is capable of extracting ERF Files Contents.&lt;br /&gt;
&lt;br /&gt;
If you are modding Resources, the first step would be extracting Resources. You may start of by extracting all Resources of certain interest to you, or just a single File. To Maintain a simple and clean resource place, it is best to use a similar Folder Names to extract in.&lt;br /&gt;
&lt;br /&gt;
One may create a Folder on the HD named for example &amp;quot;gameresources&amp;quot;. Then added with subfolders that suit the Purpose, for example &amp;quot;Materials&amp;quot; in which one extracts only Materials. Preferably the Folderscheme is similar to that of the ERF's, to make browsing simple and easy to remember. &lt;br /&gt;
&lt;br /&gt;
== Packing Resources ==&lt;br /&gt;
&lt;br /&gt;
The [[builder to player]] process packages up resources into ERF files for you, storing the generated ERFs inside [[DAZIP]]s.&lt;br /&gt;
&lt;br /&gt;
Additionally, you can edit any ERF by opening it directly in the Toolset, and add or remove files by drag&amp;amp; dropping them into the Toolset with the ERF open manually. In cases the above process fails or whenever.&lt;br /&gt;
&lt;br /&gt;
== Overriding Resources ==&lt;br /&gt;
&lt;br /&gt;
ERF's are named by their general purpose. But not all material files need to necessarily be put into Materials.ERF as an example. Patches do add every Patched Resource into one single ERF for example. The Original Game Resource ERF Files however are best left alone, as it has a high risk of breaking the game.&lt;br /&gt;
&lt;br /&gt;
Files do not need to be present in ERF Files at all. When Overriding Gameresources as when modding, this is a pretty easy method. Overriding Files are of equal name to their original Gameresource counterpart, and are to be placed into packages\core\override\. The Game will then choose this File over the original.&lt;br /&gt;
&lt;br /&gt;
== File Format ==&lt;br /&gt;
The format of Dragon Age erfs is not the same as previous versions. There are no string arrays, only a header, a list of files and the files themselves.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Header&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Table of Contents&amp;lt;/TD&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Files&amp;lt;/TD&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The header consists of:&lt;br /&gt;
&amp;lt;TABLE&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;4 characters (8 bytes) for the type of ERF (&amp;quot;ERF &amp;quot;)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;4 characters (8 bytes) for the version (&amp;quot;V2.0 &amp;quot;)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;16 bit integer representing the number of files encapsulated in this ERF&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table of contents is a list whose length is the same as the number of files and whose entries are formatted like so:&lt;br /&gt;
&amp;lt;TABLE&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32 characters (64 bytes) for the file name with trailing null characters if file name is not 32 characters long&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32bit integer representing the offset from the beginning of the ERF to the beginning of the encapsulated file&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;32bit integer representing the length of the encapsulated file&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the table of contents comes the encapsulated files which are in their own format, specified by the extension of the file name in the table of contents.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=12993</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=12993"/>
				<updated>2010-06-10T03:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Constants */  they are not unsigned floats...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly. See [[3rd_party_extensions]] for custom model export and import.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;, &amp;quot;COLOR&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these, will almost always have at least 6 --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;Indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;, &amp;quot;COLOR&amp;quot;&lt;br /&gt;
						POSITION - vert coordinates&lt;br /&gt;
						TEXCOORD - texture coordinates&lt;br /&gt;
						TANGENT/BINROMAL/NORMAL - tangent/bitangent/normal of a vert&lt;br /&gt;
						Indices - the vert numbers (from the POSITION data block) which the faces are made from. &lt;br /&gt;
                                                            Note that the texcoords/tangents/bitangents/normals/blendweights/blendindices are by vertex and the ordering MUST be &lt;br /&gt;
                                                            the same as in the POSITION block&lt;br /&gt;
						BLENDWEIGHT - the movement weights of up to 4 bones on this vertex&lt;br /&gt;
						BLENDINDICES - the indices of the bones which the above weights apply to the index is the index of the bone in the accompanying &lt;br /&gt;
                                                               MMH's corresponding NodeMesh tag&lt;br /&gt;
						COLOR - vertex color&lt;br /&gt;
														&lt;br /&gt;
			Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
						&amp;quot;Float4&amp;quot; (four floating point numbers),&lt;br /&gt;
						&amp;quot;Float2&amp;quot; (two floating point numbers),&lt;br /&gt;
						&amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=GFF&amp;diff=12987</id>
		<title>GFF</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=GFF&amp;diff=12987"/>
				<updated>2010-06-03T03:48:08Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Field Array */  flag bits were ordered wrong...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Binary Generic File Format (GFF) is intended to be used for almost every file type in a game so it must support as many data types as are needed.&lt;br /&gt;
&lt;br /&gt;
A [[GFF editor]] is included with the toolset.&lt;br /&gt;
&lt;br /&gt;
== General overview ==&lt;br /&gt;
&lt;br /&gt;
In a GFF, data is grouped into structs, with the file level being the top level struct. Each struct can have any number of fields of any type including structs and variable size lists of any type.&lt;br /&gt;
&lt;br /&gt;
== Differences between GFF V4.0 and GFF V3.2 ==&lt;br /&gt;
&lt;br /&gt;
For those familiar with GFF V3.2, here is a short list of differences between V3.2 and the new version&lt;br /&gt;
&lt;br /&gt;
* 4-byte numerical labels instead of 16 byte strings for faster access&lt;br /&gt;
* Supports lists of any type for convenience (instead of only structs)&lt;br /&gt;
* All struct data is stored in the data block (rather than fields) to allow for faster loads. Fields provide a mapping of where the data is stored.&lt;br /&gt;
* Supports references to mimic pointers to allow complex data structures&lt;br /&gt;
* A few fields were added to the Header&lt;br /&gt;
** File Version records the version of the file type using the GFF&lt;br /&gt;
** Target Platform records the intended platform for the resource&lt;br /&gt;
* In general, the format has been simplified and unnecessary sections were removed (label array, field indices array and list indices array)&lt;br /&gt;
&lt;br /&gt;
Overall, the new format should result in smaller files with faster access times.&lt;br /&gt;
&lt;br /&gt;
== File Format Conceptual Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Field Data Types ===&lt;br /&gt;
There will be a starting list of supported types and new types can be added as needed. The file format can support as many as 65,535 different basic types.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Type || Type ID&lt;br /&gt;
|-&lt;br /&gt;
| UINT8 || 0 &lt;br /&gt;
|-&lt;br /&gt;
| INT8  || 1 &lt;br /&gt;
|-&lt;br /&gt;
| UINT16 || 2 &lt;br /&gt;
|-&lt;br /&gt;
| INT16  ||  3 &lt;br /&gt;
|-&lt;br /&gt;
| UINT32 ||  4 &lt;br /&gt;
|-&lt;br /&gt;
| INT32 || 5 &lt;br /&gt;
|-&lt;br /&gt;
| UINT64 || 6 &lt;br /&gt;
|-&lt;br /&gt;
| INT64  || 7 &lt;br /&gt;
|-&lt;br /&gt;
| FLOAT32 || 8 &lt;br /&gt;
|-&lt;br /&gt;
| FLOAT64 || 9 &lt;br /&gt;
|-&lt;br /&gt;
| Vector3f || 10 &lt;br /&gt;
|-&lt;br /&gt;
| Vector4f || 12 &lt;br /&gt;
|-&lt;br /&gt;
| Quaternionf || 13 &lt;br /&gt;
|-&lt;br /&gt;
| ECString || 14 &lt;br /&gt;
|-&lt;br /&gt;
| Color4f  || 15 &lt;br /&gt;
|-&lt;br /&gt;
| Matrix4x4f || 16 &lt;br /&gt;
|-&lt;br /&gt;
| TlkString  || 17 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- see GFFReader.h for details --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Strings are stored as list of WCHARs.&lt;br /&gt;
&lt;br /&gt;
There's also a &amp;quot;Generic&amp;quot; type that's only usable in references, with type ID 0x0000FFFF&lt;br /&gt;
&lt;br /&gt;
=== Field Labels ===&lt;br /&gt;
&lt;br /&gt;
The Binary GFF uses 4-byte IDs to label each field. Within each struct, each field must have a unique ID. These IDs could be string hashes or numerical IDs. The only requirement is that the reader and writer of these files agree on the IDs. A large list of common IDs can be found by opening ''Dragon Age\tools\plugins\EditorGff40.dll'' with any text editor and searching for the string ''BinaryGFFIDList.h''&lt;br /&gt;
&lt;br /&gt;
== File Format Physical Layout ==&lt;br /&gt;
=== Platform dependence ===&lt;br /&gt;
&lt;br /&gt;
The endianness of the data is that of the target platform. For example, data files for intel processors should be little endian whereas data for power pcs should be big endian.&lt;br /&gt;
&lt;br /&gt;
There may be other differences in the files generated for different platforms in order to achieve proper alignment or the desired in memory layout of the data.&lt;br /&gt;
&lt;br /&gt;
=== Overall File Layout ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;25%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Header&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct Array&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Field Array&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Raw Data Block&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Header ====&lt;br /&gt;
The header is located at the start of the file and contains the following values. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;90%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Value&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Description&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;GFFMagicNumber&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;All GFF files will start with the hexadecimal value 0x47464620, which is the ASCII value for “GFF “.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;GFFVersion&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4 bytes representing the version of the underlying GFF format. This should be “V4.0” or 0x56342E30 for all files using this format.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;TargetPlatform&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte field indicating the intended target platform for this file.&lt;br /&gt;
*“PS3 “ or 0x50533320 for the Playstation 3&lt;br /&gt;
*“X360” or 0x58333630 for the XBOX 360&lt;br /&gt;
*“PC&amp;amp;nbsp;&amp;amp;nbsp;“ or 0x50432020 for the PC&lt;br /&gt;
There will most likely be more specialized targets for the PC in the future.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;FileType&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte field used to identify this file type. By convention it should be the three letter file extension followed by a space.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;FileVersion&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte version of the FileType. By convention it should be “Vx.x” or “xx.x” where X is a digit.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;StructCount&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte unsigned number of elements in the Struct Array.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Data Offset&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte unsigned offset from the beginning of the file to the Raw Data Block.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first five fields are always in big endian and never byteswapped. This keeps those fields human readable on any machine.&lt;br /&gt;
&lt;br /&gt;
==== Struct Array ====&lt;br /&gt;
&lt;br /&gt;
A struct is a grouping of data. A struct definition describes which data is in a struct. Many instances of a struct type may occur in a single file but there will only be one definition for each struct type. &lt;br /&gt;
&lt;br /&gt;
The Struct Array starts immediately after the header. The first element in the Struct Array is the Top-Level Struct for the GFF file and it describes what the file looks like at the top level. Since the Top-Level Struct is always present, every GFF file contains at least one element in the struct array.&lt;br /&gt;
&lt;br /&gt;
The Struct Array looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;35%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 0 (Top-Level Struct)*&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 2&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;...&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct N-1**&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Struct 0 is always present&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;N = Header.StructCount&lt;br /&gt;
&lt;br /&gt;
The GFF Struct contains the values listed in the table below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;35%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Value&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Description&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;StructType&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte programmer defined ID&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;FieldCount&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte number of fields in the struct&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;FieldOffset&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte unsigned offset from the beginning of the file to the first field in the struct&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;StructSize&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte unsigned size of the chunk of data representing the struct&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the fields for a struct are contiguous so knowing the address of the first one and the number of fields is enough information to access any element in the struct.&lt;br /&gt;
&lt;br /&gt;
==== Field Array ====&lt;br /&gt;
&lt;br /&gt;
The Field Array starts immediately after the Struct Array. Each field entry describes a piece of data contained in a struct. Each struct’s fields must be contiguous in the array and appear in increasing order of their labels. The fields for the Top Level Struct appear first in the array.&lt;br /&gt;
&lt;br /&gt;
The Field Array looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;35%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 0 field 0&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 0 field 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 0 …&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct 0 field Struct.FieldCount &amp;amp;mdash;  1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct x field 0&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct x field 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct x …&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct x field Struct.FieldCount &amp;amp;mdash;  1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;…&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each field looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;75%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Value&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Description&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Label&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte label used to look up the field&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;FieldType&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte describing the type of the field (see below for explanation)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Index&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;4-byte unsigned offset to the location of the data&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The label is just a 4-byte value used to find the correct field. They could be string hashes or some other numerical ID.&lt;br /&gt;
&lt;br /&gt;
The index field stores the location of the data as an offset from the beginning of the struct in the data block. This can result in padding within the structs which can be garbage data for all we care (although by convention we usually start with 0xFF).  In particular this happens when trying to maintain alignment for data types such as 16 byte alignment for vectors, etc.&lt;br /&gt;
&lt;br /&gt;
The type is broken up into two 2-byte values that describe the type of the field. &lt;br /&gt;
&lt;br /&gt;
The type looks like this:&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;50%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Value&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Description&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;TypeID&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;A 2-byte unsigned number indicating the type&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Flags&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;2-bytes of bit flags&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following flags are currently defined starting from the most significant bits. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;90%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Bit&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt; &amp;lt;STRONG&amp;gt;Flag Description&amp;lt;/STRONG&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;1 (MSB)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;List Flag. If this flag is set then this type is a list of the described type.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;2&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Struct flag. If this flag is set then this type is a struct.&lt;br /&gt;
If the struct flag is not set then the BaseType indicates the type of the field by the integer id of that type. If the struct flag is set then the BaseType indicates the index of this struct’s description in the Struct Array.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;3 &amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Reference flag&lt;br /&gt;
If the reference flag is set then the data stored in the data block is actually an offset from the beginning of the data block to the location of the actual data. References can be used to mimic pointers in a GFF.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raw Data Block ====&lt;br /&gt;
&lt;br /&gt;
The data block is where the actual data is stored. The data for the top level struct is stored at the beginning of the block. All other data will be fields in the struct or accessed by reference.&lt;br /&gt;
&lt;br /&gt;
=== Lists ===&lt;br /&gt;
&lt;br /&gt;
The address pointed to by a list is actually a reference to another location in the file which stores the list. The first thing in the list is a 4-byte unsigned length of the list followed by the elements.&lt;br /&gt;
&lt;br /&gt;
This is what the list looks like: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE cellSpacing=2 cellPadding=2 width=&amp;quot;20%&amp;quot; border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Length&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Element 0&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Element 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;...&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Element Length - 1&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt; &lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Empty lists can just store a null reference to prevent creating another block.&lt;br /&gt;
&lt;br /&gt;
Generic lists (the lists with FieldType set to 0xFFFF) store pairs: ''type, reference'' where ''type'' defines FieldType of individual element and ''reference'' is a standard [[#References|Reference]] pointing to data of the element.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
A reference is a 4-byte unsigned offset from the beginning of the data block to the location of the data.&lt;br /&gt;
&lt;br /&gt;
Null references are stored as 0xFFFFFFFF. &lt;br /&gt;
&lt;br /&gt;
== Improvements and optimizations ==&lt;br /&gt;
&lt;br /&gt;
=== Field look-up ===&lt;br /&gt;
&lt;br /&gt;
Field look-up is faster in this version of the GFF because it requires an integer comparison instead of a string comparison. Additionally, storing fields in order allows efficient search for the specific field. Finally, knowing what the data structure should look like allows the program to make a good guess as to where the data should be. If the guess is wrong (because the file is an older version) then the program only has to start searching at the initial guess, which is still a faster search than without a good guess.&lt;br /&gt;
&lt;br /&gt;
=== Binding tables ===&lt;br /&gt;
&lt;br /&gt;
It is possible to build a binding table for a type of file that will be read in often. The binding table will allow data to be loaded from the GFF without parsing through the file each time.&lt;br /&gt;
&lt;br /&gt;
=== Direct loads to memory ===&lt;br /&gt;
&lt;br /&gt;
Using this format it is possible to optimize specific file types by writing the GFF in exactly the way it will be written in memory. After verifying that the file type is up to date, the game can read the data block into memory and cast the pointer it directly to the in C data type. This optimization would not result in any loss of generality since the GFF will still be accessible in the usual way.&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=12885</id>
		<title>3rd party extensions</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=12885"/>
				<updated>2010-04-22T17:42:26Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List 3rd party extensions and applications here!&lt;br /&gt;
__NOTOC__&lt;br /&gt;
== Third party applications ==&lt;br /&gt;
&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
* [http://social.bioware.com/project/218/ Tazpn's command line tools] - This packages includes an command line application for converting Dragon Age models from the native format to something that can be manipulated or used a reference for non-derivative works.&lt;br /&gt;
* [http://social.bioware.com/project/1060/ GUI for tazpn's Command Line Tools] - This is an easy-to-use program to convert Dragon Age Models utilizing tazpn's Command Line Tools &amp;amp; the Dragon Age Toolset Command Line Tools.&lt;br /&gt;
*[http://social.bioware.com/project/41/ DATool: DA model manipulator] - This is a tool for viewing, retexturing and resizing DA models. DATool allows you to easily browse the available DA models and make certain modifications to them.&lt;br /&gt;
*[http://social.bioware.com/project/563/ DA:O Toolset Model Exporter] - 3DS max and GMax. Can export static and animatable models. Also Collision,Materials,Animation. Current Version: 1.5.0&lt;br /&gt;
*[http://social.bioware.com/project/899/ Blender Import-Export Script] - A set of tools to import-export meshes and extract resources from erf or rim files, all working into Blender.&lt;br /&gt;
*[http://social.bioware.com/project/2246/ LightWave import-export plugin] - a plugin for [http://www.newtek.com/lightwave/ NewTek LightWave 3D]. Currently allows to import .msh files into LightWave and export 3d data from Modeler module to .msh.xml format.&lt;br /&gt;
*[http://social.bioware.com/project/2312/ Blender-DragonAge Model Converter] - Create and Manipulate level models and props. Feature keywords: Walk mesh, Collision mesh, Lightmapped models...&lt;br /&gt;
*[http://social.bioware.com/project/1511/ Lightmap Post Processor] - Remove black artifacts from lightmaps.&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
*[http://social.bioware.com/project/563/ DA:O Toolset Model Exporter] - 3DS max and GMax. Exports Animation. Also Models/Materials/Collision.&lt;br /&gt;
*[http://social.bioware.com/project/2336/ DA:O Importer and Bone Creator] - 3DS max and GMax. Currently Imports Bones from MMH and Animation files. Combatible with the Exporter.&lt;br /&gt;
&lt;br /&gt;
=== Game data ===&lt;br /&gt;
&lt;br /&gt;
*[http://social.bioware.com/project/755/ GDApp] - GDApp is a simple editor that natively creates or modifies Dragon Age: Origins GD2A spreadsheet files (*.gda), without the need of Excel files.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=12504</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=12504"/>
				<updated>2010-03-10T05:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Example .MSH.XML file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly. See [[3rd_party_extensions]] for custom model export and import.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these, will almost always have at least 6 --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;Indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
						POSITION - vert coordinates&lt;br /&gt;
						TEXCOORD - texture coordinates&lt;br /&gt;
						TANGENT/BINROMAL/NORMAL - tangent/bitangent/normal of a vert&lt;br /&gt;
						Indices - the vert numbers (from the POSITION data block) which the faces are made from. &lt;br /&gt;
                                                            Note that the texcoords/tangents/bitangents/normals/blendweights/blendindices are by vertex and the ordering MUST be &lt;br /&gt;
                                                            the same as in the POSITION block&lt;br /&gt;
						BLENDWEIGHT - the movement weights of up to 4 bones on this vertex&lt;br /&gt;
						BLENDINDICES - the indices of the bones which the above weights apply to the index is the index of the bone in the accompanying &lt;br /&gt;
                                                               MMH's corresponding NodeMesh tag&lt;br /&gt;
														&lt;br /&gt;
		    Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
							 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=12503</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=12503"/>
				<updated>2010-03-10T05:29:09Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: Updated the semantics part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly. See [[3rd_party_extensions]] for custom model export and import.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these, will almost always have at least 6 --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;Indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
						POSITION - vert coordinates&lt;br /&gt;
						TEXCOORD - texture coordinates&lt;br /&gt;
						TANGENT/BINROMAL/NORMAL - tangent/bitangent/normal of a vert&lt;br /&gt;
						Indices - the vert numbers (from the POSITION data block) which the faces are made from. &lt;br /&gt;
                                                            Note that the tangents/bitangents/normals/blendweights/blendindices are by vertex and the ordering MUST be the same as&lt;br /&gt;
                                                            in the POSITION block&lt;br /&gt;
						BLENDWEIGHT - the movement weights of up to 4 bones on this vertex&lt;br /&gt;
						BLENDINDICES - the indices of the bones which the above weights apply to the index is the index of the bone in the accompanying &lt;br /&gt;
                                                               MMH's corresponding NodeMesh tag&lt;br /&gt;
														&lt;br /&gt;
		    Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
							 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Model&amp;diff=9567</id>
		<title>Model</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Model&amp;diff=9567"/>
				<updated>2010-01-13T22:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Models are the smallest pieces in Art creation. They make up a big part of every visible entity in the game. The builder consolidates models, along with other files, into a complete visible package which is then seen in the game world.&lt;br /&gt;
&lt;br /&gt;
A Model belongs to the category: [[Art Resources]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
A Model is made up of a collection of files which define its shape, material, and other important information. These are created using external modelling applications such as 3DSMax or Blender which then export information into a game-readable Format. Models can be static, or animated.&lt;br /&gt;
&lt;br /&gt;
One model may be used in many different places and contexts. Changing a single model can cause multiple changes in a game world.&lt;br /&gt;
&lt;br /&gt;
== File Formats ==&lt;br /&gt;
&lt;br /&gt;
Models are principally defined using the following two file formats: [[MMH]] and [[MSH]]&lt;br /&gt;
&lt;br /&gt;
A Model's Material is defined in a [[MAO]] file which includes a list of Textures, in DDS format, used in the material. &lt;br /&gt;
&lt;br /&gt;
Custom model import is possible by placing the MMH and all custom files referenced by the MMH into your module's override folder. These files would include any custom [[MAO]] files with their associated DDS files and the [[MSH]] and [[PHY]] files.&lt;br /&gt;
&lt;br /&gt;
Bioware made models are stored in the Dragon Age file system's [[ERF]] files. They all share a [[Naming conventions|Naming Convention]].&lt;br /&gt;
&lt;br /&gt;
=== Creature models ===&lt;br /&gt;
&lt;br /&gt;
*[[Morph]]&lt;br /&gt;
*[[APR_base.xls]] [[2DA]]&lt;br /&gt;
&lt;br /&gt;
=== Materials ===&lt;br /&gt;
&lt;br /&gt;
*[[Textureformats]] in DAO&lt;br /&gt;
&lt;br /&gt;
=== Props and placeables ===&lt;br /&gt;
&lt;br /&gt;
*[[placeables.xls]]&lt;br /&gt;
&lt;br /&gt;
== Modding / Creation ==&lt;br /&gt;
&lt;br /&gt;
Creating or Modding a Model can be done in multiple ways. A common activity in modding is retexturing an existing model. However, entirely new Models can also be created.&lt;br /&gt;
&lt;br /&gt;
*Model Import: see http://social.bioware.com/project/218/ (Converts game resource files into a readable format by external Modelling Applications. Tutorial needed)&lt;br /&gt;
*Model Export for 3dsmax: see http://social.bioware.com/project/563/ (Works for static Models, soon to work for Animated Models and Animations. Tutorial needed)&lt;br /&gt;
*Model Export for Blender: see http://social.bioware.com/project/899/ (Able to mod Meshes, Tutorial needed)&lt;br /&gt;
&lt;br /&gt;
See Related Tutorials for workflows.&lt;br /&gt;
&lt;br /&gt;
== Related Tutorials ==&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
See also: &lt;br /&gt;
&lt;br /&gt;
*[[Art]] --Dragon Age Game Art&lt;br /&gt;
*[[Model list]] --For a list of Models placable in the Level Editor. Static Models.&lt;br /&gt;
*[[Vegetation]] --For a list of Vegetation models placable in the Level Editor. Static Models.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Model&amp;diff=9566</id>
		<title>Model</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Model&amp;diff=9566"/>
				<updated>2010-01-13T22:32:10Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: edited grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Models are the smallest pieces in Art creation. They make up a bit part of every visible entity in the game. The builder consolidates models, along with other files, into a complete visible package which is then seen in the game world.&lt;br /&gt;
&lt;br /&gt;
A Model belongs to the category: [[Art Resources]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
A Model is made up of a collection of files which define its shape, material, and other important information. These are created using external modelling applications such as 3DSMax or Blender which then export information into a game-readable Format. Models can be static, or animated.&lt;br /&gt;
&lt;br /&gt;
One model may be used in many different places and contexts. Changing a single model can cause multiple changes in a game world.&lt;br /&gt;
&lt;br /&gt;
== File Formats ==&lt;br /&gt;
&lt;br /&gt;
Models are principally defined using the following two file formats: [[MMH]] and [[MSH]]&lt;br /&gt;
&lt;br /&gt;
A Model's Material is defined in a [[MAO]] file which includes a list of Textures, in DDS format, used in the material. &lt;br /&gt;
&lt;br /&gt;
Custom model import is possible by placing the MMH and all custom files referenced by the MMH into your module's override folder. These files would include any custom [[MAO]] files with their associated DDS files and the [[MSH]] and [[PHY]] files.&lt;br /&gt;
&lt;br /&gt;
Bioware made models are stored in the Dragon Age file system's [[ERF]] files. They all share a [[Naming conventions|Naming Convention]].&lt;br /&gt;
&lt;br /&gt;
=== Creature models ===&lt;br /&gt;
&lt;br /&gt;
*[[Morph]]&lt;br /&gt;
*[[APR_base.xls]] [[2DA]]&lt;br /&gt;
&lt;br /&gt;
=== Materials ===&lt;br /&gt;
&lt;br /&gt;
*[[Textureformats]] in DAO&lt;br /&gt;
&lt;br /&gt;
=== Props and placeables ===&lt;br /&gt;
&lt;br /&gt;
*[[placeables.xls]]&lt;br /&gt;
&lt;br /&gt;
== Modding / Creation ==&lt;br /&gt;
&lt;br /&gt;
Creating or Modding a Model can be done in multiple ways. A common activity in modding is retexturing an existing model. However, entirely new Models can also be created.&lt;br /&gt;
&lt;br /&gt;
*Model Import: see http://social.bioware.com/project/218/ (Converts game resource files into a readable format by external Modelling Applications. Tutorial needed)&lt;br /&gt;
*Model Export for 3dsmax: see http://social.bioware.com/project/563/ (Works for static Models, soon to work for Animated Models and Animations. Tutorial needed)&lt;br /&gt;
*Model Export for Blender: see http://social.bioware.com/project/899/ (Able to mod Meshes, Tutorial needed)&lt;br /&gt;
&lt;br /&gt;
See Related Tutorials for workflows.&lt;br /&gt;
&lt;br /&gt;
== Related Tutorials ==&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial: Adding a Custom Model to Toolset]]&lt;br /&gt;
*[[Tutorial: Reskinning an Item]]&lt;br /&gt;
*[[Tutorial: Creating a custom placeable from a model]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
See also: &lt;br /&gt;
&lt;br /&gt;
*[[Art]] --Dragon Age Game Art&lt;br /&gt;
*[[Model list]] --For a list of Models placable in the Level Editor. Static Models.&lt;br /&gt;
*[[Vegetation]] --For a list of Vegetation models placable in the Level Editor. Static Models.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Talk:Vector&amp;diff=8959</id>
		<title>Talk:Vector</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Talk:Vector&amp;diff=8959"/>
				<updated>2009-12-23T21:18:20Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;x = what?&lt;br /&gt;
y = what?&lt;br /&gt;
z = what?&lt;br /&gt;
&lt;br /&gt;
us none programers dont know which is which, how can we do say height?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- The vector's meaning is arbitrary. Its just a container for three values. The meaning you place upon them is your own and not imposed by the game.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MMH&amp;diff=8839</id>
		<title>MMH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MMH&amp;diff=8839"/>
				<updated>2009-12-15T05:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: clarified a few parts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MMH''' (&amp;quot;Model Mesh Heirarchy&amp;quot;) files are used to describe a wide variety of physical objects that appear in Dragon Age levels. It includes props, visual effects, creature models, weapon models, and so forth.&lt;br /&gt;
&lt;br /&gt;
MMH files are defined by XML files named with the .mmh.xml extension. BioWare generated these XML files using 3DSMax plugins that have some legal encumberances preventing their distribution, but the specifications for .mmh.xml will be released and it is hoped that converters will be able to be written for other file formats. See [[3rd_party_extensions]] for custom model export and import tools.&lt;br /&gt;
&lt;br /&gt;
The XML file is then run through the GraphicsProcessorMMH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce a binary file that is used by the game. The game can actually use the XML file directly, but this has poor performance (it runs it through GraphicsProcessorMMH every time the object is loaded) and should only be used for testing purposes.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
:-byteswapgff{{undocumented}}&amp;lt;!-- ask Graham Wihlidal about these --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the command line you'll typically need:&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH -outdir %ls -platform pc %ls.mmh.xml&lt;br /&gt;
&lt;br /&gt;
MMH files reference [[MSH]] (mesh) files to define the actual triangles and vertexes used in models.&lt;br /&gt;
&lt;br /&gt;
== mmh.xml schema ==&lt;br /&gt;
&lt;br /&gt;
Joint types:&lt;br /&gt;
*Cylindrical&lt;br /&gt;
*6DOF&lt;br /&gt;
*Distance&lt;br /&gt;
*Fixed&lt;br /&gt;
*PointInPlane&lt;br /&gt;
*PointOnLine&lt;br /&gt;
*Prismatic&lt;br /&gt;
*Pulley&lt;br /&gt;
*Revolute&lt;br /&gt;
*Spherical&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FXActorName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An FXA file name --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ModelDataName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- an MSH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An MMH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PreSimulateTime&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- emitter presimulation time --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReferencedMeshes&amp;quot;/&amp;gt; &amp;lt;!-- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some have one or more .msh files named with spaces separating them. For example: ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;. Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialAlpha&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialDecalName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialFresnelFalloff&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialInvertFresnel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true. A true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialTintColor&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true. Four numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseRemoteMaterial&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- a true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BonesUsed&amp;quot;/&amp;gt; &amp;lt;!-- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, helmets, hair, eyes, etc. all have bonesused. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastRuntimeShadow&amp;quot;&amp;gt;  &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CutAway&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IsVFXMesh&amp;quot;&amp;gt; &amp;lt;!-- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt; &amp;lt;!-- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. I think this is referring to material libraries create by the material editor --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt; &amp;lt;!-- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshName&amp;quot;&amp;gt; &amp;lt;!-- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility) --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PunchThrough&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveRuntimeShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveShadow&amp;quot;&amp;gt; &amp;lt;!-- I didn't find this referenced in the source code - deprecated, perhaps? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ShadowCasting&amp;quot;&amp;gt; &amp;lt;!-- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt; &amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt;  I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Scale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BoneIndex&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SoundMaterialType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeCloth&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentTearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;BendingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING_ORTHO&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COLLISION_TWOWAY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COMDAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DISABLE_COLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_GRAVITY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_HARDWARE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_PRESSURE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_SELFCOLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_STATIC&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_TEARABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_VISUALIZATION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CollisionResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DampingCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Density&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Friction&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionAxisRatio&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionChange&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Pressure&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SleepLinearVelocity&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SolverIterations&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindDirection&amp;quot;&amp;gt;  &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindParams&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindUpdateTime&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;StretchingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;TearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Thickness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WakeUpCounter&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindDirection&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindEnabled&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponse&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponseLimit&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindSpace&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;ClothAttachments&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;element name=&amp;quot;ClothAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TearableAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TwoWayAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
                &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeSnaptoPoint&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;choice&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/choice&amp;gt;&lt;br /&gt;
        &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;HookID&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ControllerType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;TagName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;BoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;BoundingBox&amp;quot;&amp;gt; &amp;lt;!-- Vector4f min, Vector4f max --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Rotation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Rotation&amp;quot;&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Kinematic&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Static&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Shape&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;AllowEmitterSpawn&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimX&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimZ&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_CREATURES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_ITEMS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_PLACEABLES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TERRAIN_WALL&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TRIGGERS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_WALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Position&amp;quot;/&amp;gt; &amp;lt;!-- Vector4f --&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Rotation&amp;quot;/&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;VertexData&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;IndexData&amp;quot;&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AffectsDomain&amp;quot;&amp;gt; &amp;lt;!-- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. I don't know what these domains represent. --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriod&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriodDelta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityVariation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;IsStatic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt; &amp;lt;!-- true/false, I believe --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Duration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- All appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SegmentLength&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;AttributeName&amp;quot;&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SourceName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt; &amp;lt;!-- All seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt; &amp;lt;!-- &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt; &amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, and tools_bulb_ambient.mmh.xml. --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&amp;lt;!-- &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt; &amp;lt;!-- 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Acceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleXMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleYMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Birthrate&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateInParticlesPerMeter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Bounciness&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EmitterType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EnableParticleCollisions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;/&amp;gt; &amp;lt;!-- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1; if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;GravityMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InheritVelocityInsteadOfPosition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotationRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InvMovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;KillParticleWhenTargetHit&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LOD&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Life&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LifeRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;LinkParticlesTogether&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleModel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MovementSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing movementspread X and movementspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ObjectSpaceAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;OrientationBehaviour&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticleInheritance&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesAffectedByWind&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesFollowPath&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsObjectSpawn&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomInitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;RotationalAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ScaleRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SpawnDirectionTracksTarget&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SpawnSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing spawnspread X and spawnspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SplatEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetAttraction&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetRadius&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UVDistributionSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;UpdateOnlyWhenVisible&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UserParamName&amp;quot;/&amp;gt; &amp;lt;!-- ECString, not sure if there's any special formatting here --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;VertexFormat&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;WorldAxisAcceleration&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;EmitterAttachments&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;EmitterAttachment&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;SpawnOnSurface&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;UseNormalForVelocity&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SpawnVolume&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Axis&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;InvertSpawnVolumeNormals&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MaxCorner&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MinCorner&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;SpawnVolumeType&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpawnWithinVolume&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;UseVolumeNormalsForDirection&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;SplatParticle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- four numbers separated by spaces --&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;HoldLastFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Lifespan&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesH&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesW&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;OrientationRangeRadians&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Width&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;ReflectionMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;IrradianceMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Count&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AgeMapElement&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Alpha&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;PercentLifeElapsed&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RotationSpeedMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;XScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;YScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MMH.XML file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- A note on value types:&lt;br /&gt;
		List#:type -- means # amount of values of specified type with spaces in between&lt;br /&gt;
		&lt;br /&gt;
		string -- a series of characters, digits and underscores, can not start with a colon, no spaces&lt;br /&gt;
		?string? -- same as above except can start with a colon&lt;br /&gt;
		int -- an integer (whole number)&lt;br /&gt;
		decimal -- any number including one with digits appearing after a decimal point, &lt;br /&gt;
				   all decimals MUST have a decimal point even if there are no digits after it (ie 1. not 1, or 0.0)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ModelHierarchy ModelDataName=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		FXActorName=&amp;quot;string&amp;quot; -- An FXA file name &lt;br /&gt;
		PreSimulateTime=&amp;quot;decimal&amp;quot; -- emitter presimulation time&lt;br /&gt;
		ReferencedMeshes=&amp;quot;List:string&amp;quot; -- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some &lt;br /&gt;
										  have one or more .msh files named with spaces separating them. For example: &lt;br /&gt;
															ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;&lt;br /&gt;
										  Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.&lt;br /&gt;
		RemoteMaterialAlpha=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialDecalName=&amp;quot;string&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialFresnelFalloff=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialInvertFresnel=&amp;quot;int&amp;quot; -- if UseRemoteMaterial is true. A true/false value &lt;br /&gt;
		RemoteMaterialTintColor=&amp;quot;List4:decimal&amp;quot;-- if UseRemoteMaterial is true. Four numbers separated by spaces &lt;br /&gt;
		UseRemoteMaterial=&amp;quot;int&amp;quot; -- a true/false value &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 1 of (defined below): --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshHierarchy/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;	&lt;br /&gt;
&amp;lt;/ModelHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeMesh&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BonesUsed=&amp;quot;List:int&amp;quot; -- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, &lt;br /&gt;
								helmets, hair, eyes, etc. all have bonesused. &lt;br /&gt;
		CastBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		CastRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		CutAway=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		ID=&amp;quot;string&amp;quot; -- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters &lt;br /&gt;
		IsVFXMesh=&amp;quot;int&amp;quot; -- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter&lt;br /&gt;
		MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot; -- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot; -- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor &lt;br /&gt;
									 named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. &lt;br /&gt;
									 I think this is referring to material libraries create by the material editor &lt;br /&gt;
		MeshGroupName=string&amp;quot;&amp;gt; -- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful&lt;br /&gt;
								  names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; &lt;br /&gt;
		MeshName=&amp;quot;string&amp;quot; -- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility)&lt;br /&gt;
		Name=&amp;quot;string&amp;quot; -- name of the nodemesh&lt;br /&gt;
		PunchThrough=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	    ReceiveBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		ReceiveRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		&amp;lt;&amp;lt;UNKNOWN&amp;gt;&amp;gt; ReceiveShadow=&amp;quot;int&amp;quot; -- I didn't find this referenced in the source code - deprecated, perhaps? &lt;br /&gt;
		ShadowCasting=&amp;quot;int&amp;quot; -- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms?&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of the following items come next, definitions follow later --&amp;gt;&lt;br /&gt;
	&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;	&amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt; &lt;br /&gt;
						 I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;		&amp;lt;!-- appears to be able to handle a nodemesh within a nodemesh :O --&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Scale&amp;gt;&amp;quot;decimal&amp;quot;&amp;lt;/Scale&amp;gt;  &lt;br /&gt;
	&amp;lt;!-- I am assuming next bit means no more than one of the following (could be none): &lt;br /&gt;
									  &amp;lt;choice&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
										  &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
									  &amp;lt;/choice&amp;gt;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;NodeAmbientLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeMesh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Node Name=&amp;quot;?string?&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BoneIndex=&amp;quot;int&amp;quot; ---- possibly the bone to which this node is attached to, not included if not attached to a bone?&lt;br /&gt;
		SoundMaterialType=&amp;quot;int&amp;quot; ---- are there SoundMaterialType definitions somewhere? if so I guess this is the index of one&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following(including duplicates), however I assume having more than one of the same type&lt;br /&gt;
		 would cause the compiler to go wtf? in some cases (like bounding box or translation). Definitions follow later in file&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCloth&amp;gt; &amp;lt;!-- has a shit load of attributes with no comments however I assume they all have to do with cloth simulation paramaters --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- NodeCloth Attributes:&lt;br /&gt;
		AttachmentResponseCoefficient=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		AttachmentTearFactor=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		BendingStiffness=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		CF_BENDING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_BENDING_ORTHO=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COLLISION_TWOWAY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COMDAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DISABLE_COLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_GRAVITY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_HARDWARE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_PRESSURE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_SELFCOLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_STATIC=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_TEARABLE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_VISUALIZATION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CollisionResponseCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DampingCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Density=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Friction=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		ID=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
		MeshGroupName=&amp;quot;string&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Pressure=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SleepLinearVelocity=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SolverIterations=&amp;quot;int&amp;quot;&lt;br /&gt;
		StretchingStiffness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		TearFactor=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Thickness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		WakeUpCounter=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:	GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot; --&amp;gt;&lt;br /&gt;
		&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt;	&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;ClothAttachments&amp;gt;&lt;br /&gt;
		  &amp;lt;ClothAttachment TearableAttachment=&amp;quot;int&amp;quot; TwoWayAttachment=&amp;quot;int&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;/ClothAttachment&amp;gt;&lt;br /&gt;
		&amp;lt;/ClothAttachments&amp;gt;&lt;br /&gt;
		&amp;lt;MeshGroup Name=&amp;quot;string&amp;quot;&amp;gt;	&amp;lt;!-- contains 1 or more Data elements, defined later in file --&amp;gt;&lt;br /&gt;
			&amp;lt;Data/&amp;gt;	&lt;br /&gt;
		&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
	&amp;lt;/NodeCloth&amp;gt;&lt;br /&gt;
	&amp;lt;NodeSnaptoPoint Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
			&amp;lt;Export/&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more of the following, defined later in file --&amp;gt;&lt;br /&gt;
            &amp;lt;Translation/&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation/&amp;gt;&lt;br /&gt;
          &amp;lt;/NodeSnapToPoint&amp;gt;&lt;br /&gt;
    &amp;lt;NodeAmbientLight/&amp;gt;	&amp;lt;!-- Optional Element defined later in file--&amp;gt; &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;&amp;lt;&amp;lt;WARNING: PROBABLY NOT A GOOD IDEA TO USE THIS ONE!!!&amp;gt;&amp;gt;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- IE it is a REALLY old version of NodeMesh --&amp;gt;&lt;br /&gt;
&amp;lt;MeshHierarchy Name=&amp;quot;string&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- These are Optional and apparently can have more than one if you want, defined lated in file --&amp;gt;&lt;br /&gt;
		&amp;lt;MeshHierarchy/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have either a NodeLightProbe or 0 or more NodeEmitters --&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/MeshHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeCrustHierarchy HookID=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; 		&amp;lt;!-- can have 0 or more Exports, defined later in file --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;	&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following (including duplicates apparently) --&amp;gt;&lt;br /&gt;
	  &amp;lt;Node/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeCrustHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Rotation&amp;gt; &lt;br /&gt;
  data &amp;lt;!-- data is a Quaternionf and represents the relative rotation from its parent or the world axis if it has no parent--&amp;gt;&lt;br /&gt;
&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Export ControllerType=&amp;quot;string&amp;quot; ExportName=&amp;quot;?string?&amp;quot; TagName=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Optional Attribute: MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- An export is what is used to connect nodes from an animation file to nodes in a model file. The key frames in an animation file affect the translations/rotations of the nodes with the corresponding exports of the same name. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- data is Vector4f min, Vector4f max (ie: f f f f f f f f --&amp;gt;&lt;br /&gt;
&amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Translation&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot;-- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- This is a vector4 representing the difference in position from its parent, or the origin if it has no parent --&amp;gt;&lt;br /&gt;
&amp;lt;/Translation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CollisionObject&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	Kinematic=&amp;quot;boolean&amp;quot;&lt;br /&gt;
	Static=&amp;quot;boolean&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- can have 1 or more Shapes --&amp;gt;&lt;br /&gt;
	&amp;lt;Shape&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		AllowEmitterSpawn=&amp;quot;int&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Position --Vector4f but no required type??&lt;br /&gt;
		Rotation --Quaternionf but no required type??&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		DimX=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DimY=&amp;quot;double&amp;quot;  -- why double when other dims are decimal???&lt;br /&gt;
		DimZ=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_CREATURES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_ITEMS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_PLACEABLES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TERRAIN_WALL=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TRIGGERS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_WALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Height=&amp;quot;double&amp;quot;&lt;br /&gt;
		Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;!-- VertexData and IndexData are optional, however you must have both or neither. Can have more than one pair??? --&amp;gt;&lt;br /&gt;
		&amp;lt;VertexData length=&amp;quot;int&amp;quot;&amp;gt; &amp;lt;!-- I assume length is the number of verts or possibly the number of values given in data --&amp;gt;&lt;br /&gt;
		  data &amp;lt;!-- I assume this is a list of vert coords given in a list form (ie: x1,y1,z1,x2,y2,z2,...,xn,yn,zn maybe without commas) --&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexData&amp;gt;&lt;br /&gt;
		&amp;lt;IndexData&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
		  data		&amp;lt;!-- maybe its vertex indicies for triangles? --&amp;gt;&lt;br /&gt;
		&amp;lt;/IndexData&amp;gt;&lt;br /&gt;
	&amp;lt;/Shape&amp;gt;&lt;br /&gt;
&amp;lt;/CollisionObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodePointLight Color=&amp;quot;list4:decimal&amp;quot; IsStatic=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;decimal&amp;quot;&amp;gt; &amp;lt;!-- Color: string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	AffectsDomain=&amp;quot;int&amp;quot; -- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. &lt;br /&gt;
						   I don't know what these domains represent.&lt;br /&gt;
    IntensityPeriod=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityPeriodDelta=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityVariation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    UseVariationTint=&amp;quot;int&amp;quot;-- true/false, I believe &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- must have at least 1 of the following, can have more including duplicates apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodePointLight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeWeapontrail Duration=&amp;quot;decimal&amp;quot; MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot; SegmentLength=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- All MaterialObjects appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeWeaponTrail&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Attribute AttributeName=&amp;quot;string&amp;quot; SourceName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- AttributeName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- SourceName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
&amp;lt;/Attribute&amp;gt; &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeUsePoint Name=&amp;quot;string&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- All Name values seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Type values: &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front &lt;br /&gt;
		 and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeUsePoint&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, &lt;br /&gt;
	 and tools_bulb_ambient.mmh.xml. &lt;br /&gt;
	 &lt;br /&gt;
	 I would assume this type of node is used for calculating ambient light/shadows maybe like a radiosity pass or something.&lt;br /&gt;
	 Might make some interesting lighting changes if you fiddle with it but be careful! might break your lighting --&amp;gt;&lt;br /&gt;
&amp;lt;NodeAmbientLight Color=&amp;quot;List4:decimal&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;double&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;!-- Color: string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &lt;br /&gt;
		 &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools &lt;br /&gt;
		 Name: &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. &lt;br /&gt;
		 Radius: 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; (10000000?? big big radius!) for the two tools --&amp;gt;&lt;br /&gt;
    &amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
    &amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeAmbientLight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeEmitter&amp;gt; &amp;lt;!-- has a shit ton of attributes, all of which seem to pertain to particle emitter parameters (makes sense) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Acceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Birthrate=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		BirthrateInParticlesPerMeter=&amp;quot;int&amp;quot;&lt;br /&gt;
		BirthrateRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		EmitterType=&amp;quot;string&amp;quot;&lt;br /&gt;
		EnableParticleCollisions=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		GravityMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		IneritVelocityInsteadOfPosition=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		InitialRotationSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Life=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		LinkParticlesTogether=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MovementSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing movementspread X and movementspread Y &lt;br /&gt;
		Name=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		OrientationBehaviour=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticleInheritance=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticlesAffectedByWind=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		ParticlesFollowPath=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RotationalAcceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ScaleRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SpawnSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing spawnspread X and spawnspread Y&lt;br /&gt;
		UpdateOnlyWhenVisible=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;	&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot;- - string of four numbers, separated by spaces.&lt;br /&gt;
		AgeMapScaleXMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		AgeMapScaleYMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Bounciness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
		FlipbookType=&amp;quot;int&amp;quot; -- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  &lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1;&lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;&lt;br /&gt;
		FramesPerSecond=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InvMovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		KillParticleWhenTargetHit=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		LOD=&amp;quot;int&amp;quot; -- true/false maybe?? might be an index/identifier&lt;br /&gt;
		LifeRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		MeshParticleModel=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ObjectSpaceAcceleration=&amp;quot;int&amp;quot;&lt;br /&gt;
		PhysicsEmitter=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		PhysicsObjectSpawn=&amp;quot;int -- true/false ??&lt;br /&gt;
		RandomInitialRotation=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RandomStartFrame=&amp;quot;int&amp;quot; --true/false ??&lt;br /&gt;
		SpawnDirectionTracksTarget=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		SplatEmitter=&amp;quot;int&amp;quot; -- true/false ?? might be index of a SplatEmitter if they exist&lt;br /&gt;
		TargetAttraction=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
		TargetName=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		TargetRadius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		UVDistributionSize=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		UserParamName=&amp;quot;??????&amp;quot; -- (datatype=ECString) &amp;lt;&amp;lt; What is this?? -- ECString, not sure if there's any special formatting here &lt;br /&gt;
		VertexFormat=&amp;quot;string&amp;quot; -- are there VertexFormats defined somewhere?&amp;gt;&lt;br /&gt;
		WorldAxisAcceleration=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Requires 1 or more of the following, duplicates allowed apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional EmitterAttachments Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;EmitterAttachment Type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional EmitterAttachment Attributes:&lt;br /&gt;
			Name=&amp;quot;string&amp;quot;&lt;br /&gt;
			SpawnOnSurface=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			UseNormalForVelocity=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
	&amp;lt;/EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;SpawnVolume InvertSpawnVolumeNormals=&amp;quot;int&amp;quot; SpawnWithinVolume=&amp;quot;int&amp;quot; &amp;gt; &amp;lt;!-- both look to be true/false values --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SpawnVolume Attributes:&lt;br /&gt;
			Axis=&amp;quot;??????&amp;quot; -- no data type specified, assuming 3 numbers&lt;br /&gt;
			Length=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			MaxCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MinCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			SpanwVolumeType=&amp;quot;string&amp;quot; -- are there SpawnVolumeTypes defined somewhere???&lt;br /&gt;
			UseVolumeNormalsForDirection=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Data/&amp;gt;&amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
	&amp;lt;/SpawnVolumn&amp;gt;&lt;br /&gt;
    &amp;lt;SplatParticle&amp;gt; &amp;lt;!-- Optional - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SplatParticle Attributes:&lt;br /&gt;
			Height=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			Lifespan=&amp;quot;int&amp;quot;&lt;br /&gt;
			MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
			NumSamplesH=&amp;quot;int&amp;quot;&lt;br /&gt;
			NumSamplesW=&amp;quot;int&amp;quot;&lt;br /&gt;
			OrientationRangeRadians=&amp;quot;int&amp;quot;&lt;br /&gt;
			Width=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SplatParticle Attributes:&lt;br /&gt;
			AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot; -- four numbers separated by spaces&lt;br /&gt;
			FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
			FlipbookType=&amp;quot;string&amp;quot; -- apparently not same as above in NodeEmitter&lt;br /&gt;
			FramesPerSecond=&amp;quot;int&amp;quot;&lt;br /&gt;
			HoldLastFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			RandomStartFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
		&amp;lt;AgeMap/&amp;gt;&lt;br /&gt;
	&amp;lt;/SplatParticle&amp;gt;&lt;br /&gt;
	&amp;lt;AgeMap/&amp;gt; &amp;lt;!-- Not Optional - Required - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitter&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Data Semantic=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		ElementCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexType=&amp;quot;string&amp;quot;&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 	data&lt;br /&gt;
&amp;lt;/Data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterGroup MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;?string?&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt; &amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterGroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterTarget Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterTarget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeLightProbe Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- following are optional elements, they are paired, can't have one without the other --&amp;gt;&lt;br /&gt;
	&amp;lt;ReflectionMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;IrradianceMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/NodeLightProbe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AgeMap Count=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- contains one or more AgeMapElements --&amp;gt;&lt;br /&gt;
      &amp;lt;AgeMapElement Alpha=&amp;quot;decimal&amp;quot; Color=&amp;quot;List4:decimal&amp;quot; PercentLifeElapsed=&amp;quot;decimal&amp;quot; XScale=&amp;quot;decimal&amp;quot; YScale=&amp;quot;decimal&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- Optional AgeMapElement Attributes: RotationSpeedMultiplier=&amp;quot;decimal&amp;quot; --&amp;gt;&lt;br /&gt;
 &amp;lt;/AgeMap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Model_list&amp;diff=8740</id>
		<title>Model list</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Model_list&amp;diff=8740"/>
				<updated>2009-12-12T22:55:46Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Naming conventions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox level editor}}&lt;br /&gt;
The idea behind showing these models is to give the player a quick view of the actual model that corresponds with a model file name.  Most of the files have meaningful names however the builder will still find that he/she has to place the model in the level to see what it looks like.  These will allow the builder to quickly view model images and thus save them time in level building.&lt;br /&gt;
&lt;br /&gt;
== DATool ==&lt;br /&gt;
[[#http://social.bioware.com/project/41/|DATool]] is a small utility written by [[#http://social.bioware.com/108/|Adinos]] that allows the viewing and retexturing of the models from Dragon Age.  If you do not see an image below for the model you're curious about try DATool.&lt;br /&gt;
&lt;br /&gt;
== Naming conventions ==&lt;br /&gt;
&lt;br /&gt;
The base folders and their meanings are:&lt;br /&gt;
&lt;br /&gt;
*base&lt;br /&gt;
*[[#Black Boxes|blk]] - black boxes of various sizes and proportions, used to obscure the portions of models that lie &amp;quot;outside&amp;quot; an interior level where the player shouldn't be able to see.&lt;br /&gt;
*c - creature&lt;br /&gt;
*cai - Cave Int. &lt;br /&gt;
*[[#Cave|cav]] - Caves&lt;br /&gt;
*[[#Cave Deep Road|cdr]] - Cave Deep Road&lt;br /&gt;
*[[#Chantry Exterior|che]] - Chantry Exterior&lt;br /&gt;
*[[#Chantry Interior|chi]] - Chantry Interior&lt;br /&gt;
*cn - Commmon Body Meshes &lt;br /&gt;
*cs&lt;br /&gt;
*df - dwarf female accessories and components&lt;br /&gt;
*dm - dwarf male accessories and components&lt;br /&gt;
*dne - dwarf noble exterior level pieces&lt;br /&gt;
*dni - dwarf noble interior level pieces&lt;br /&gt;
*[[#Dwarf Slum Exterior|dse]] - Dwarf Slum Exterior&lt;br /&gt;
*[[#Dwarf Slum Interior|dsi]] - Dwarf Slum Interior&lt;br /&gt;
*[[#Dwarven Exterior|dwe]] - Dwarven Exterior (Orzammar City) &lt;br /&gt;
*[[#Dwarven Interior|dwi]] - Dwarven Interior&lt;br /&gt;
*ef - elf female accessories and components&lt;br /&gt;
*el&lt;br /&gt;
*em - elf male accessories and components&lt;br /&gt;
*[[#Fereldan Castle|fca]] - Fereldan Castle&lt;br /&gt;
*[[#Fereldan Castle Exterior|fce]] - Fereldan Castle/City Exterior &lt;br /&gt;
*[[#Fereldan Castle Interior|fci]] - Fereldan Castle Interior&lt;br /&gt;
*fde&lt;br /&gt;
*[[#Fereldan Dungeon Interior|fdi]] - Fereldan Dungeon Interior&lt;br /&gt;
*[[#Fereldan Human Exterior|fhe]] - Fereldan Human Exterior&lt;br /&gt;
*fhec&lt;br /&gt;
*[[#Fereldan Human Interior|fhi]] - Ferelden Human Interior&lt;br /&gt;
*fne - Ferelden noble exterior level pieces&lt;br /&gt;
*frt&lt;br /&gt;
*[[#Fereldan Town Interior|fti]] - Fereldan Town Interior&lt;br /&gt;
*ftr&lt;br /&gt;
*[[#Fereldan Village Exterior|fve]] - Fereldan Village Exterior&lt;br /&gt;
*fx&lt;br /&gt;
*fxa&lt;br /&gt;
*fxc&lt;br /&gt;
*fxe&lt;br /&gt;
*fxg&lt;br /&gt;
*fxm&lt;br /&gt;
*fxp&lt;br /&gt;
*hf - human female accessories and components&lt;br /&gt;
*hm - human male accessories and components&lt;br /&gt;
*[[#&amp;quot;Hero&amp;quot; Sets|hro]] - Hero Sets&lt;br /&gt;
*kn&lt;br /&gt;
*lightrig&lt;br /&gt;
*material&lt;br /&gt;
*nm&lt;br /&gt;
*plc - placeables&lt;br /&gt;
*prp - props&lt;br /&gt;
*prv&lt;br /&gt;
*qm&lt;br /&gt;
*sb - Skybox&lt;br /&gt;
*sca&lt;br /&gt;
*sr&lt;br /&gt;
*[[#Tevinter Castle Exterior|tce]] - Tevinter Castle Exterior&lt;br /&gt;
*[[#Tevinter Caster Interior|tci]] - Tevinter Castle Interior&lt;br /&gt;
*[[#Tevinter Fade Interior|tfi]] - Tevinter Fade Interior&lt;br /&gt;
*tools - models used by the toolset&lt;br /&gt;
*trn&lt;br /&gt;
*[[#Tevinter Tower Interior|tti]] - Tevinter Tower Interior&lt;br /&gt;
*[[#Tevinter Exterior|tve]] - Tevinter Exterior&lt;br /&gt;
*[[#Tevinter Interior|tvi]] - Tevinter Interior&lt;br /&gt;
*tvm&lt;br /&gt;
*ue&lt;br /&gt;
*uem - Face Bits &lt;br /&gt;
*uh - Face Bits &lt;br /&gt;
*uhm - Face Bits &lt;br /&gt;
*ul&lt;br /&gt;
*ulm - eyelashes&lt;br /&gt;
*v&lt;br /&gt;
*vfx&lt;br /&gt;
*[[#Vista Objects|vis]] - Vista Objects&lt;br /&gt;
*[[#Vista Objects|vst]] - Vista Objects&lt;br /&gt;
*w - weapon models&lt;br /&gt;
*water - waterfall pieces&lt;br /&gt;
*zz - models used in debugging&lt;br /&gt;
&lt;br /&gt;
Since the model names are often inscrutable you will likely wish to make use of the [[scratch space]] in the [[level editor]] by bringing out all of the models from a particular group of interest and copying and pasting those you wish to use from there.&lt;br /&gt;
&lt;br /&gt;
* Black models are used to surround indoor areas so that players can see inside the walls when the camera is outside them.&lt;br /&gt;
* All screen shots are taken with a level of 64 x 64 size (smallest size possible). This allows you to see a relative scale of the model.  Most are placed within the level area but some are much larger than the area.&lt;br /&gt;
* Many of these images are not exactly to scale, the idea is to see what the image looks like rather than to see the exact size to scale.&lt;br /&gt;
* Some model images such as ceilings and roofs will be taken from underneath looking into the sky.&lt;br /&gt;
* Some model images look the same but are of different size.&lt;br /&gt;
* Some models extend below the grounds surface when placed. &lt;br /&gt;
* The models in this sheet are architectural and environmental.  Models that are props, placeables, fx, body parts etc can all be viewed in other areas of the toolset.&lt;br /&gt;
&lt;br /&gt;
== Black Boxes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Blk 01 0.jpg|Blk 01 0&lt;br /&gt;
File:Blk 02 0.jpg|Blk 02 0&lt;br /&gt;
File:Blk 03 0.jpg|Blk 03 0&lt;br /&gt;
File:Blk 04 0.jpg|Blk 04 0&lt;br /&gt;
File:Blk 05 0.jpg|Blk 05 0&lt;br /&gt;
File:Blk 06 0.jpg|Blk 06 0&lt;br /&gt;
File:Blk 07 0.jpg|Blk 07 0&lt;br /&gt;
File:Blk 08 0.jpg|Blk 08 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cave ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cai lrgcrna 0.jpg | cai lrgcrna 0&lt;br /&gt;
File:Cai lrgcrnb 0.jpg | cai lrgcrnb 0&lt;br /&gt;
File:Cai lrgdoor02 0.jpg | cai lrgdoor02 0&lt;br /&gt;
File:Cai lrgdoor03 0.jpg | cai lrgdoor03 0&lt;br /&gt;
File:Cai lrgdoor 0.jpg | cai lrgdoor 0&lt;br /&gt;
File:Cai lrgfloorb 0.jpg | cai lrgfloorb 0&lt;br /&gt;
File:Cai lrgroofa 0.jpg | cai lrgroofa 0&lt;br /&gt;
File:Cai lrgroofb 0.jpg | cai lrgroofb 0&lt;br /&gt;
File:Cai lrgwalla 0.jpg | cai lrgwalla 0&lt;br /&gt;
File:Cai lrgwallaweb2 0.jpg | cai lrgwallaweb2 0&lt;br /&gt;
File:Cai lrgwallaweb 0.jpg | cai lrgwallaweb 0&lt;br /&gt;
File:Cai lrgwallb 0.jpg | cai lrgwallb 0&lt;br /&gt;
File:Cai pillara 0.jpg | cai pillara 0&lt;br /&gt;
File:Cai pillaraweb 0.jpg | cai pillaraweb 0&lt;br /&gt;
File:Cai rock01 0.jpg | cai rock01 0&lt;br /&gt;
File:Cai totci01 0.jpg | cai totci01 0&lt;br /&gt;
File:Cai tuncurve02 0.jpg | cai tuncurve02 0&lt;br /&gt;
File:Cai tuncurve03 0.jpg | cai tuncurve03 0&lt;br /&gt;
File:Cai tunmed01 0.jpg | cai tunmed01 0&lt;br /&gt;
File:Cai tunn401 0.jpg | cai tunn401 0&lt;br /&gt;
File:Cai tunnend02 0.jpg | cai tunnend02 0&lt;br /&gt;
File:Cai tunnstrt01 0.jpg | cai tunnstrt01 0&lt;br /&gt;
File:Cai tunnstrt02 0.jpg | cai tunnstrt02 0&lt;br /&gt;
File:Cai tunnstrt03 0.jpg | cai tunnstrt03 0&lt;br /&gt;
File:Cai tunnstrt04 0.jpg | cai tunnstrt04 0&lt;br /&gt;
File:Cai tunnt01 0.jpg | cai tunnt01 0&lt;br /&gt;
File:Cai tunslope01 0.jpg | cai tunslope01 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cav bridge.jpg | cav bridge&lt;br /&gt;
File:Cav brkhallb 0.jpg | cav brkhallb 0&lt;br /&gt;
File:Cav brknwall c 0.jpg | cav brknwall c 0&lt;br /&gt;
File:Cav caiboulder01 0.jpg | cav caiboulder01 0&lt;br /&gt;
File:Cav caiboulder02 0.jpg | cav caiboulder02 0&lt;br /&gt;
File:Cav caiboulder03 0.jpg | cav caiboulder03 0&lt;br /&gt;
File:Cav caiplatform01 0.jpg | cav caiplatform01 0&lt;br /&gt;
File:Cav caiplatform02 0.jpg | cav caiplatform02 0&lt;br /&gt;
File:Cav caiplatform03 0.jpg | cav caiplatform03 0&lt;br /&gt;
File:Cav caiplatform04 0.jpg | cav caiplatform04 0&lt;br /&gt;
File:Cav caiwall01 0.jpg | cav caiwall01 0&lt;br /&gt;
File:Cav caiwall02 0.jpg | cav caiwall02 0&lt;br /&gt;
File:Cav caiwall03 0.jpg | cav caiwall03 0&lt;br /&gt;
File:Cav caiwall04 0.jpg | cav caiwall04 0&lt;br /&gt;
File:Cav caiwall05 0.jpg | cav caiwall05 0&lt;br /&gt;
File:Cav caiwall06 0.jpg | cav caiwall06 0&lt;br /&gt;
File:Cav caverocks01 0.jpg | cav caverocks01 0&lt;br /&gt;
File:Cav caverocks02 0.jpg | cav caverocks02 0&lt;br /&gt;
File:Cav caverocks03 0.jpg | cav caverocks03 0&lt;br /&gt;
File:Cav caverocks04 0.jpg | cav caverocks04 0&lt;br /&gt;
File:Cav cliffa.jpg | cav cliffa&lt;br /&gt;
File:Cav cliffb.jpg | cav cliffb&lt;br /&gt;
File:Cav cliffc.jpg | cav cliffc&lt;br /&gt;
File:Cav cliffe.jpg | cav cliffe&lt;br /&gt;
File:Cav cliffh.jpg | cav cliffh&lt;br /&gt;
File:Cav cliffk.jpg | cav cliffk&lt;br /&gt;
File:Cav dwhole01.jpg | cav dwhole01&lt;br /&gt;
File:Cav floor01.jpg | cav floor01&lt;br /&gt;
File:Cav floor02.jpg | cav floor02&lt;br /&gt;
File:Cav floor03.jpg | cav floor03&lt;br /&gt;
File:Cav floor04.jpg | cav floor04&lt;br /&gt;
File:Cav hallplug01.jpg | cav hallplug01&lt;br /&gt;
File:Cav lrgcrna.jpg | cav lrgcrna&lt;br /&gt;
File:Cav lrgcrnb.jpg | cav lrgcrnb&lt;br /&gt;
File:Cav lrgdoor.jpg | cav lrgdoor&lt;br /&gt;
File:Cav lrgdoor02.jpg | cav lrgdoor02&lt;br /&gt;
File:Cav lrgdoor03.jpg | cav lrgdoor03&lt;br /&gt;
File:Cav lrgfloor.jpg | cav lrgfloor&lt;br /&gt;
File:Cav lrgwalla.jpg | cav lrgwalla&lt;br /&gt;
File:Cav pillar.jpg | cav pillar&lt;br /&gt;
File:Cav rock01.jpg | cav rock01&lt;br /&gt;
File:Cav rockfloor01 0.jpg | cav rockfloor01 0&lt;br /&gt;
File:Cav rockfloor02 0.jpg | cav rockfloor02 0&lt;br /&gt;
File:Cav rockfloor03 0.jpg | cav rockfloor03 0&lt;br /&gt;
File:Cav rockwall01 0.jpg | cav rockwall01 0&lt;br /&gt;
File:Cav rockwall02 0.jpg | cav rockwall02 0&lt;br /&gt;
File:Cav rockwall03 0.jpg | cav rockwall03 0&lt;br /&gt;
File:Cav rockwall08 0.jpg | cav rockwall08 0&lt;br /&gt;
File:Cav rockwall09 0.jpg | cav rockwall09 0&lt;br /&gt;
File:Cav rockwall10 0.jpg | cav rockwall10 0&lt;br /&gt;
File:Cav roof.jpg | cav roof&lt;br /&gt;
File:Cav stalactite01 0.jpg | cav stalactite01 0&lt;br /&gt;
File:Cav stalactite02 0.jpg | cav stalactite02 0&lt;br /&gt;
File:Cav stalactite04 0.jpg | cav stalactite04 0&lt;br /&gt;
File:Cav stalactite05 0.jpg | cav stalactite05 0&lt;br /&gt;
File:Cav stalagmite01 0.jpg | cav stalagmite01 0&lt;br /&gt;
File:Cav stalagmite05 0.jpg | cav stalagmite05 0&lt;br /&gt;
File:Cav stalagmite06 0.jpg | cav stalagmite06 0&lt;br /&gt;
File:Cav stalagpillar05 0.jpg | cav stalagpillar05 0&lt;br /&gt;
File:Cav todwi.jpg | cav todwi&lt;br /&gt;
File:Cav tuncurve01.jpg | cav tuncurve01&lt;br /&gt;
File:Cav tuncurve02.jpg | cav tuncurve02&lt;br /&gt;
File:Cav tunend.jpg | cav tunend&lt;br /&gt;
File:Cav tunend02.jpg | cav tunend02&lt;br /&gt;
File:Cav tunfour.jpg | cav tunfour&lt;br /&gt;
File:Cav tunslope01.jpg | cav tunslope01&lt;br /&gt;
File:Cav tunslope02.jpg | cav tunslope02&lt;br /&gt;
File:Cav tunslope03.jpg | cav tunslope03&lt;br /&gt;
File:Cav tunstr01.jpg | cav tunstr01&lt;br /&gt;
File:Cav tunstr02.jpg | cav tunstr02&lt;br /&gt;
File:Cav tuntee.jpg | cav tuntee&lt;br /&gt;
File:Cav tunwhite.jpg | cav tunwhite&lt;br /&gt;
File:Cav wallhole c 0.jpg | cav wallhole c 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cave Deep Road ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cdr dwi deepr brkn 0.jpg|cdr dwi deepr brkn 0&lt;br /&gt;
File:Cdr dwi deepr cave1 0.jpg|cdr dwi deepr cave1 0&lt;br /&gt;
File:Cdr dwi deepr cave2 0.jpg|cdr dwi deepr cave2 0&lt;br /&gt;
File:Cdr dwi deepr cent 0.jpg|cdr dwi deepr cent 0&lt;br /&gt;
File:Cdr dwi deepr cntr 0.jpg|cdr dwi deepr cntr 0&lt;br /&gt;
File:Cdr dwi deepr crn 0.jpg|cdr dwi deepr crn 0&lt;br /&gt;
File:Cdr dwi deepr door 0.jpg|cdr dwi deepr door 0&lt;br /&gt;
File:Cdr dwi deepr exit 0.jpg|dr dwi deepr exit 0&lt;br /&gt;
File:Cdr dwi deepr guls 0.jpg|dr dwi deepr guls 0&lt;br /&gt;
File:Cdr dwi deepr tsec 0.jpg|dr dwi deepr tsec 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Chantry Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Che chapllar01 0.jpg|che chapllar01 0&lt;br /&gt;
File:Che chapllar02 0.jpg|che chapllar02 0&lt;br /&gt;
File:Che largebase 0.jpg|che largebase 0&lt;br /&gt;
File:Che largeglass 0.jpg|che largeglass 0&lt;br /&gt;
File:Che largetop 0.jpg|che largetop 0&lt;br /&gt;
File:Che smallbase 0.jpg|che smallbase 0&lt;br /&gt;
File:Che smallglass 0.jpg|che smallglass 0&lt;br /&gt;
File:Che smalltop 0.jpg|che smalltop 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Chantry Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Chi chaarch.jpg | Chi chaarch&lt;br /&gt;
File:Chi chaarch01.jpg | Chi chaarch01&lt;br /&gt;
File:Chi chaarea 0.jpg | Chi chaarea 0&lt;br /&gt;
File:Chi chaarea 1.jpg | Chi chaarea 1&lt;br /&gt;
File:Chi chaarea 2.jpg | Chi chaarea 2&lt;br /&gt;
File:Chi chaarea 3.jpg | Chi chaarea 3&lt;br /&gt;
File:Chi chaceiling01.jpg | Chi chaceiling01&lt;br /&gt;
File:Chi chaceiling02.jpg | Chi chaceiling02&lt;br /&gt;
File:Chi chadesign01.jpg | Chi chadesign01&lt;br /&gt;
File:Chi chadesign01a.jpg | Chi chadesign01a&lt;br /&gt;
File:Chi chadesign02.jpg | Chi chadesign02&lt;br /&gt;
File:Chi chadesign03.jpg | Chi chadesign03&lt;br /&gt;
File:Chi chadesign04.jpg | Chi chadesign04&lt;br /&gt;
File:Chi chafloor01.jpg | Chi chafloor01&lt;br /&gt;
File:Chi chafloor03.jpg | Chi chafloor03&lt;br /&gt;
File:Chi chapillar01.jpg | Chi chapillar01&lt;br /&gt;
File:Chi chapillar03.jpg | Chi chapillar03&lt;br /&gt;
File:Chi chapillar04.jpg | Chi chapillar04&lt;br /&gt;
File:Chi chapltfrm.jpg | Chi chapltfrm&lt;br /&gt;
File:Chi chapltfrm 0.jpg | Chi chapltfrm 0&lt;br /&gt;
File:Chi chascafold.jpg | Chi chascafold&lt;br /&gt;
File:Chi chascafold02.jpg | Chi chascafold02&lt;br /&gt;
File:Chi chasun.jpg | Chi chasun&lt;br /&gt;
File:Chi chawall01.jpg | Chi chawall01&lt;br /&gt;
File:Chi chawall01a.jpg | Chi chawall01a&lt;br /&gt;
File:Chi chawall02.jpg | Chi chawall02&lt;br /&gt;
File:Chi chawall02a.jpg | Chi chawall02a&lt;br /&gt;
File:Chi chawall03.jpg | Chi chawall03&lt;br /&gt;
File:Chi chawall03a.jpg | Chi chawall03a&lt;br /&gt;
File:Chi chawall04.jpg | Chi chawall04&lt;br /&gt;
File:Chi chawall06.jpg | Chi chawall06&lt;br /&gt;
File:Chi chawall07.jpg | Chi chawall07&lt;br /&gt;
File:Chi chawall08.jpg | Chi chawall08&lt;br /&gt;
File:Chi chawall08a.jpg | Chi chawall08a&lt;br /&gt;
File:Chi chawall09.jpg | Chi chawall09&lt;br /&gt;
File:Chi chawall10.jpg | Chi chawall10&lt;br /&gt;
File:Chi chawall11.jpg | Chi chawall11&lt;br /&gt;
File:Chi chawin01.jpg | Chi chawin01&lt;br /&gt;
File:Chi chawindow.jpg | Chi chawindow&lt;br /&gt;
File:Chi smblkwalla.jpg | Chi smblkwalla&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dwarf Slum Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dse home01 0.jpg   |Dse home01 0&lt;br /&gt;
File:Dse home02 0.jpg   |Dse home02 0&lt;br /&gt;
File:Dse home03 0.jpg   |Dse home03 0&lt;br /&gt;
File:Dse home04 0.jpg   |Dse home04 0&lt;br /&gt;
File:Dse home05 0.jpg   |Dse home05 0&lt;br /&gt;
File:Dse home06 0.jpg   |Dse home06 0&lt;br /&gt;
File:Dse home07 0.jpg   |Dse home07 0&lt;br /&gt;
File:Dse home08 0.jpg   |Dse home08 0&lt;br /&gt;
File:Dse pillar01 0.jpg |Dse pillar01 0&lt;br /&gt;
File:Dse pillar02 0.jpg |Dse pillar02 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dwarf Slum Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dsi dtroom cnri01.jpg     |  dsi dtroom cnri01&lt;br /&gt;
File:Dsi dtroom cnro01.jpg     |  dsi dtroom cnro01&lt;br /&gt;
File:Dsi dtroom door01.jpg     |  dsi dtroom door01&lt;br /&gt;
File:Dsi dtroom door02.jpg     |  dsi dtroom door02&lt;br /&gt;
File:Dsi dtroom flor01.jpg     |  dsi dtroom flor01&lt;br /&gt;
File:Dsi dtroom halel02.jpg    |  dsi dtroom halel02&lt;br /&gt;
File:Dsi dtroom haler02.jpg    |  dsi dtroom haler02&lt;br /&gt;
File:Dsi dtroom strt01.jpg     |  dsi dtroom strt01&lt;br /&gt;
File:Dsi slumroof 01.jpg       |  dsi slumroof 01&lt;br /&gt;
File:Dsi slumroof 02.jpg       |  dsi slumroof 02&lt;br /&gt;
File:Dsi slumroom cnri01.jpg   |  dsi slumroom cnri01&lt;br /&gt;
File:Dsi slumroom cnro01.jpg   |  dsi slumroom cnro01&lt;br /&gt;
File:Dsi slumroom door01.jpg   |  dsi slumroom door01&lt;br /&gt;
File:Dsi slumroom door02.jpg   |  dsi slumroom door02&lt;br /&gt;
File:Dsi slumroom flor01.jpg   |  dsi slumroom flor01&lt;br /&gt;
File:Dsi slumroom flor02.jpg   |  dsi slumroom flor02&lt;br /&gt;
File:Dsi slumroom hal301.jpg   |  dsi slumroom hal301&lt;br /&gt;
File:Dsi slumroom hal401.jpg   |  dsi slumroom hal401&lt;br /&gt;
File:Dsi slumroom halb01.jpg   |  dsi slumroom halb01&lt;br /&gt;
File:Dsi slumroom hale01.jpg   |  dsi slumroom hale01&lt;br /&gt;
File:Dsi slumroom halel01.jpg  |  dsi slumroom halel01&lt;br /&gt;
File:Dsi slumroom halel02.jpg  |  dsi slumroom halel02&lt;br /&gt;
File:Dsi slumroom haler01.jpg  |  dsi slumroom haler01&lt;br /&gt;
File:Dsi slumroom haler02.jpg  |  dsi slumroom haler02&lt;br /&gt;
File:Dsi slumroom halr 0.jpg   |  dsi slumroom halr 0&lt;br /&gt;
File:Dsi slumroom hals01.jpg   |  dsi slumroom hals01&lt;br /&gt;
File:Dsi slumroom stair01.jpg  |  dsi slumroom stair01&lt;br /&gt;
File:Dsi slumroom stair02.jpg  |  dsi slumroom stair02&lt;br /&gt;
File:Dsi slumroom stair03.jpg  |  dsi slumroom stair03&lt;br /&gt;
File:Dsi slumroom stair04.jpg  |  dsi slumroom stair04&lt;br /&gt;
File:Dsi slumroom strt01.jpg   |  dsi slumroom strt01&lt;br /&gt;
File:Dsi slumroom strt02.jpg   |  dsi slumroom strt02&lt;br /&gt;
File:Dsi slumroom tomb01.jpg   |  dsi slumroom tomb01&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Castle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fca arch01 0.jpg | fca arch01 0&lt;br /&gt;
File:Fca arch02 0.jpg | fca arch02 0&lt;br /&gt;
File:Fca arch03 0.jpg | fca arch03 0&lt;br /&gt;
File:Fca archfade01 0.jpg | fca archfade01 0&lt;br /&gt;
File:Fca archfade02 0.jpg | fca archfade02 0&lt;br /&gt;
File:Fca balcony01 0.jpg | fca balcony01 0&lt;br /&gt;
File:Fca balcony02 0.jpg | fca balcony02 0&lt;br /&gt;
File:Fca balcony03 0.jpg | fca balcony03 0&lt;br /&gt;
File:Fca balcony04 0.jpg | fca balcony04 0&lt;br /&gt;
File:Fca c redbridge 0.jpg | fca c redbridge 0&lt;br /&gt;
File:Fca c redbridge 1.jpg | fca c redbridge 1&lt;br /&gt;
File:Fca c redcastle 1.jpg | fca c redcastle 1&lt;br /&gt;
File:Fca ceiling01 0.jpg | fca ceiling01 0&lt;br /&gt;
File:Fca ceiling02 0.jpg | fca ceiling02 0&lt;br /&gt;
File:Fca ceiling03 0.jpg | fca ceiling03 0&lt;br /&gt;
File:Fca ceiling04 0.jpg | fca ceiling04 0&lt;br /&gt;
File:Fca ceiling05 0.jpg | fca ceiling05 0&lt;br /&gt;
File:Fca chimney 0.jpg | fca chimney 0&lt;br /&gt;
File:Fca corr01 0.jpg | fca corr01 0&lt;br /&gt;
File:Fca corr02 0.jpg | fca corr02 0&lt;br /&gt;
File:Fca corr03 0.jpg | fca corr03 0&lt;br /&gt;
File:Fca corr04 0.jpg | fca corr04 0&lt;br /&gt;
File:Fca corr05 0.jpg | fca corr05 0&lt;br /&gt;
File:Fca corr06 0.jpg | fca corr06 0&lt;br /&gt;
File:Fca corr07 0.jpg | fca corr07 0&lt;br /&gt;
File:Fca corr08 0.jpg | fca corr08 0&lt;br /&gt;
File:Fca corrdr01 0.jpg | fca corrdr01 0&lt;br /&gt;
File:Fca corrdr02 0.jpg | fca corrdr02 0&lt;br /&gt;
File:Fca corrtop01 0.jpg | fca corrtop01 0&lt;br /&gt;
File:Fca corrtop02 0.jpg | fca corrtop02 0&lt;br /&gt;
File:Fca corrtop03 0.jpg | fca corrtop03 0&lt;br /&gt;
File:Fca corrtop04 0.jpg | fca corrtop04 0&lt;br /&gt;
File:Fca corrtop05 0.jpg | fca corrtop05 0&lt;br /&gt;
File:Fca corrtop06 0.jpg | fca corrtop06 0&lt;br /&gt;
File:Fca corrtop07 0.jpg | fca corrtop07 0&lt;br /&gt;
File:Fca corrtop08 0.jpg | fca corrtop08 0&lt;br /&gt;
File:Fca corrtop09 0.jpg | fca corrtop09 0&lt;br /&gt;
File:Fca corrtop10 0.jpg | fca corrtop10 0&lt;br /&gt;
File:Fca corrtop11 0.jpg | fca corrtop11 0&lt;br /&gt;
File:Fca corrtop12 0.jpg | fca corrtop12 0&lt;br /&gt;
File:Fca corrwall01 0.jpg | fca corrwall01 0&lt;br /&gt;
File:Fca corrwall02 0.jpg | fca corrwall02 0&lt;br /&gt;
File:Fca corrwall03 0.jpg | fca corrwall03 0&lt;br /&gt;
File:Fca corrwall04 0.jpg | fca corrwall04 0&lt;br /&gt;
File:Fca door01 0.jpg | fca door01 0&lt;br /&gt;
File:Fca door02 0.jpg | fca door02 0&lt;br /&gt;
File:Fca door03 0.jpg | fca door03 0&lt;br /&gt;
File:Fca door04 0.jpg | fca door04 0&lt;br /&gt;
File:Fca door05 0.jpg | fca door05 0&lt;br /&gt;
File:Fca floor01 0.jpg | fca floor01 0&lt;br /&gt;
File:Fca floor02 0.jpg | fca floor02 0&lt;br /&gt;
File:Fca keystone01 0.jpg | fca keystone01 0&lt;br /&gt;
File:Fca lrgwall01 0.jpg | fca lrgwall01 0&lt;br /&gt;
File:Fca lrgwall02 0.jpg | fca lrgwall02 0&lt;br /&gt;
File:Fca lrgwall03 0.jpg | fca lrgwall03 0&lt;br /&gt;
File:Fca lrgwall04 0.jpg | fca lrgwall04 0&lt;br /&gt;
File:Fca lrgwall05 0.jpg | fca lrgwall05 0&lt;br /&gt;
File:Fca lrgwall06 0.jpg | fca lrgwall06 0&lt;br /&gt;
File:Fca lrgwall07 0.jpg | fca lrgwall07 0&lt;br /&gt;
File:Fca lrgwall08 0.jpg | fca lrgwall08 0&lt;br /&gt;
File:Fca outwall01 0.jpg | fca outwall01 0&lt;br /&gt;
File:Fca outwall02 0.jpg | fca outwall02 0&lt;br /&gt;
File:Fca pillar01 0.jpg | fca pillar01 0&lt;br /&gt;
File:Fca pillar02 0.jpg | fca pillar02 0&lt;br /&gt;
File:Fca pillar03 0.jpg | fca pillar03 0&lt;br /&gt;
File:Fca pillar04 0.jpg | fca pillar04 0&lt;br /&gt;
File:Fca pillar05 0.jpg | fca pillar05 0&lt;br /&gt;
File:Fca pillar06 0.jpg | fca pillar06 0&lt;br /&gt;
File:Fca stand 0.jpg | fca stand 0&lt;br /&gt;
File:Fca tower01 0.jpg | fca tower01 0&lt;br /&gt;
File:Fca wall01 0.jpg | fca wall01 0&lt;br /&gt;
File:Fca wall02 0.jpg | fca wall02 0&lt;br /&gt;
File:Fca wall03 0.jpg | fca wall03 0&lt;br /&gt;
File:Fca wall04 0.jpg | fca wall04 0&lt;br /&gt;
File:Fca wallplug01 0.jpg | fca wallplug01 0&lt;br /&gt;
File:Fca wallplug02 0.jpg | fca wallplug02 0&lt;br /&gt;
File:Fca wallplug03 0.jpg | fca wallplug03 0&lt;br /&gt;
File:Fca wallplug04 0.jpg | fca wallplug04 0&lt;br /&gt;
File:Fca wallplug05 0.jpg | fca wallplug05 0&lt;br /&gt;
File:Fca wdbeam01 0.jpg | fca wdbeam01 0&lt;br /&gt;
File:Fca wdbeam02 0.jpg | fca wdbeam02 0&lt;br /&gt;
File:Fca wdbeam03 0.jpg | fca wdbeam03 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Castle Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fce estwall 05 0.jpg|fce estwall 05 0&lt;br /&gt;
File:Fce estwall 05 1.jpg|fce estwall 05 1&lt;br /&gt;
File:Fce pubsgn01 0.jpg|fce pubsgn01 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Castle Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fci archf 01.jpg        |  fci archf 01&lt;br /&gt;
File:Fci bwall 02.jpg        |  fci bwall 02&lt;br /&gt;
File:Fci bwall 05.jpg        |  fci bwall 05&lt;br /&gt;
File:Fci castarch 01.jpg     |  fci castarch 01&lt;br /&gt;
File:Fci castarch 02.jpg     |  fci castarch 02&lt;br /&gt;
File:Fci castarch 05.jpg     |  fci castarch 05&lt;br /&gt;
File:Fci castctop door01.jpg |  fci castctop door01&lt;br /&gt;
File:Fci ceila 05.jpg        |  fci ceila 05&lt;br /&gt;
File:Fci ceila 14.jpg        |  fci ceila 14&lt;br /&gt;
File:Fci ceila 15.jpg        |  fci ceila 15&lt;br /&gt;
File:Fci ceila 16.jpg        |  fci ceila 16&lt;br /&gt;
File:Fci ceila 24.jpg        |  fci ceila 24&lt;br /&gt;
File:Fci ceila 34.jpg        |  fci ceila 34&lt;br /&gt;
File:Fci floor 01.jpg        |  fci floor 01&lt;br /&gt;
File:Fci floor 04.jpg        |  fci floor 04&lt;br /&gt;
File:Fci part 02.jpg         |  fci part 02&lt;br /&gt;
File:Fci part 06.jpg         |  fci part 06&lt;br /&gt;
File:Fci part 08.jpg         |  fci part 08&lt;br /&gt;
File:Fci pil 01.jpg          |  fci pil 01&lt;br /&gt;
File:Fci pil 05.jpg          |  fci pil 05&lt;br /&gt;
File:Fci roof 02.jpg         |  fci roof 02&lt;br /&gt;
File:Fci roof 04.jpg         |  fci roof 04&lt;br /&gt;
File:Fci roof 06.jpg         |  fci roof 06&lt;br /&gt;
File:Fci rubble 01.jpg       |  fci rubble 01&lt;br /&gt;
File:Fci rubble 02.jpg       |  fci rubble 02&lt;br /&gt;
File:Fci tower 01.jpg        |  fci tower 01&lt;br /&gt;
File:Fci wall 01.jpg         |  fci wall 01&lt;br /&gt;
File:Fci wall 02.jpg         |  fci wall 02&lt;br /&gt;
File:Fci wall 04.jpg         |  fci wall 04&lt;br /&gt;
File:Fci wall 05.jpg         |  fci wall 05&lt;br /&gt;
File:Fci wall 07.jpg         |  fci wall 07&lt;br /&gt;
File:Fci wall 10.jpg         |  fci wall 10&lt;br /&gt;
File:Fci wall 12.jpg         |  fci wall 12&lt;br /&gt;
File:Fci wall 14.jpg         |  fci wall 14&lt;br /&gt;
File:Fci wall 15.jpg         |  fci wall 15&lt;br /&gt;
File:Fci wall 16.jpg         |  fci wall 16&lt;br /&gt;
File:Fci wall 24.jpg         |  fci wall 24&lt;br /&gt;
File:Fci wall 30.jpg         |  fci wall 30&lt;br /&gt;
File:Fci wall 34.jpg         |  fci wall 34&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Frt main 0.jpg|frt main 0&lt;br /&gt;
File:Frt main plc 0.jpg|frt main plc 0&lt;br /&gt;
File:Frt main rest 0.jpg|frt main rest 0&lt;br /&gt;
File:Frt main wall 0.jpg|frt main wall 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Dungeon Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fdi dun3wy 0.jpg       | fdi dun3wy 0&lt;br /&gt;
File:Fdi dun4pillars 0.jpg  | fdi dun4pillars 0&lt;br /&gt;
File:Fdi dun4wy 0.jpg       | fdi dun4wy 0&lt;br /&gt;
File:Fdi dun90deg 0.jpg     | fdi dun90deg 0&lt;br /&gt;
File:Fdi dunbars 0.jpg      | fdi dunbars 0&lt;br /&gt;
File:Fdi duncell 0.jpg      | fdi duncell 0&lt;br /&gt;
File:Fdi duncorn 01 0.jpg   | fdi duncorn 01 0&lt;br /&gt;
File:Fdi dundoor 01 0.jpg   | fdi dundoor 01 0&lt;br /&gt;
File:Fdi dundoor 02 0.jpg   | fdi dundoor 02 0&lt;br /&gt;
File:Fdi dunend 0.jpg       | fdi dunend 0&lt;br /&gt;
File:Fdi dunfloor01 0.jpg   | fdi dunfloor01 0&lt;br /&gt;
File:Fdi dungate 0.jpg      | fdi dungate 0&lt;br /&gt;
File:Fdi dunnarr 01 0.jpg   | fdi dunnarr 01 0&lt;br /&gt;
File:Fdi dunnarr 02 0.jpg   | fdi dunnarr 02 0&lt;br /&gt;
File:Fdi dunrock01 0.jpg    | fdi dunrock01 0&lt;br /&gt;
File:Fdi dunrock02 0.jpg    | fdi dunrock02 0&lt;br /&gt;
File:Fdi dunrock03 0.jpg    | fdi dunrock03 0&lt;br /&gt;
File:Fdi dunrock04 0.jpg    | fdi dunrock04 0&lt;br /&gt;
File:Fdi dunroof01 0.jpg    | fdi dunroof01 0&lt;br /&gt;
File:Fdi dunroof02 0.jpg    | fdi dunroof02 0&lt;br /&gt;
File:Fdi dunstair01 0.jpg   | fdi dunstair01 0&lt;br /&gt;
File:Fdi dunstair02 0.jpg   | fdi dunstair02 0&lt;br /&gt;
File:Fdi dunstrait 0.jpg    | fdi dunstrait 0&lt;br /&gt;
File:Fdi dunwall01 0.jpg    | fdi dunwall01 0&lt;br /&gt;
File:Fdi dunwall02 0.jpg    | fdi dunwall02 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Human Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fhe balccrna 0.jpg      | fhe balccrna 0&lt;br /&gt;
File:Fhe balccrnb 0.jpg      | fhe balccrnb 0&lt;br /&gt;
File:Fhe balcmid 0.jpg       | fhe balcmid 0&lt;br /&gt;
File:Fhe barnscaffa 0.jpg    | fhe barnscaffa 0&lt;br /&gt;
File:Fhe barnscaffb 0.jpg    | fhe barnscaffb 0&lt;br /&gt;
File:Fhe bridgebase 0.jpg    | fhe bridgebase 0&lt;br /&gt;
File:Fhe bridgestn 0.jpg     | fhe bridgestn 0&lt;br /&gt;
File:Fhe canopy01 0.jpg      | fhe canopy01 0&lt;br /&gt;
File:Fhe canopy02 0.jpg      | fhe canopy02 0&lt;br /&gt;
File:Fhe cantlvr 0.jpg       | fhe cantlvr 0&lt;br /&gt;
File:Fhe chandrs 0.jpg       | fhe chandrs 0&lt;br /&gt;
File:Fhe chim 0.jpg          | fhe chim 0&lt;br /&gt;
File:Fhe coop 0.jpg          | fhe coop 0&lt;br /&gt;
File:Fhe cotta 0.jpg         | fhe cotta 0&lt;br /&gt;
File:Fhe cottb 0.jpg         | fhe cottb 0&lt;br /&gt;
File:Fhe cottc 0.jpg         | fhe cottc 0&lt;br /&gt;
File:Fhe cottd 0.jpg         | fhe cottd 0&lt;br /&gt;
File:Fhe cotte 0.jpg         | fhe cotte 0&lt;br /&gt;
File:Fhe decfull 0.jpg       | fhe decfull 0&lt;br /&gt;
File:Fhe dechlf 0.jpg        | fhe dechlf 0&lt;br /&gt;
File:Fhe doorfrs 0.jpg       | fhe doorfrs 0&lt;br /&gt;
File:Fhe fence01 0.jpg       | fhe fence01 0&lt;br /&gt;
File:Fhe midbev 0.jpg        | fhe midbev 0&lt;br /&gt;
File:Fhe midins 0.jpg        | fhe midins 0&lt;br /&gt;
File:Fhe midrnd 0.jpg        | fhe midrnd 0&lt;br /&gt;
File:Fhe midslant 0.jpg      | fhe midslant 0&lt;br /&gt;
File:Fhe midsm 0.jpg         | fhe midsm 0&lt;br /&gt;
File:Fhe midsq 0.jpg         | fhe midsq 0&lt;br /&gt;
File:Fhe midtall 0.jpg       | fhe midtall 0&lt;br /&gt;
File:Fhe rampplank 0.jpg     | fhe rampplank 0&lt;br /&gt;
File:Fhe rivrbnk 0.jpg       | fhe rivrbnk 0&lt;br /&gt;
File:Fhe rockb2 0.jpg        | fhe rockb2 0&lt;br /&gt;
File:Fhe roofcrn 0.jpg       | fhe roofcrn 0&lt;br /&gt;
File:Fhe roofcrnsm 0.jpg     | fhe roofcrnsm 0&lt;br /&gt;
File:Fhe roofcrntht 0.jpg    | fhe roofcrntht 0&lt;br /&gt;
File:Fhe roofpl 0.jpg        | fhe roofpl 0&lt;br /&gt;
File:Fhe roofplpk 0.jpg      | fhe roofplpk 0&lt;br /&gt;
File:Fhe roofthtpk 0.jpg     | fhe roofthtpk 0&lt;br /&gt;
File:Fhe roofwin 0.jpg       | fhe roofwin 0&lt;br /&gt;
File:Fhe rubble 0.jpg        | fhe rubble 0&lt;br /&gt;
File:Fhe scaff 0.jpg         | fhe scaff 0&lt;br /&gt;
File:Fhe shuta 0.jpg         | fhe shuta 0&lt;br /&gt;
File:Fhe shutb 0.jpg         | fhe shutb 0&lt;br /&gt;
File:Fhe slum01 0.jpg        | fhe slum01 0&lt;br /&gt;
File:Fhe slum02 0.jpg        | fhe slum02 0&lt;br /&gt;
File:Fhe slum04 0.jpg        | fhe slum04 0&lt;br /&gt;
File:Fhe slum05 0.jpg        | fhe slum05 0&lt;br /&gt;
File:Fhe stiltl 0.jpg        | fhe stiltl 0&lt;br /&gt;
File:Fhe stiltm 0.jpg        | fhe stiltm 0&lt;br /&gt;
File:Fhe stiltn 0.jpg        | fhe stiltn 0&lt;br /&gt;
File:Fhe stilts 0.jpg        | fhe stilts 0&lt;br /&gt;
File:Fhe truss 0.jpg         | fhe truss 0&lt;br /&gt;
File:Fhe walkl02 0.jpg       | fhe walkl02 0&lt;br /&gt;
File:Fhe walkl 0.jpg         | fhe walkl 0&lt;br /&gt;
File:Fhe walkm02 0.jpg       | fhe walkm02 0&lt;br /&gt;
File:Fhe walkm 0.jpg         | fhe walkm 0&lt;br /&gt;
File:Fhe wall01 0.jpg        | fhe wall01 0&lt;br /&gt;
File:Fhe wall02 0.jpg        | fhe wall02 0&lt;br /&gt;
File:Fhe wall03 0.jpg        | fhe wall03 0&lt;br /&gt;
File:Fhe walljoint 0.jpg     | fhe walljoint 0&lt;br /&gt;
File:Fhe winl 0.jpg          | fhe winl 0&lt;br /&gt;
File:Fhe wins 0.jpg          | fhe wins 0&lt;br /&gt;
File:Fhe wtrwhl 0.jpg        | fhe wtrwhl 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fhec bgcliffa 0.jpg    |fhec bgcliffa 0&lt;br /&gt;
File:Fhec bgcliffb 0.jpg    |fhec bgcliffb 0&lt;br /&gt;
File:Fhec bgcliffc 0.jpg    |fhec bgcliffc 0&lt;br /&gt;
File:Fhec redmill02 0.jpg   |fhec redmill02 0&lt;br /&gt;
File:Fhec redmill 0.jpg     |fhec redmill 0&lt;br /&gt;
File:Fhec redvilla 0.jpg    |fhec redvilla 0&lt;br /&gt;
File:Fhec redvillb 0.jpg    |fhec redvillb 0&lt;br /&gt;
File:Fhec redvillc 0.jpg    |fhec redvillc 0&lt;br /&gt;
File:Fhec redvilld 0.jpg    |fhec redvilld 0&lt;br /&gt;
File:Fhec redville 0.jpg    |fhec redville 0&lt;br /&gt;
File:Fhec redvillf 0.jpg    |fhec redvillf 0&lt;br /&gt;
File:Fhec redvillk 0.jpg    |fhec redvillk 0&lt;br /&gt;
File:Fhec redvilll 0.jpg    |fhec redvilll 0&lt;br /&gt;
File:Fhec redvillm 0.jpg    |fhec redvillm 0&lt;br /&gt;
File:Fhec tavernbody 0.jpg  |fhec tavernbody 0&lt;br /&gt;
File:Fhec tavernroof1 0.jpg |fhec tavernroof1 0&lt;br /&gt;
File:Fhec tavernroof2 0.jpg |fhec tavernroof2 0&lt;br /&gt;
File:Fhec tavernroof3 0.jpg |fhec tavernroof3 0&lt;br /&gt;
File:Fhec tavernsup 0.jpg   |fhec tavernsup 0&lt;br /&gt;
File:Fhec windmillbody 0.jpg|fhec windmillbody 0&lt;br /&gt;
File:Fhec windmilldoor 0.jpg|fhec windmilldoor 0&lt;br /&gt;
File:Fhec windmilltop 0.jpg |fhec windmilltop 0&lt;br /&gt;
File:Fhec windmillwhl 0.jpg |fhec windmillwhl 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Human Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fhi ceiling2 0.jpg           | fhi ceiling2 0&lt;br /&gt;
File:Fhi ceiling 0.jpg            | fhi ceiling 0&lt;br /&gt;
File:Fhi ceilingangle 0.jpg       | fhi ceilingangle 0&lt;br /&gt;
File:Fhi floorstone1x3a 0.jpg     | fhi floorstone1x3a 0&lt;br /&gt;
File:Fhi floorstone1x3b 0.jpg     | fhi floorstone1x3b 0&lt;br /&gt;
File:Fhi floorstone3x3 0.jpg      | fhi floorstone3x3 0&lt;br /&gt;
File:Fhi floorstone 0.jpg         | fhi floorstone 0&lt;br /&gt;
File:Fhi floorstoneedge 0.jpg     | fhi floorstoneedge 0&lt;br /&gt;
File:Fhi floorstonestrip 0.jpg    | fhi floorstonestrip 0&lt;br /&gt;
File:Fhi floorwood1x3 0.jpg       | fhi floorwood1x3 0&lt;br /&gt;
File:Fhi floorwood3x3 0.jpg       | fhi floorwood3x3 0&lt;br /&gt;
File:Fhi floorwood 0.jpg          | fhi floorwood 0&lt;br /&gt;
File:Fhi floorwoodstrip 0.jpg     | fhi floorwoodstrip 0&lt;br /&gt;
File:Fhi pillarbracket 0.jpg      | fhi pillarbracket 0&lt;br /&gt;
File:Fhi pillarstone 0.jpg        | fhi pillarstone 0&lt;br /&gt;
File:Fhi pillarwood2 0.jpg        | fhi pillarwood2 0&lt;br /&gt;
File:Fhi pillarwood3 0.jpg        | fhi pillarwood3 0&lt;br /&gt;
File:Fhi pillarwood 0.jpg         | fhi pillarwood 0&lt;br /&gt;
File:Fhi prp barleft 0.jpg        | fhi prp barleft 0&lt;br /&gt;
File:Fhi prp barright 0.jpg       | fhi prp barright 0&lt;br /&gt;
File:Fhi prp bendbox 0.jpg        | fhi prp bendbox 0&lt;br /&gt;
File:Fhi prp bendboxlg 0.jpg      | fhi prp bendboxlg 0&lt;br /&gt;
File:Fhi prp box 0.jpg            | fhi prp box 0&lt;br /&gt;
File:Fhi prp boxcandles 0.jpg     | fhi prp boxcandles 0&lt;br /&gt;
File:Fhi prp boxsm 0.jpg          | fhi prp boxsm 0&lt;br /&gt;
File:Fhi prp cabinet 0.jpg        | fhi prp cabinet 0&lt;br /&gt;
File:Fhi prp cratelid 0.jpg       | fhi prp cratelid 0&lt;br /&gt;
File:Fhi prp crateopen 0.jpg      | fhi prp crateopen 0&lt;br /&gt;
File:Fhi prp mid 0.jpg            | fhi prp mid 0&lt;br /&gt;
File:Fhi prp shelfwall l 0.jpg    | fhi prp shelfwall l 0&lt;br /&gt;
File:Fhi prp shelfwall m 0.jpg    | fhi prp shelfwall m 0&lt;br /&gt;
File:Fhi prp wheel 0.jpg          | fhi prp wheel 0&lt;br /&gt;
File:Fhi stairswood 0.jpg         | fhi stairswood 0&lt;br /&gt;
File:Fhi stiarsdown 0.jpg         | fhi stiarsdown 0&lt;br /&gt;
File:Fhi upper 0.jpg              | fhi upper 0&lt;br /&gt;
File:Fhi upperanglel 0.jpg        | fhi upperanglel 0&lt;br /&gt;
File:Fhi upperangler 0.jpg        | fhi upperangler 0&lt;br /&gt;
File:Fhi upperbeam 0.jpg          | fhi upperbeam 0&lt;br /&gt;
File:Fhi upperhalf 0.jpg          | fhi upperhalf 0&lt;br /&gt;
File:Fhi upperpillar 0.jpg        | fhi upperpillar 0&lt;br /&gt;
File:Fhi upperpillarwd 0.jpg      | fhi upperpillarwd 0&lt;br /&gt;
File:Fhi wallarchway 0.jpg        | fhi wallarchway 0&lt;br /&gt;
File:Fhi wallbasict 0.jpg         | fhi wallbasict 0&lt;br /&gt;
File:Fhi wallcornerin 0.jpg       | fhi wallcornerin 0&lt;br /&gt;
File:Fhi wallcornerout 0.jpg      | fhi wallcornerout 0&lt;br /&gt;
File:Fhi wallcrackl 0.jpg         | fhi wallcrackl 0&lt;br /&gt;
File:Fhi wallcrackr 0.jpg         | fhi wallcrackr 0&lt;br /&gt;
File:Fhi walldoor 0.jpg           | fhi walldoor 0&lt;br /&gt;
File:Fhi wallfireplace 0.jpg      | fhi wallfireplace 0&lt;br /&gt;
File:Fhi wallhalf 0.jpg           | fhi wallhalf 0&lt;br /&gt;
File:Fhi wallinset 0.jpg          | fhi wallinset 0&lt;br /&gt;
File:Fhi wallpillar 0.jpg         | fhi wallpillar 0&lt;br /&gt;
File:Fhi wallrailhalf 0.jpg       | fhi wallrailhalf 0&lt;br /&gt;
File:Fhi wallrailing 0.jpg        | fhi wallrailing 0&lt;br /&gt;
File:Fhi wallshelf 0.jpg          | fhi wallshelf 0&lt;br /&gt;
File:Fhi wallshort 0.jpg          | fhi wallshort 0&lt;br /&gt;
File:Fhi wallstone 0.jpg          | fhi wallstone 0&lt;br /&gt;
File:Fhi walluppershort 0.jpg     | fhi walluppershort 0&lt;br /&gt;
File:Fhi wallwindow 0.jpg         | fhi wallwindow 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Town Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fti balckbox 0.jpg          |  fti balckbox 0&lt;br /&gt;
File:Fti balckboxlong 0.jpg      |  fti balckboxlong 0&lt;br /&gt;
File:Fti ceilingangle 0.jpg      |  fti ceilingangle 0&lt;br /&gt;
File:Fti ceilingangles 0.jpg     |  fti ceilingangles 0&lt;br /&gt;
File:Fti ceilingpanles 0.jpg     |  fti ceilingpanles 0&lt;br /&gt;
File:Fti ceilingrustic25 0.jpg   |  fti ceilingrustic25 0&lt;br /&gt;
File:Fti ceilingrustic 0.jpg     |  fti ceilingrustic 0&lt;br /&gt;
File:Fti cwind up curve 0.jpg    |  fti cwind up curve 0&lt;br /&gt;
File:Fti cwind up flat 0.jpg     |  fti cwind up flat 0&lt;br /&gt;
File:Fti cwindmilldoor 0.jpg     |  fti cwindmilldoor 0&lt;br /&gt;
File:Fti cwindmillfloor 0.jpg    |  fti cwindmillfloor 0&lt;br /&gt;
File:Fti cwindmillfw 0.jpg       |  fti cwindmillfw 0&lt;br /&gt;
File:Fti cwindmillfwall 0.jpg    |  fti cwindmillfwall 0&lt;br /&gt;
File:Fti door 0.jpg              |  fti door 0&lt;br /&gt;
File:Fti doorrustic 0.jpg        |  fti doorrustic 0&lt;br /&gt;
File:Fti fireplace a 0.jpg       |  fti fireplace a 0&lt;br /&gt;
File:Fti fireplace b 0.jpg       |  fti fireplace b 0&lt;br /&gt;
File:Fti floorstone 0.jpg        |  fti floorstone 0&lt;br /&gt;
File:Fti floorstonestrip 0.jpg   |  fti floorstonestrip 0&lt;br /&gt;
File:Fti floortrim 0.jpg         |  fti floortrim 0&lt;br /&gt;
File:Fti floorwood2 0.jpg        |  fti floorwood2 0&lt;br /&gt;
File:Fti floorwood3 0.jpg        |  fti floorwood3 0&lt;br /&gt;
File:Fti floorwood 0.jpg         |  fti floorwood 0&lt;br /&gt;
File:Fti floorwoodsmall2 0.jpg   |  fti floorwoodsmall2 0&lt;br /&gt;
File:Fti floorwoodsmall3 0.jpg   |  fti floorwoodsmall3 0&lt;br /&gt;
File:Fti floorwoodsmall 0.jpg    |  fti floorwoodsmall 0&lt;br /&gt;
File:Fti pillarpanels 0.jpg      |  fti pillarpanels 0&lt;br /&gt;
File:Fti pillarstone 0.jpg       |  fti pillarstone 0&lt;br /&gt;
File:Fti prp barl 0.jpg          |  fti prp barl 0&lt;br /&gt;
File:Fti prp barmid 0.jpg        |  fti prp barmid 0&lt;br /&gt;
File:Fti prp barr 0.jpg          |  fti prp barr 0&lt;br /&gt;
File:Fti prp barrusticm 0.jpg    |  fti prp barrusticm 0&lt;br /&gt;
File:Fti stairswood 0.jpg        |  fti stairswood 0&lt;br /&gt;
File:Fti upper 0.jpg             |  fti upper 0&lt;br /&gt;
File:Fti upperanglel 0.jpg       |  fti upperanglel 0&lt;br /&gt;
File:Fti upperangler 0.jpg       |  fti upperangler 0&lt;br /&gt;
File:Fti upperbeam 0.jpg         |  fti upperbeam 0&lt;br /&gt;
File:Fti upperboarda 0.jpg       |  fti upperboarda 0&lt;br /&gt;
File:Fti upperboardb 0.jpg       |  fti upperboardb 0&lt;br /&gt;
File:Fti upperboardc 0.jpg       |  fti upperboardc 0&lt;br /&gt;
File:Fti upperplain 0.jpg        |  fti upperplain 0&lt;br /&gt;
File:Fti uppershort 0.jpg        |  fti uppershort 0&lt;br /&gt;
File:Fti upperwoodbeam 0.jpg     |  fti upperwoodbeam 0&lt;br /&gt;
File:Fti wall 0.jpg              |  fti wall 0&lt;br /&gt;
File:Fti wallarchrustic 0.jpg    |  fti wallarchrustic 0&lt;br /&gt;
File:Fti wallbarrel 0.jpg        |  fti wallbarrel 0&lt;br /&gt;
File:Fti wallcapa 0.jpg          |  fti wallcapa 0&lt;br /&gt;
File:Fti wallcapb 0.jpg          |  fti wallcapb 0&lt;br /&gt;
File:Fti wallhalf 0.jpg          |  fti wallhalf 0&lt;br /&gt;
File:Fti wallinset 0.jpg         |  fti wallinset 0&lt;br /&gt;
File:Fti wallpanels 0.jpg        |  fti wallpanels 0&lt;br /&gt;
File:Fti wallpanelshalf 0.jpg    |  fti wallpanelshalf 0&lt;br /&gt;
File:Fti wallrailing 0.jpg       |  fti wallrailing 0&lt;br /&gt;
File:Fti wallrailinghalf 0.jpg   |  fti wallrailinghalf 0&lt;br /&gt;
File:Fti wallrustic 0.jpg        |  fti wallrustic 0&lt;br /&gt;
File:Fti wallrustichalf 0.jpg    |  fti wallrustichalf 0&lt;br /&gt;
File:Fti wallshelfa 0.jpg        |  fti wallshelfa 0&lt;br /&gt;
File:Fti wallshelfb 0.jpg        |  fti wallshelfb 0&lt;br /&gt;
File:Fti wallstone 0.jpg         |  fti wallstone 0&lt;br /&gt;
File:Fti wallstonehalf 0.jpg     |  fti wallstonehalf 0&lt;br /&gt;
File:Fti wallwinrustic 0.jpg     |  fti wallwinrustic 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fereldan Village Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Fve roofcrn 0.jpg|fve roofcrn 0&lt;br /&gt;
File:Fve scaff 0.jpg|fve scaff 0&lt;br /&gt;
File:Fve stiltm 0.jpg|ve stiltm 0&lt;br /&gt;
File:Fve stiltn 0.jpg|fve stiltn 0&lt;br /&gt;
File:Fve stilts 0.jpg|fve stilts 0&lt;br /&gt;
File:Fve tavchim 0.jpg|fve tavchim 0&lt;br /&gt;
File:Fve windmill 0.jpg|fve windmill 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Hero&amp;quot; Sets ==&lt;br /&gt;
&lt;br /&gt;
These tiles consist of models that were custom-made for certain situations in the main campaign.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Hro anvil la01.jpg             |  hro anvil la01&lt;br /&gt;
File:Hro anvil la02.jpg             |  hro anvil la02&lt;br /&gt;
File:Hro brknwll dirt 0.jpg         |  hro brknwll dirt 0&lt;br /&gt;
File:Hro brknwll snow 0.jpg         |  hro brknwll snow 0&lt;br /&gt;
File:Hro cave anvil.jpg             |  hro cave anvil&lt;br /&gt;
File:Hro cave brdrooml.jpg          |  hro cave brdrooml&lt;br /&gt;
File:Hro deadtrencha 0.jpg          |  hro deadtrencha 0&lt;br /&gt;
File:Hro deadtrenchbr 0.jpg         |  hro deadtrenchbr 0&lt;br /&gt;
File:Hro den city1 1.jpg            |  hro den city1 1&lt;br /&gt;
File:Hro den city 1.jpg             |  hro den city 1&lt;br /&gt;
File:Hro den fdrak vst 1.jpg        |  hro den fdrak vst 1&lt;br /&gt;
File:Hro den fdrakdoor 0.jpg        |  hro den fdrakdoor 0&lt;br /&gt;
File:Hro den fdrakeag 0.jpg         |  hro den fdrakeag 0&lt;br /&gt;
File:Hro den fdrakmain 0.jpg        |  hro den fdrakmain 0&lt;br /&gt;
File:Hro den fdraktower 0.jpg       |  hro den fdraktower 0&lt;br /&gt;
File:Hro den fdrakyarddoor 0.jpg    |  hro den fdrakyarddoor 0&lt;br /&gt;
File:Hro den fortdrakon 0.jpg       |  hro den fortdrakon 0&lt;br /&gt;
File:Hro denfdrakonvtop 1.jpg       |  hro denfdrakonvtop 1&lt;br /&gt;
File:Hro dni asmblycore01.jpg       |  hro dni asmblycore01&lt;br /&gt;
File:Hro dni asmblysect01.jpg       |  hro dni asmblysect01&lt;br /&gt;
File:Hro dni asmblysect02.jpg       |  hro dni asmblysect02&lt;br /&gt;
File:Hro dni asmblysect04.jpg       |  hro dni asmblysect04&lt;br /&gt;
File:Hro dni asmblytwr01.jpg        |  hro dni asmblytwr01&lt;br /&gt;
File:Hro dni wr bdl 0.jpg           |  hro dni wr bdl 0&lt;br /&gt;
File:Hro dni wr bdr 0.jpg           |  hro dni wr bdr 0&lt;br /&gt;
File:Hro dni wr ce 0.jpg            |  hro dni wr ce 0&lt;br /&gt;
File:Hro dni wr cn 0.jpg            |  hro dni wr cn 0&lt;br /&gt;
File:Hro dni wr cnl 0.jpg           |  hro dni wr cnl 0&lt;br /&gt;
File:Hro dni wr dl 0.jpg            |  hro dni wr dl 0&lt;br /&gt;
File:Hro dni wr dr 0.jpg            |  hro dni wr dr 0&lt;br /&gt;
File:Hro dni wr fl 0.jpg            |  hro dni wr fl 0&lt;br /&gt;
File:Hro fci throne 0.jpg           |  hro fci throne 0&lt;br /&gt;
File:Hro hrt000a 0.jpg              |  hro hrt000a 0&lt;br /&gt;
File:Hro hrt000b 0.jpg              |  hro hrt000b 0&lt;br /&gt;
File:Hro hrt000c 0.jpg              |  hro hrt000c 0&lt;br /&gt;
File:Hro lak100water 0.jpg          |  hro lak100water 0&lt;br /&gt;
File:Hro lava04 0.jpg               |  hro lava04 0&lt;br /&gt;
File:Hro lava05 0.jpg               |  hro lava05 0&lt;br /&gt;
File:Hro lava06 0.jpg               |  hro lava06 0&lt;br /&gt;
File:Hro lava07 0.jpg               |  hro lava07 0&lt;br /&gt;
File:Hro lava08 0.jpg               |  hro lava08 0&lt;br /&gt;
File:Hro partypkr arch.jpg          |  hro partypkr arch&lt;br /&gt;
File:Hro partypkr floor.jpg         |  hro partypkr floor&lt;br /&gt;
File:Hro taiglava 01.jpg            |  hro taiglava 01&lt;br /&gt;
File:Hro taiglava 02.jpg            |  hro taiglava 02&lt;br /&gt;
File:Hro taiglava 03.jpg            |  hro taiglava 03&lt;br /&gt;
File:Hro taiglava 04.jpg            |  hro taiglava 04&lt;br /&gt;
File:Hro taigwater 01.jpg           |  hro taigwater 01&lt;br /&gt;
File:Hro taigwater 02.jpg           |  hro taigwater 02&lt;br /&gt;
File:Hro tci webwall 0.jpg          |  hro tci webwall 0&lt;br /&gt;
File:Hro treewalla 0.jpg            |  hro treewalla 0&lt;br /&gt;
File:Hro treewallb 0.jpg            |  hro treewallb 0&lt;br /&gt;
File:Hro tvi domepit 0.jpg          |  hro tvi domepit 0&lt;br /&gt;
File:Hro tvi webroof 0.jpg          |  hro tvi webroof 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Castle Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Tce elgstr03 0.jpg  |tce elgstr03 0&lt;br /&gt;
File:Tce kinloch 1.jpg   |tce kinloch 1&lt;br /&gt;
File:Tce rubptc 01 0.jpg |tce rubptc 01 0&lt;br /&gt;
File:Tce rubptc 01 1.jpg |tce rubptc 01 1&lt;br /&gt;
File:Tce wallsm 0.jpg    |tce wallsm 0 &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Castle Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Tci bwall 01.jpg        | tci bwall 01&lt;br /&gt;
File:Tci bwall 02.jpg        | tci bwall 02&lt;br /&gt;
File:Tci bwall 03.jpg        | tci bwall 03&lt;br /&gt;
File:Tci dirt 01.jpg         | tci dirt 01&lt;br /&gt;
File:Tci lrgstair 01.jpg     | tci lrgstair 01&lt;br /&gt;
File:Tci magestatue01 0.jpg  | tci magestatue01 0&lt;br /&gt;
File:Tci magestatue02 0.jpg  | tci magestatue02 0&lt;br /&gt;
File:Tci pil 08.jpg          | tci pil 08&lt;br /&gt;
File:Tci pil 12.jpg          | tci pil 12&lt;br /&gt;
File:Tci pil 13.jpg          | tci pil 13&lt;br /&gt;
File:Tci pil 15.jpg          | tci pil 15&lt;br /&gt;
File:Tci pil 16.jpg          | tci pil 16&lt;br /&gt;
File:Tci smdoorw 01.jpg      | tci smdoorw 01&lt;br /&gt;
File:Tci smdrfrme01 0.jpg    | tci smdrfrme01 0&lt;br /&gt;
File:Tci smroof 01.jpg       | tci smroof 01&lt;br /&gt;
File:Tci smroof 03.jpg       | tci smroof 03&lt;br /&gt;
File:Tci smstair 01.jpg      | tci smstair 01&lt;br /&gt;
File:Tci smwall 01.jpg       | tci smwall 01&lt;br /&gt;
File:Tci smwall 02.jpg       | tci smwall 02&lt;br /&gt;
File:Tci smwall 05.jpg       | tci smwall 05&lt;br /&gt;
File:Tci smwall 06.jpg       | tci smwall 06&lt;br /&gt;
File:Tci wall 01.jpg         | tci wall 01&lt;br /&gt;
File:Tci wall 03.jpg         | tci wall 03&lt;br /&gt;
File:Tci wall 21.jpg         | tci wall 21&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Fade Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Tfi doorplug 0.jpg         |  tfi doorplug 0&lt;br /&gt;
File:Tfi floorcori 0.jpg        |  tfi floorcori 0&lt;br /&gt;
File:Tfi floorcoricorn 0.jpg    |  tfi floorcoricorn 0&lt;br /&gt;
File:Tfi floorcorn 0.jpg        |  tfi floorcorn 0&lt;br /&gt;
File:Tfi flooredge 0.jpg        |  tfi flooredge 0&lt;br /&gt;
File:Tfi floorfar 0.jpg         |  tfi floorfar 0&lt;br /&gt;
File:Tfi floorinner 0.jpg       |  tfi floorinner 0&lt;br /&gt;
File:Tfi floorjunction 0.jpg    |  tfi floorjunction 0&lt;br /&gt;
File:Tfi floormid 0.jpg         |  tfi floormid 0&lt;br /&gt;
File:Tfi floorring 0.jpg        |  tfi floorring 0&lt;br /&gt;
File:Tfi floortile 0.jpg        |  tfi floortile 0&lt;br /&gt;
File:Tfi floortinter1 0.jpg     |  tfi floortinter1 0&lt;br /&gt;
File:Tfi halfpillar1 0.jpg      |  tfi halfpillar1 0&lt;br /&gt;
File:Tfi halfpillar1 01.jpg     |  tfi halfpillar1 01&lt;br /&gt;
File:Tfi halfpillar2 0.jpg      |  tfi halfpillar2 0&lt;br /&gt;
File:Tfi pillarfull1 0.jpg      |  tfi pillarfull1 0&lt;br /&gt;
File:Tfi pillarfull3 0.jpg      |  tfi pillarfull3 0&lt;br /&gt;
File:Tfi stairupinner 0.jpg     |  tfi stairupinner 0&lt;br /&gt;
File:Tfi support1 0.jpg         |  tfi support1 0&lt;br /&gt;
File:Tfi wallarchdbl 0.jpg      |  tfi wallarchdbl 0&lt;br /&gt;
File:Tfi wallblock1 0.jpg       |  tfi wallblock1 0&lt;br /&gt;
File:Tfi wallblock2 0.jpg       |  tfi wallblock2 0&lt;br /&gt;
File:Tfi wallblock 0.jpg        |  tfi wallblock 0&lt;br /&gt;
File:Tfi wallblocksm1 0.jpg     |  tfi wallblocksm1 0&lt;br /&gt;
File:Tfi wallblocksm2 0.jpg     |  tfi wallblocksm2 0&lt;br /&gt;
File:Tfi wallblocksm 0.jpg      |  tfi wallblocksm 0&lt;br /&gt;
File:Tfi wallcorridor1 0.jpg    |  tfi wallcorridor1 0&lt;br /&gt;
File:Tfi wallfar 0.jpg          |  tfi wallfar 0&lt;br /&gt;
File:Tfi wallfarhalf 0.jpg      |  tfi wallfarhalf 0&lt;br /&gt;
File:Tfi wallfull1 0.jpg        |  tfi wallfull1 0&lt;br /&gt;
File:Tfi wallfull2 0.jpg        |  tfi wallfull2 0&lt;br /&gt;
File:Tfi wallfulldoor1 0.jpg    |  tfi wallfulldoor1 0&lt;br /&gt;
File:Tfi wallfulldoor2 0.jpg    |  tfi wallfulldoor2 0&lt;br /&gt;
File:Tfi wallfulldoorb 0.jpg    |  tfi wallfulldoorb 0&lt;br /&gt;
File:Tfi wallhalf1 0.jpg        |  tfi wallhalf1 0&lt;br /&gt;
File:Tfi wallhalf2 0.jpg        |  tfi wallhalf2 0&lt;br /&gt;
File:Tfi wallhalfdoor1 0.jpg    |  tfi wallhalfdoor1 0&lt;br /&gt;
File:Tfi wallhalfdoor2 0.jpg    |  tfi wallhalfdoor2 0&lt;br /&gt;
File:Tfi wallhalfdoorb 0.jpg    |  tfi wallhalfdoorb 0&lt;br /&gt;
File:Tfi wallhigh1 0.jpg        |  tfi wallhigh1 0&lt;br /&gt;
File:Tfi wallmid1 0.jpg         |  tfi wallmid1 0&lt;br /&gt;
File:Tfi wallmid2 0.jpg         |  tfi wallmid2 0&lt;br /&gt;
File:Tfi wallmid3 0.jpg         |  tfi wallmid3 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Tower Interior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:tti doorarchl 0.jpg        |  tti doorarchl 0&lt;br /&gt;
File:tti doordblarchl1 0.jpg    |  tti doordblarchl1 0&lt;br /&gt;
File:tti doordblarchl2 0.jpg    |  tti doordblarchl2 0&lt;br /&gt;
File:tti doorplug 0.jpg         |  tti doorplug 0&lt;br /&gt;
File:tti floordais 0.jpg        |  tti floordais 0&lt;br /&gt;
File:tti floorfar 0.jpg         |  tti floorfar 0&lt;br /&gt;
File:tti floorfar d 0.jpg       |  tti floorfar d 0&lt;br /&gt;
File:tti floorhole d 0.jpg      |  tti floorhole d 0&lt;br /&gt;
File:tti floorinner 0.jpg       |  tti floorinner 0&lt;br /&gt;
File:tti floorinner d 0.jpg     |  tti floorinner d 0&lt;br /&gt;
File:tti floormid 0.jpg         |  tti floormid 0&lt;br /&gt;
File:tti floormid d 0.jpg       |  tti floormid d 0&lt;br /&gt;
File:tti floorring 0.jpg        |  tti floorring 0&lt;br /&gt;
File:tti floorring d 0.jpg      |  tti floorring d 0&lt;br /&gt;
File:tti halfpillar2 0.jpg      |  tti halfpillar2 0&lt;br /&gt;
File:tti pillarsupport 0.jpg    |  tti pillarsupport 0&lt;br /&gt;
File:tti plynthpillar 0.jpg     |  tti plynthpillar 0&lt;br /&gt;
File:tti railing 0.jpg          |  tti railing 0&lt;br /&gt;
File:tti signal 0.jpg           |  tti signal 0&lt;br /&gt;
File:tti stairdownfar 0.jpg     |  tti stairdownfar 0&lt;br /&gt;
File:tti stairdowninner 0.jpg   |  tti stairdowninner 0&lt;br /&gt;
File:tti stairdownmid 0.jpg     |  tti stairdownmid 0&lt;br /&gt;
File:tti stairup 0.jpg          |  tti stairup 0&lt;br /&gt;
File:tti stairupinner 0.jpg     |  tti stairupinner 0&lt;br /&gt;
File:tti stairupmid1 0.jpg      |  tti stairupmid1 0&lt;br /&gt;
File:tti support1 0.jpg         |  tti support1 0&lt;br /&gt;
File:tti top01 01.jpg           |  tti top01 01&lt;br /&gt;
File:tti towerstair d 0.jpg     |  tti towerstair d 0&lt;br /&gt;
File:tti towerstiar 0.jpg       |  tti towerstiar 0&lt;br /&gt;
File:tti wallarchdbl 0.jpg      |  tti wallarchdbl 0&lt;br /&gt;
File:tti wallblock 0.jpg        |  tti wallblock 0&lt;br /&gt;
File:tti wallblocksm 0.jpg      |  tti wallblocksm 0&lt;br /&gt;
File:tti wallcolumn 0.jpg       |  tti wallcolumn 0&lt;br /&gt;
File:tti wallfar 0.jpg          |  tti wallfar 0&lt;br /&gt;
File:tti wallfull1 0.jpg        |  tti wallfull1 0&lt;br /&gt;
File:tti wallfull2 0.jpg        |  tti wallfull2 0&lt;br /&gt;
File:tti wallfulldoor1 0.jpg    |  tti wallfulldoor1 0&lt;br /&gt;
File:tti wallfulldoor2 0.jpg    |  tti wallfulldoor2 0&lt;br /&gt;
File:tti wallfullhalf1 0.jpg    |  tti wallfullhalf1 0&lt;br /&gt;
File:tti wallfullhigh 0.jpg     |  tti wallfullhigh 0&lt;br /&gt;
File:tti wallhalf2 0.jpg        |  tti wallhalf2 0&lt;br /&gt;
File:tti wallhalfdoor1 0.jpg    |  tti wallhalfdoor1 0&lt;br /&gt;
File:tti wallhalfdoor2 0.jpg    |  tti wallhalfdoor2 0&lt;br /&gt;
File:tti wallhigh1 0.jpg        |  tti wallhigh1 0&lt;br /&gt;
File:tti wallhigh2 0.jpg        |  tti wallhigh2 0&lt;br /&gt;
File:tti wallhigharch1 0.jpg    |  tti wallhigharch1 0&lt;br /&gt;
File:tti wallhigharch2 0.jpg    |  tti wallhigharch2 0&lt;br /&gt;
File:tti wallpartition1 0.jpg   |  tti wallpartition1 0&lt;br /&gt;
File:tti walltall 0.jpg         |  tti walltall 0&lt;br /&gt;
File:tti walltowertop 0.jpg     |  tti walltowertop 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Exterior ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:tve b twr1 0.jpg      | tve b twr1 0&lt;br /&gt;
File:tve b twr1 1.jpg      | tve b twr1 1&lt;br /&gt;
File:tve bttr 02 0.jpg     | tve bttr 02 0&lt;br /&gt;
File:tve bttr 02 1.jpg     | tve bttr 02 1&lt;br /&gt;
File:tve elgtwr 02 0.jpg   | tve elgtwr 02 0&lt;br /&gt;
File:tve elgtwr 02 1.jpg   | tve elgtwr 02 1&lt;br /&gt;
File:tve elgtwr 02b 0.jpg  | tve elgtwr 02b 0&lt;br /&gt;
File:tve elgtwr 02b 1.jpg  | tve elgtwr 02b 1&lt;br /&gt;
File:tve elgtwr 03 0.jpg   | tve elgtwr 03 0&lt;br /&gt;
File:tve elgtwr 03 1.jpg   | tve elgtwr 03 1&lt;br /&gt;
File:tve elgtwr 04 0.jpg   | tve elgtwr 04 0&lt;br /&gt;
File:tve elgtwr 04 1.jpg   | tve elgtwr 04 1&lt;br /&gt;
File:tve elgtwr 05 0.jpg   | tve elgtwr 05 0&lt;br /&gt;
File:tve elgtwr 05 1.jpg   | tve elgtwr 05 1&lt;br /&gt;
File:tve elgtwr 06 0.jpg   | tve elgtwr 06 0&lt;br /&gt;
File:tve elgtwr 06 1.jpg   | tve elgtwr 06 1&lt;br /&gt;
File:tve lwall 01 0.jpg    | tve lwall 01 0&lt;br /&gt;
File:tve lwall 01 1.jpg    | tve lwall 01 1&lt;br /&gt;
File:tve pil 01 0.jpg      | tve pil 01 0&lt;br /&gt;
File:tve pil 01 1.jpg      | tve pil 01 1&lt;br /&gt;
File:tve pil 03 0.jpg      | tve pil 03 0&lt;br /&gt;
File:tve pil 03 1.jpg      | tve pil 03 1&lt;br /&gt;
File:tve pil 04 0.jpg      | tve pil 04 0&lt;br /&gt;
File:tve pil 04 1.jpg      | tve pil 04 1&lt;br /&gt;
File:tve pil 05 0.jpg      | tve pil 05 0&lt;br /&gt;
File:tve pil 05 1.jpg      | tve pil 05 1&lt;br /&gt;
File:tve pil 06 0.jpg      | tve pil 06 0&lt;br /&gt;
File:tve pil 06 1.jpg      | tve pil 06 1&lt;br /&gt;
File:tve pil 07 0.jpg      | tve pil 07 0&lt;br /&gt;
File:tve roof 01 0.jpg     | tve roof 01 0&lt;br /&gt;
File:tve roof 03 0.jpg     | tve roof 03 0&lt;br /&gt;
File:tve roof 04 0.jpg     | tve roof 04 0&lt;br /&gt;
File:tve sroof 01 0.jpg    | tve sroof 01 0&lt;br /&gt;
File:tve sroof 03 0.jpg    | tve sroof 03 0&lt;br /&gt;
File:tve sroof 04 0.jpg    | tve sroof 04 0&lt;br /&gt;
File:tve stair 01 0.jpg    | tve stair 01 0&lt;br /&gt;
File:tve swall 02 0.jpg    | tve swall 02 0&lt;br /&gt;
File:tve swall 03 0.jpg    | tve swall 03 0&lt;br /&gt;
File:tve swall 06 0.jpg    | tve swall 06 0&lt;br /&gt;
File:tve swall 08 0.jpg    | tve swall 08 0&lt;br /&gt;
File:tve swall 09 0.jpg    | tve swall 09 0&lt;br /&gt;
File:tve swall 10 0.jpg    | tve swall 10 0&lt;br /&gt;
File:tve wall 01 0.jpg     | tve wall 01 0&lt;br /&gt;
File:tve wall 02 0.jpg     | tve wall 02 0&lt;br /&gt;
File:tve wall 03 0.jpg     | tve wall 03 0&lt;br /&gt;
File:tve wall 04 0.jpg     | tve wall 04 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tevinter Interior ==&lt;br /&gt;
&lt;br /&gt;
[[File:tvi1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:tvi2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:tvi3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:tvi4.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:tvi5.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:tvi6.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Tevinter Road ==&lt;br /&gt;
&lt;br /&gt;
[[File:tvm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Vista Objects ==&lt;br /&gt;
&lt;br /&gt;
These objects are intended to be put far outside the walkable area of an exterior level to act as distant &amp;quot;horizon&amp;quot; objects.&lt;br /&gt;
&lt;br /&gt;
For scale, the green terrain mesh visible in each shot is a default 64m x 64m size&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Vis mtn 01 0.jpg|Vis mtn 01 0&lt;br /&gt;
File:Vst cliff 01 1.jpg|Vst cliff 01 1&lt;br /&gt;
File:Vst cliff 02 1.jpg|Vst cliff 02 1&lt;br /&gt;
File:Vst frostbacks 01 1.jpg|Vst frostbacks 01 1&lt;br /&gt;
File:Vst frostbacks 02 1.jpg|Vst frostbacks 02 1&lt;br /&gt;
File:Vst frostbacks 03 1.jpg|Vst frostbacks 03 1&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Environmental Props ==&lt;br /&gt;
&lt;br /&gt;
The following images are environmental props from the 'prp' subsection of 'models'.  Props are models that can be placed in your levels to dress them up.  They are not interactive (as in they cannot have inventory or be 'used' in any way.)  If the module maker requires items to be placed in the module that can be interacted with they must use '[[Placeable]]s' rather than 'Props'  The images below are by no means all of the props, just some of the large environmental ones.  There is a large variety of props so you are encouraged to go through the whole list of prop models to enhance the look of your level.  Also the images below are not to scale they are merely intended so that the module maker can quickly scan them to see if any of them catch his or her fancy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Prp blood05 0.jpg | prp blood05 0&lt;br /&gt;
File:Prp bloodstains 0.jpg | prp bloodstains 0&lt;br /&gt;
File:Prp boat making 0.jpg | prp boat making 0&lt;br /&gt;
File:Prp boulder01 0.jpg | prp boulder01 0&lt;br /&gt;
File:Prp boulder03b 0.jpg | prp boulder03b 0&lt;br /&gt;
File:Prp boulder05b 0.jpg | prp boulder05b 0&lt;br /&gt;
File:Prp boulder05c 0.jpg | prp boulder05c 0&lt;br /&gt;
File:Prp boulder10b 0.jpg | prp boulder10b 0&lt;br /&gt;
File:Prp bridge 0.jpg | prp bridge 0&lt;br /&gt;
File:Prp bridge 1.jpg | prp bridge 1&lt;br /&gt;
File:Prp carvtr1,3,4 0.jpg | prp carvtr1,3,4 0&lt;br /&gt;
File:Prp caverocks01to04 0.jpg | prp caverocks01to04 0&lt;br /&gt;
File:Prp cliffb 0.jpg | prp cliffb 0&lt;br /&gt;
File:Prp dalishtent01 0.jpg | prp dalishtent01 0&lt;br /&gt;
File:Prp dalishtent04 0.jpg | prp dalishtent04 0&lt;br /&gt;
File:Prp deadtree 0.jpg | prp deadtree 0&lt;br /&gt;
File:Prp dirt 0.jpg | prp dirt 0&lt;br /&gt;
File:Prp dni arch01 0.jpg | prp dni arch01 0&lt;br /&gt;
File:Prp dni archc01 0.jpg | prp dni archc01 0&lt;br /&gt;
File:Prp dni archd01 0.jpg | prp dni archd01 0&lt;br /&gt;
File:Prp dni pillar01 0.jpg | prp dni pillar01 0&lt;br /&gt;
File:Prp dni pillar02 0.jpg | prp dni pillar02 0&lt;br /&gt;
File:Prp dni plug01 0.jpg | prp dni plug01 0&lt;br /&gt;
File:Prp dni plug02 0.jpg | prp dni plug02 0&lt;br /&gt;
File:Prp dni plug03 0.jpg | prp dni plug03 0&lt;br /&gt;
File:Prp dni plug04 0.jpg | prp dni plug04 0&lt;br /&gt;
File:Prp dni support01 0.jpg | prp dni support01 0&lt;br /&gt;
File:Prp dni wall01 0.jpg | prp dni wall01 0&lt;br /&gt;
File:Prp dni wall02 0.jpg | prp dni wall02 0&lt;br /&gt;
File:Prp drkspstuf 01 0.jpg | prp drkspstuf 01 0&lt;br /&gt;
File:Prp drkspstuf 0203 0.jpg | prp drkspstuf 0203 0&lt;br /&gt;
File:Prp drkspstuf 0405 0.jpg | prp drkspstuf 0405 0&lt;br /&gt;
File:Prp drkspstuf 06 0.jpg | prp drkspstuf 06 0&lt;br /&gt;
File:Prp drkspstuf 07 0.jpg | prp drkspstuf 07 0&lt;br /&gt;
File:Prp drkspstuf 0809 0.jpg | prp drkspstuf 0809 0&lt;br /&gt;
File:Prp drkspstuf 1011 0.jpg | prp drkspstuf 1011 0&lt;br /&gt;
File:Prp dstotem 01 0.jpg | prp dstotem 01 0&lt;br /&gt;
File:Prp dstotem 02 0.jpg | prp dstotem 02 0&lt;br /&gt;
File:Prp dstotem 03 0.jpg | prp dstotem 03 0&lt;br /&gt;
File:Prp dummystraw 01 0.jpg | prp dummystraw 01 0&lt;br /&gt;
File:Prp dwcitydoor 0.jpg | prp dwcitydoor 0&lt;br /&gt;
File:Prp dwf obelisk1,2,3 0.jpg | prp dwf obelisk1,2,3 0&lt;br /&gt;
File:Prp dwiarch 01 0.jpg | prp dwiarch 01 0&lt;br /&gt;
File:Prp dwmrktdiv 0.jpg | prp dwmrktdiv 0&lt;br /&gt;
File:Prp dwmrktfr01 0.jpg | prp dwmrktfr01 0&lt;br /&gt;
File:Prp dwpaint01&amp;amp;amp;02 0.jpg | prp dwpaint01&amp;amp;amp;02 0&lt;br /&gt;
File:Prp dwrock01 0.jpg | prp dwrock01 0&lt;br /&gt;
File:Prp dwslab01&amp;amp;amp;02 0.jpg | prp dwslab01&amp;amp;amp;02 0&lt;br /&gt;
File:Prp dwstat01 0.jpg | prp dwstat01 0&lt;br /&gt;
File:Prp eagle 01 0.jpg | prp eagle 01 0&lt;br /&gt;
File:Prp eggshels01 0.jpg | prp eggshels01 0&lt;br /&gt;
File:Prp elfstatue01to04 0.jpg | prp elfstatue01to04 0&lt;br /&gt;
File:Prp fadportal01 0.jpg | prp fadportal01 0&lt;br /&gt;
File:Prp fci window 02.jpg | prp fci window 02&lt;br /&gt;
File:Prp fcihold 02.jpg | prp fcihold 02&lt;br /&gt;
File:Prp fence01 0.jpg | prp fence01 0&lt;br /&gt;
File:Prp ferldr 02 0.jpg | prp ferldr 02 0&lt;br /&gt;
File:Prp fern01to08 0.jpg | prp fern01to08 0&lt;br /&gt;
File:Prp fertrsrepile 0.jpg | prp fertrsrepile 0&lt;br /&gt;
File:Prp fie rock1 0.jpg | prp fie rock1 0&lt;br /&gt;
File:Prp fie rock1l 0.jpg | prp fie rock1l 0&lt;br /&gt;
File:Prp fie rock2 0.jpg | prp fie rock2 0&lt;br /&gt;
File:Prp fie rock2l 0.jpg | prp fie rock2l 0&lt;br /&gt;
File:Prp fie rock3 0.jpg | prp fie rock3 0&lt;br /&gt;
File:Prp fie rock3l 0.jpg | prp fie rock3l 0&lt;br /&gt;
File:Prp fie rock4 0.jpg | prp fie rock4 0&lt;br /&gt;
File:Prp fie rock5 0.jpg | prp fie rock5 0&lt;br /&gt;
File:Prp fie rock6 0.jpg | prp fie rock6 0&lt;br /&gt;
File:Prp fie rock7 0.jpg | prp fie rock7 0&lt;br /&gt;
File:Prp fie rock8 0.jpg | prp fie rock8 0&lt;br /&gt;
File:Prp fie rock9 0.jpg | prp fie rock9 0&lt;br /&gt;
File:Prp filthpile 0.jpg | prp filthpile 0&lt;br /&gt;
File:Prp fire01to03 0.jpg | prp fire01to03 0&lt;br /&gt;
File:Prp fireplace1 0.jpg | prp fireplace1 0&lt;br /&gt;
File:Prp flakes01to03 0.jpg | prp flakes01to03 0&lt;br /&gt;
File:Prp fleshpod01to11 0.jpg | prp fleshpod01to11 0&lt;br /&gt;
File:Prp flesthorn01to02 0.jpg | prp flesthorn01to02 0&lt;br /&gt;
File:Prp forge01 0.jpg | prp forge01 0&lt;br /&gt;
File:Prp forgesmall01&amp;amp;amp;02 0.jpg | prp forgesmall01&amp;amp;amp;02 0&lt;br /&gt;
File:Prp fti window 01.jpg | prp fti window 01&lt;br /&gt;
File:Prp furdoor0.jpg | prp furdoor0&lt;br /&gt;
File:Prp gmage01 0.jpg | prp gmage01 0&lt;br /&gt;
File:Prp haybale01 0.jpg | prp haybale01 0&lt;br /&gt;
File:Prp haystack01 0.jpg | prp haystack01 0&lt;br /&gt;
File:Prp hermet0 0.jpg | prp hermet0 0&lt;br /&gt;
File:Prp icicle01&amp;amp;amp;02 0.jpg | prp icicle01&amp;amp;amp;02 0&lt;br /&gt;
File:Prp icicle03&amp;amp;amp;04 0.jpg | prp icicle03&amp;amp;amp;04 0&lt;br /&gt;
File:Prp icicle05 0.jpg | prp icicle05 0&lt;br /&gt;
File:Prp icicle06&amp;amp;amp;07 0.jpg | prp icicle06&amp;amp;amp;07 0&lt;br /&gt;
File:Prp jail01to04 0.jpg | prp jail01to04 0&lt;br /&gt;
File:Prp leafpile&amp;amp;amp;02 0.jpg | prp leafpile&amp;amp;amp;02 0&lt;br /&gt;
File:Prp lgnartfact09to19 0.jpg | prp lgnartfact09to19 0&lt;br /&gt;
File:Prp lgtnking 01 0.jpg | prp lgtnking 01 0&lt;br /&gt;
File:Prp logginpile 0.jpg | prp logginpile 0&lt;br /&gt;
File:Prp longweb 01 0.jpg | prp longweb 01 0&lt;br /&gt;
File:Prp lrglogs 0.jpg | prp lrglogs 0&lt;br /&gt;
File:Prp magicrock0to04 0.jpg | prp magicrock0to04 0&lt;br /&gt;
File:Prp markettent01 0.jpg | prp markettent01 0&lt;br /&gt;
File:Prp mnstrstat2 0.jpg | prp mnstrstat2 0&lt;br /&gt;
File:Prp monsterstatue 0.jpg | prp monsterstatue 0&lt;br /&gt;
File:Prp paragon01to05 0.jpg | prp paragon01to05 0&lt;br /&gt;
File:Prp poolwater 0.jpg | prp poolwater 0&lt;br /&gt;
File:Prp portcullis01 0.jpg | prp portcullis01 0&lt;br /&gt;
File:Prp rcktopiary 01to04 0.jpg | prp rcktopiary 01to04 0&lt;br /&gt;
File:Prp reliquary 0.jpg | prp reliquary 0&lt;br /&gt;
File:Prp rockfloor01,b,c,d 0.jpg | prp rockfloor01,b,c,d 0&lt;br /&gt;
File:Prp rockfloor02,b,c 0.jpg | prp rockfloor02,b,c 0&lt;br /&gt;
File:Prp rockfloor03,b,c,d 0.jpg | prp rockfloor03,b,c,d 0&lt;br /&gt;
File:Prp rockpile 01 0.jpg | prp rockpile 01 0&lt;br /&gt;
File:Prp rockwall01,b 0.jpg | prp rockwall01,b 0&lt;br /&gt;
File:Prp rockwall02,03 0.jpg | prp rockwall02,03 0&lt;br /&gt;
File:Prp rockwall04b,04c 0.jpg | prp rockwall04b,04c 0&lt;br /&gt;
File:Prp rockwall05b,05c 0.jpg | prp rockwall05b,05c 0&lt;br /&gt;
File:Prp rockwall08c 0.jpg | prp rockwall08c 0&lt;br /&gt;
File:Prp rockwall09c,10c 0.jpg | prp rockwall09c,10c 0&lt;br /&gt;
File:Prp root01,02,03 0.jpg | prp root01,02,03 0&lt;br /&gt;
File:Prp root04,05,06 0.jpg | prp root04,05,06 0&lt;br /&gt;
File:Prp roots,b 0.jpg | prp roots,b 0&lt;br /&gt;
File:Prp rtplub01 0.jpg | prp rtplub01 0&lt;br /&gt;
File:Prp rtplub02 0.jpg | prp rtplub02 0&lt;br /&gt;
File:Prp rubble,01 0.jpg | prp rubble,01 0&lt;br /&gt;
File:Prp rubble01,02 0.jpg | prp rubble01,02 0&lt;br /&gt;
File:Prp scaffold1,2,3 0.jpg | prp scaffold1,2,3 0&lt;br /&gt;
File:Prp sctdr02frm 0.jpg | prp sctdr02frm 0&lt;br /&gt;
File:Prp shieldstatue01 0.jpg | prp shieldstatue01 0&lt;br /&gt;
File:Prp smlogs 0.jpg | prp smlogs 0&lt;br /&gt;
File:Prp smrock01to04 0.jpg | prp smrock01to04 0&lt;br /&gt;
File:Prp snow01to09 0.jpg | prp snow01to09 0&lt;br /&gt;
File:Prp snowp01to05 0.jpg | prp snowp01to05 0&lt;br /&gt;
File:Prp spiritapp 0.jpg | prp spiritapp 0&lt;br /&gt;
File:Prp spkewll 0.jpg | prp spkewll 0&lt;br /&gt;
File:Prp sprtpil 0.jpg | prp sprtpil 0&lt;br /&gt;
File:Prp stage,2 0.jpg | prp stage,2 0&lt;br /&gt;
File:Prp stagestair,2,3 0.jpg | prp stagestair,2,3 0&lt;br /&gt;
File:Prp stalactite01 0.jpg | prp stalactite01 0&lt;br /&gt;
File:Prp stalactite03 0.jpg | prp stalactite03 0&lt;br /&gt;
File:Prp stalactite04 0.jpg | prp stalactite04 0&lt;br /&gt;
File:Prp stalactite05 0.jpg | prp stalactite05 0&lt;br /&gt;
File:Prp stalagmite01to04 0.jpg | prp stalagmite01to04 0&lt;br /&gt;
File:Prp stalagmite05to08 0.jpg | prp stalagmite05to08 0&lt;br /&gt;
File:Prp stalagpillar05 0.jpg | prp stalagpillar05 0&lt;br /&gt;
File:Prp stalagrock01 0.jpg | prp stalagrock01 0&lt;br /&gt;
File:Prp stalagrock02 0.jpg | prp stalagrock02 0&lt;br /&gt;
File:Prp statandraste 0.jpg | prp statandraste 0&lt;br /&gt;
File:Prp statmstr02,04,05 0.jpg | prp statmstr02,04,05 0&lt;br /&gt;
File:Prp statuferel 01,02 0.jpg | prp statuferel 01,02 0&lt;br /&gt;
File:Prp steamv02,03 0.jpg | prp steamv02,03 0&lt;br /&gt;
File:Prp stnwell 0.jpg | prp stnwell 0&lt;br /&gt;
File:Prp stonea 0.jpg | prp stonea 0&lt;br /&gt;
File:Prp stonea,b,c,d 0.jpg | prp stonea,b,c,d 0&lt;br /&gt;
File:Prp sulpol01to04 0.jpg | prp sulpol01to04 0&lt;br /&gt;
File:Prp sulvent01to03 0.jpg | prp sulvent01to03 0&lt;br /&gt;
File:Prp tentbeserk 01 0.jpg | prp tentbeserk 01 0&lt;br /&gt;
File:Prp tentcamping 01 0.jpg | prp tentcamping 01 0&lt;br /&gt;
File:Prp tentchantry 01 0.jpg | prp tentchantry 01 0&lt;br /&gt;
File:Prp tentduncan 01 0.jpg | prp tentduncan 01 0&lt;br /&gt;
File:Prp tentking 01 0.jpg | prp tentking 01 0&lt;br /&gt;
File:Prp tentloghain 01 0.jpg | prp tentloghain 01 0&lt;br /&gt;
File:Prp tentmage 01 0.jpg | prp tentmage 01 0&lt;br /&gt;
File:Prp tentnoble 01 0.jpg | prp tentnoble 01 0&lt;br /&gt;
File:Prp tevstalrg1 01,02.jpg | prp tevstalrg1 01,02&lt;br /&gt;
File:Prp tevstau01,02,03 0.jpg | prp tevstau01,02,03 0&lt;br /&gt;
File:Prp torturewrack 0.jpg | prp torturewrack 0&lt;br /&gt;
File:Prp trashpile01 0,01.jpg | prp trashpile01 0,01&lt;br /&gt;
File:Prp treea.b.c 01 0.jpg | prp treea.b.c 01 0&lt;br /&gt;
File:Prp treeline1 0.jpg | prp treeline1 0&lt;br /&gt;
File:Prp treewall water 0.jpg | prp treewall water 0&lt;br /&gt;
File:Prp tti bsupport01 0.jpg | prp tti bsupport01 0&lt;br /&gt;
File:Prp tti bsupport02 0.jpg | prp tti bsupport02 0&lt;br /&gt;
File:Prp tti dirto 0.jpg | prp tti dirto 0&lt;br /&gt;
File:Prp tti magestat01 0.jpg | prp tti magestat01 0&lt;br /&gt;
File:Prp tti pole02 0.jpg | prp tti pole02 0&lt;br /&gt;
File:Prp tti rub08,09,11 0.jpg | prp tti rub08,09,11 0&lt;br /&gt;
File:Prp tti rubptc01 0.jpg | prp tti rubptc01 0&lt;br /&gt;
File:Prp tti twreagle02 0.jpg | prp tti twreagle02 0&lt;br /&gt;
File:Prp tti wallarchbar 0.jpg | prp tti wallarchbar 0&lt;br /&gt;
File:Prp tti windowhigh1.jpg | prp tti windowhigh1&lt;br /&gt;
File:Prp turbine 01 0.jpg | prp turbine 01 0&lt;br /&gt;
File:Prp vines 0.jpg | prp vines 0&lt;br /&gt;
File:Prp wall02b 0.jpg | prp wall02b 0&lt;br /&gt;
File:Prp wall03 0.jpg | prp wall03 0&lt;br /&gt;
File:Prp wall04 0.jpg | prp wall04 0&lt;br /&gt;
File:Prp wall04b 0.jpg | prp wall04b 0&lt;br /&gt;
File:Prp wall05 0.jpg | prp wall05 0&lt;br /&gt;
File:Prp wall05b 0.jpg | prp wall05b 0&lt;br /&gt;
File:Prp wallarchiron 0.jpg | prp wallarchiron 0&lt;br /&gt;
File:Prp wallcarv 01to04 0.jpg | prp wallcarv 01to04 0&lt;br /&gt;
File:Prp walldiv01 0.jpg | prp walldiv01 0&lt;br /&gt;
File:Prp walllyrium01 0.jpg | prp walllyrium01 0&lt;br /&gt;
File:Prp walllyrium02 0.jpg | prp walllyrium02 0&lt;br /&gt;
File:Prp walllyrium03 0.jpg | prp walllyrium03 0&lt;br /&gt;
File:Prp walllyrium04 0.jpg | prp walllyrium04 0&lt;br /&gt;
File:Prp walllyrium05 0.jpg | prp walllyrium05 0&lt;br /&gt;
File:Prp watchtower 01 0.jpg | prp watchtower 01 0&lt;br /&gt;
File:Prp wndobtmdim 01.jpg | prp wndobtmdim 01&lt;br /&gt;
File:Prp wndobtmdrk 01.jpg | prp wndobtmdrk 01&lt;br /&gt;
File:Prp wndobtmdrk 02.jpg | prp wndobtmdrk 02&lt;br /&gt;
File:Prp wndotopdim 01.jpg | prp wndotopdim 01&lt;br /&gt;
File:Prp woodbrk1 0.jpg | prp woodbrk1 0&lt;br /&gt;
File:Prp wooden buoy 0.jpg | prp wooden buoy 0&lt;br /&gt;
File:Prp woodfnc 01 0.jpg | prp woodfnc 01 0&lt;br /&gt;
File:Prp woodgt 01 0.jpg | prp woodgt 01 0&lt;br /&gt;
File:Prp woodledge 0.jpg | prp woodledge 0&lt;br /&gt;
File:Prp woodledge 02 0.jpg | prp woodledge 02 0&lt;br /&gt;
File:Prp woodlift 0.jpg | prp woodlift 0&lt;br /&gt;
File:Prp woodpil1 0.jpg | prp woodpil1 0&lt;br /&gt;
File:Prp woodplank01to03 0.jpg | prp woodplank01to03 0&lt;br /&gt;
File:Prp woodruble01 0.jpg | prp woodruble01 0&lt;br /&gt;
File:Prp wpole01,02.jpg | prp wpole01,02&lt;br /&gt;
File:Prp wreckboat 01.jpg | prp wreckboat 01&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Banners, Flags, Standards, Signs, Tapestry, Wall Hangings, Rugs, Carpets ==&lt;br /&gt;
&lt;br /&gt;
The images below are all 'Props (prp)' which are found under the 'Models' in the palette window.&lt;br /&gt;
The images are not to scale but are intended to show what the prop looks like.  Props are not interactive and are used to dress up levels.  If the module maker requires interactive items in their module level they must use 'placeables' rather than 'props'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Prp bannergry 01 0.jpg | prp bannergreen 01 0&amp;lt;br&amp;gt; prp bannerred 01 0&amp;lt;br&amp;gt; prp banneryellow 01 0&lt;br /&gt;
File:Prp bannergy 03 0.jpg | prp bannergreen 03 0&amp;lt;br&amp;gt; prp banneryellow 03 0&lt;br /&gt;
File:Prp bannerlarge 0.jpg | prp bannerlarge 0&lt;br /&gt;
File:Prp bannerry 04 0.jpg | prp bannerred 04 0&amp;lt;br&amp;gt;prp banneryellow 04 0&lt;br /&gt;
File:Prp bluecarpet 0.jpg | prp bluecarpet 0&lt;br /&gt;
File:Prp bnner02,3-0.jpg | prp bnner02,3-0&lt;br /&gt;
File:Prp bnner02b 0.jpg | prp bnner02b 0&lt;br /&gt;
File:Prp bttll stnd01,3,4 0.jpg | prp bttll stnd01,3,4 0&lt;br /&gt;
File:Prp bttll stnd05,6,7,8 0.jpg | prp bttll stnd05,6,7,8 0&lt;br /&gt;
File:Prp carpet1to2cl 0.jpg | prp carpet1to2cl 0&lt;br /&gt;
File:Prp carpet1to3b 0.jpg | prp carpet1to3b 0&lt;br /&gt;
File:Prp carpet3to4c 0.jpg | prp carpet3to4c 0&lt;br /&gt;
File:Prp carpetb,g,r l 0.jpg | prp carpetb,g,r l 0&lt;br /&gt;
File:Prp crssd swrd 1to02 0.jpg | prp crssd swrd 1to02 0&lt;br /&gt;
File:Prp curt02,05,08 0.jpg | prp curt02,05,08 0&lt;br /&gt;
File:Prp ds banner 01,02,03 0.jpg | prp ds banner 01,02,03 0&lt;br /&gt;
File:Prp dwfbanr1to6 0.jpg | prp dwfbanr1to6 0&lt;br /&gt;
File:Prp dwfrug1to5 0.jpg | prp dwfrug1to5 0&lt;br /&gt;
File:Prp dwfsign01,02 0.jpg | prp dwfsign01,02 0&lt;br /&gt;
File:Prp dwhrld01.jpg | prp dwhrld01&lt;br /&gt;
File:Prp dwpaint01,02 0.jpg | prp dwpaint01,02 0&lt;br /&gt;
File:Prp dwsign01to06 0.jpg | prp dwsign01to06 0&lt;br /&gt;
File:Prp elrug1to6 0.jpg | prp elrug1to6 0&lt;br /&gt;
File:Prp ferpaint01to04 0.jpg | prp ferpaint01to04 0&lt;br /&gt;
File:Prp flagking&amp;amp;chantry01 0.jpg | prp flagking&amp;amp;chantry01 0&lt;br /&gt;
File:Prp hbannerg,r,y 01 0.jpg | prp hbannerg,r,y 01 0&lt;br /&gt;
File:Prp painting 01 0.jpg | prp painting 01 0&lt;br /&gt;
File:Prp redcarpet 0.jpg | prp redcarpet 0&lt;br /&gt;
File:Prp roadsin1 0.jpg | prp roadsin1 0&lt;br /&gt;
File:Prp rollcarpet01to03 0.jpg | prp rollcarpet01to03 0&lt;br /&gt;
File:Prp strawmat 0.jpg | prp strawmat 0&lt;br /&gt;
File:Prp wallhang01to06 0.jpg | prp wallhang01to06 0&lt;br /&gt;
File:Prp wallhang07to09 0.jpg | prp wallhang07to09 0&lt;br /&gt;
File:Prp wallhangf01to03 0.jpg | prp wallhangf01to03 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Level layouts]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=8562</id>
		<title>3rd party extensions</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=8562"/>
				<updated>2009-12-04T22:24:09Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Third party applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List 3rd party extensions and applications here!&lt;br /&gt;
&lt;br /&gt;
== Third party applications ==&lt;br /&gt;
&lt;br /&gt;
* [http://social.bioware.com/project/218/ Tazpn's command line tools] - This packages includes an command line application for converting Dragon Age models from the native format to something that can be manipulated or used a reference for non-derivative works.&lt;br /&gt;
* [http://social.bioware.com/project/1060/ GUI for tazpn's Command Line Tools] - This is an easy-to-use program to convert Dragon Age Models utilizing tazpn's Command Line Tools &amp;amp; the Dragon Age Toolset Command Line Tools.&lt;br /&gt;
*[http://social.bioware.com/project/41/ DATool: DA model manipulator] - This is a tool for viewing, retexturing, manipulating and exporting DA models. This tool allows you to easily browse the available DA models. Planned manipulation features include the ability to resize, &amp;quot;flip&amp;quot; and export the models.&lt;br /&gt;
*[http://social.bioware.com/project/563/ DA:O Toolset Model Exporter] - Project to create a 3DSMax exporter script. Current Version: 0.5.0&lt;br /&gt;
*[http://social.bioware.com/project/755/ GDApp] - GDApp is a simple editor that natively creates or modifies Dragon Age: Origins GD2A spreadsheet files (*.gda), without the need of Excel files.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=ANI&amp;diff=8452</id>
		<title>ANI</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=ANI&amp;diff=8452"/>
				<updated>2009-12-02T04:50:31Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Example .ANI.xml File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Animation sequence: holds single animation sequence.&lt;br /&gt;
&lt;br /&gt;
== ani.xml schema ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Animation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Additive&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IgnoreScale&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Override&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;QuaternionCompressedSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Meta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;CombatRange&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;GOBAnim&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Value&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AnimationNode&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Elements&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Source&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;SourceType&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Target&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;KeyFrame&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example .ANI.xml File ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Animation Length=&amp;quot;decimal&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Attributes:&lt;br /&gt;
		Length is the length of the animation in seconds&lt;br /&gt;
		Name is the name of the animation&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes: &lt;br /&gt;
	Additive=&amp;quot;string&amp;quot; -- probably true or false&lt;br /&gt;
	IgnoreScale=&amp;quot;string&amp;quot; -- probably true or false&lt;br /&gt;
	Override=&amp;quot;string&amp;quot; -- probably true or false&lt;br /&gt;
	QuaternionCompressedSize=&amp;quot;int&amp;quot; -- size of compressed quaternion in bytes?&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- Optional Element --&amp;gt;&lt;br /&gt;
	&amp;lt;Meta&amp;gt;&lt;br /&gt;
		&amp;lt;CombatRange Value=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional Element --&amp;gt;&lt;br /&gt;
		&amp;lt;GOBAnim Value=&amp;quot;int&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Meta&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;!-- 0 or more of these, obviously having at least one would be usefull... It appears that each bone or node (not nodemeshes) gets one --&amp;gt;&lt;br /&gt;
	&amp;lt;AnimationNode Elements=&amp;quot;int&amp;quot; ExportName=&amp;quot;?string?&amp;quot; Source=&amp;quot;string&amp;quot; Target=&amp;quot;string&amp;quot; SourceType=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Element refers to the number of elements in the data type. eg: 3 for a vector, 4 for a quaternion&lt;br /&gt;
		ExportName is the name the node will take on export&lt;br /&gt;
		Source is the type of the source &lt;br /&gt;
		Target is the type of the target&lt;br /&gt;
		SourceType seems to always be &amp;quot;KeyFrame&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Notes:&lt;br /&gt;
		For the Source and Target I have seen &amp;quot;Vector&amp;quot;, &amp;quot;Quaternion&amp;quot;, &amp;quot;Float32&amp;quot; and &amp;quot;Color4&amp;quot; with Elements=&amp;quot;3&amp;quot;, Elements=&amp;quot;4&amp;quot;, &lt;br /&gt;
			Elements=&amp;quot;1&amp;quot; and Elements=&amp;quot;4&amp;quot; respectively&lt;br /&gt;
		Vector was used for position info, Quaternion for rotation info, Float32 and Color4 for vfx info like birthrate, alpha and colour&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;KeyFrame&amp;gt;&lt;br /&gt;
			data &amp;lt;!-- starts with &amp;lt;![CDATA[ followed with lines of the format &amp;quot;time ntuple&amp;quot; where time is the time in seconds of the&lt;br /&gt;
						keyframe and ntuple is the components of the source type (the 3 elements in a vector or 4 elements in a quaternion or 1 element in a float)&lt;br /&gt;
						Therefore there will be Element+1 numbers per line&lt;br /&gt;
						ends with ]]&amp;gt;&lt;br /&gt;
				 --&amp;gt;&lt;br /&gt;
		&amp;lt;/KeyFrame&amp;gt;&lt;br /&gt;
	&amp;lt;/AnimationNode&amp;gt;&lt;br /&gt;
&amp;lt;/Animation&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=ANI&amp;diff=8451</id>
		<title>ANI</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=ANI&amp;diff=8451"/>
				<updated>2009-12-02T04:48:37Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added example XML based only on provided schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Animation sequence: holds single animation sequence.&lt;br /&gt;
&lt;br /&gt;
== ani.xml schema ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Animation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Additive&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IgnoreScale&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Override&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;QuaternionCompressedSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Meta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;CombatRange&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;GOBAnim&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Value&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AnimationNode&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Elements&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Source&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;SourceType&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Target&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;KeyFrame&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;text/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example .ANI.xml File ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Animation Length=&amp;quot;decimal&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Attributes:&lt;br /&gt;
		Length is the length of the animation in seconds&lt;br /&gt;
		Name is the name of the animation&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes: &lt;br /&gt;
		Additive=&amp;quot;string&amp;quot;&lt;br /&gt;
		IgnoreScale=&amp;quot;string&amp;quot; -- probably true or false&lt;br /&gt;
		Override=&amp;quot;string&amp;quot; -- probably true or false&lt;br /&gt;
		QuaternionCompressedSize=&amp;quot;int&amp;quot; -- size of compressed quaternion?&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Element --&amp;gt;&lt;br /&gt;
	&amp;lt;Meta&amp;gt;&lt;br /&gt;
		&amp;lt;CombatRange Value=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional Element --&amp;gt;&lt;br /&gt;
		&amp;lt;GOBAnim Value=&amp;quot;int&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/Meta&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of these, obviously having at least one would be usefull... It appears that each bone or node (not nodemeshes) gets one --&amp;gt;&lt;br /&gt;
	&amp;lt;AnimationNode Elements=&amp;quot;int&amp;quot; ExportName=&amp;quot;?string?&amp;quot; Source=&amp;quot;string&amp;quot; Target=&amp;quot;string&amp;quot; SourceType=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Element refers to the number of elements in the data type. eg: 3 for a vector, 4 for a quaternion&lt;br /&gt;
		ExportName is the name the node will take on export&lt;br /&gt;
		Source is the type of the source &lt;br /&gt;
		Target is the type of the target&lt;br /&gt;
		SourceType seems to always be &amp;quot;KeyFrame&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Notes:&lt;br /&gt;
		For the Source and Target I have seen &amp;quot;Vector&amp;quot;, &amp;quot;Quaternion&amp;quot;, &amp;quot;Float32&amp;quot; and &amp;quot;Color4&amp;quot; with Elements=&amp;quot;3&amp;quot;, Elements=&amp;quot;4&amp;quot;, &lt;br /&gt;
			Elements=&amp;quot;1&amp;quot; and Elements=&amp;quot;4&amp;quot; respectively&lt;br /&gt;
		Vector was used for position info, Quaternion for rotation info, Float32 and Color4 for vfx info like birthrate, alpha and colour&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;KeyFrame&amp;gt;&lt;br /&gt;
			data &amp;lt;!-- starts with &amp;lt;![CDATA[ followed with lines of the format &amp;quot;time ntuple&amp;quot; where time is the time in seconds of the&lt;br /&gt;
						keyframe and ntuple is the components of the source type (the 3 elements in a vector or 4 elements in a quaternion or 1 element in a float)&lt;br /&gt;
						Therefore there will be Element+1 numbers per line&lt;br /&gt;
				 --&amp;gt;&lt;br /&gt;
		&amp;lt;/KeyFrame&amp;gt;&lt;br /&gt;
	&amp;lt;/AnimationNode&amp;gt;&lt;br /&gt;
&amp;lt;/Animation&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=8306</id>
		<title>3rd party extensions</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=3rd_party_extensions&amp;diff=8306"/>
				<updated>2009-11-27T06:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Third party applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List 3rd party extensions and applications here!&lt;br /&gt;
&lt;br /&gt;
== Third party applications ==&lt;br /&gt;
&lt;br /&gt;
* [http://social.bioware.com/project/218/ Tazpn's command line tools] - This packages includes an command line application for converting Dragon Age models from the native format to something that can be manipulated or used a reference for non-derivative works.&lt;br /&gt;
*[http://social.bioware.com/project/41/ DATool: DA model manipulator] - This is a tool for viewing, retexturing, manipulating and exporting DA models. This tool allows you to easily browse the available DA models. Planned manipulation features include the ability to resize, &amp;quot;flip&amp;quot; and export the models.&lt;br /&gt;
*[http://social.bioware.com/project/563/ DA:O Toolset Model Exporter] - Project to create a 3DSMax exporter script. Current Version: 0.2.2&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=8246</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=8246"/>
				<updated>2009-11-26T00:39:06Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added link to custom model import/export tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly. See [[3rd_party_extensions]] for custom model export and import.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be required for being useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- I believe each separate data element contains data of the type specified in Semantic &lt;br /&gt;
			--dont know what default behaviour is when Semantic is not specified--&lt;br /&gt;
		   for instance, first will hold all vert data, second hold normals, third hold triangle indecies etc&lt;br /&gt;
	   --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
		        Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
					 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MMH&amp;diff=8245</id>
		<title>MMH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MMH&amp;diff=8245"/>
				<updated>2009-11-26T00:38:44Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MMH''' (&amp;quot;Model Mesh Heirarchy&amp;quot;) files are used to describe a wide variety of physical objects that appear in Dragon Age levels. It includes props, visual effects, creature models, weapon models, and so forth.&lt;br /&gt;
&lt;br /&gt;
MMH files are defined by XML files named with the .mmh.xml extension. BioWare generated these XML files using 3DSMax plugins that have some legal encumberances preventing their distribution, but the specifications for .mmh.xml will be released and it is hoped that converters will be able to be written for other file formats. See [[3rd_party_extensions]] for custom model export and import tools.&lt;br /&gt;
&lt;br /&gt;
The XML file is then run through the GraphicsProcessorMMH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce a binary file that is used by the game. The game can actually use the XML file directly, but this has poor performance (it runs it through GraphicsProcessorMMH every time the object is loaded) and should only be used for testing purposes.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
:-byteswapgff{{undocumented}}&amp;lt;!-- ask Graham Wihlidal about these --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the command line you'll typically need:&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH -outdir %ls -platform pc %ls.mmh.xml&lt;br /&gt;
&lt;br /&gt;
MMH files reference [[MSH]] (mesh) files to define the actual triangles and vertexes used in models.&lt;br /&gt;
&lt;br /&gt;
== mmh.xml schema ==&lt;br /&gt;
&lt;br /&gt;
Joint types:&lt;br /&gt;
*Cylindrical&lt;br /&gt;
*6DOF&lt;br /&gt;
*Distance&lt;br /&gt;
*Fixed&lt;br /&gt;
*PointInPlane&lt;br /&gt;
*PointOnLine&lt;br /&gt;
*Prismatic&lt;br /&gt;
*Pulley&lt;br /&gt;
*Revolute&lt;br /&gt;
*Spherical&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FXActorName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An FXA file name --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ModelDataName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- an MSH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An MMH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PreSimulateTime&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- emitter presimulation time --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReferencedMeshes&amp;quot;/&amp;gt; &amp;lt;!-- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some have one or more .msh files named with spaces separating them. For example: ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;. Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialAlpha&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialDecalName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialFresnelFalloff&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialInvertFresnel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true. A true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialTintColor&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true. Four numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseRemoteMaterial&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- a true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BonesUsed&amp;quot;/&amp;gt; &amp;lt;!-- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, helmets, hair, eyes, etc. all have bonesused. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastRuntimeShadow&amp;quot;&amp;gt;  &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CutAway&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IsVFXMesh&amp;quot;&amp;gt; &amp;lt;!-- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt; &amp;lt;!-- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. I think this is referring to material libraries create by the material editor --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt; &amp;lt;!-- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshName&amp;quot;&amp;gt; &amp;lt;!-- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility) --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PunchThrough&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveRuntimeShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveShadow&amp;quot;&amp;gt; &amp;lt;!-- I didn't find this referenced in the source code - deprecated, perhaps? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ShadowCasting&amp;quot;&amp;gt; &amp;lt;!-- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt; &amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt;  I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Scale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BoneIndex&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SoundMaterialType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeCloth&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentTearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;BendingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING_ORTHO&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COLLISION_TWOWAY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COMDAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DISABLE_COLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_GRAVITY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_HARDWARE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_PRESSURE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_SELFCOLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_STATIC&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_TEARABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_VISUALIZATION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CollisionResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DampingCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Density&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Friction&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionAxisRatio&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionChange&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Pressure&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SleepLinearVelocity&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SolverIterations&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindDirection&amp;quot;&amp;gt;  &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindParams&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindUpdateTime&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;StretchingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;TearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Thickness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WakeUpCounter&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindDirection&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindEnabled&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponse&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponseLimit&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindSpace&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;ClothAttachments&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;element name=&amp;quot;ClothAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TearableAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TwoWayAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
                &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeSnaptoPoint&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;choice&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/choice&amp;gt;&lt;br /&gt;
        &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;HookID&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ControllerType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;TagName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;BoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;BoundingBox&amp;quot;&amp;gt; &amp;lt;!-- Vector4f min, Vector4f max --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Rotation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Rotation&amp;quot;&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Kinematic&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Static&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Shape&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;AllowEmitterSpawn&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimX&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimZ&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_CREATURES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_ITEMS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_PLACEABLES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TERRAIN_WALL&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TRIGGERS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_WALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Position&amp;quot;/&amp;gt; &amp;lt;!-- Vector4f --&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Rotation&amp;quot;/&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;VertexData&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;IndexData&amp;quot;&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AffectsDomain&amp;quot;&amp;gt; &amp;lt;!-- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. I don't know what these domains represent. --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriod&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriodDelta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityVariation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;IsStatic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt; &amp;lt;!-- true/false, I believe --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Duration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- All appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SegmentLength&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;AttributeName&amp;quot;&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SourceName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt; &amp;lt;!-- All seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt; &amp;lt;!-- &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt; &amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, and tools_bulb_ambient.mmh.xml. --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&amp;lt;!-- &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt; &amp;lt;!-- 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Acceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleXMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleYMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Birthrate&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateInParticlesPerMeter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Bounciness&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EmitterType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EnableParticleCollisions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;/&amp;gt; &amp;lt;!-- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1; if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;GravityMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InheritVelocityInsteadOfPosition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotationRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InvMovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;KillParticleWhenTargetHit&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LOD&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Life&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LifeRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;LinkParticlesTogether&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleModel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MovementSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing movementspread X and movementspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ObjectSpaceAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;OrientationBehaviour&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticleInheritance&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesAffectedByWind&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesFollowPath&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsObjectSpawn&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomInitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;RotationalAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ScaleRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SpawnDirectionTracksTarget&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SpawnSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing spawnspread X and spawnspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SplatEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetAttraction&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetRadius&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UVDistributionSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;UpdateOnlyWhenVisible&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UserParamName&amp;quot;/&amp;gt; &amp;lt;!-- ECString, not sure if there's any special formatting here --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;VertexFormat&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;WorldAxisAcceleration&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;EmitterAttachments&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;EmitterAttachment&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;SpawnOnSurface&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;UseNormalForVelocity&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SpawnVolume&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Axis&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;InvertSpawnVolumeNormals&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MaxCorner&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MinCorner&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;SpawnVolumeType&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpawnWithinVolume&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;UseVolumeNormalsForDirection&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;SplatParticle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- four numbers separated by spaces --&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;HoldLastFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Lifespan&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesH&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesW&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;OrientationRangeRadians&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Width&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;ReflectionMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;IrradianceMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Count&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AgeMapElement&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Alpha&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;PercentLifeElapsed&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RotationSpeedMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;XScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;YScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MMH.XML file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- A note on value types:&lt;br /&gt;
		List#:type -- means # amount of values of specified type with spaces in between&lt;br /&gt;
		&lt;br /&gt;
		string -- a series of characters, digits and underscores, can not start with a colon, no spaces&lt;br /&gt;
		?string? -- same as above except can start with a colon&lt;br /&gt;
		int -- an integer (whole number)&lt;br /&gt;
		decimal -- any number including one with digits appearing after a decimal point, &lt;br /&gt;
				   all decimals MUST have a decimal point even if there are no digits after it (ie 1. not 1, or 0.0)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ModelHierarchy ModelDataName=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		FXActorName=&amp;quot;string&amp;quot; -- An FXA file name &lt;br /&gt;
		PreSimulateTime=&amp;quot;decimal&amp;quot; -- emitter presimulation time&lt;br /&gt;
		ReferencedMeshes=&amp;quot;List:string&amp;quot; -- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some &lt;br /&gt;
										  have one or more .msh files named with spaces separating them. For example: &lt;br /&gt;
															ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;&lt;br /&gt;
										  Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.&lt;br /&gt;
		RemoteMaterialAlpha=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialDecalName=&amp;quot;string&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialFresnelFalloff=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialInvertFresnel=&amp;quot;int&amp;quot; -- if UseRemoteMaterial is true. A true/false value &lt;br /&gt;
		RemoteMaterialTintColor=&amp;quot;List4:decimal&amp;quot;-- if UseRemoteMaterial is true. Four numbers separated by spaces &lt;br /&gt;
		UseRemoteMaterial=&amp;quot;int&amp;quot; -- a true/false value &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 1 of (defined below): --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshHierarchy/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;	&lt;br /&gt;
&amp;lt;/ModelHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeMesh&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BonesUsed=&amp;quot;List:int&amp;quot; -- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, &lt;br /&gt;
								helmets, hair, eyes, etc. all have bonesused. &lt;br /&gt;
		CastBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		CastRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		CutAway=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		ID=&amp;quot;string&amp;quot; -- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters &lt;br /&gt;
		IsVFXMesh=&amp;quot;int&amp;quot; -- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter&lt;br /&gt;
		MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot; -- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot; -- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor &lt;br /&gt;
									 named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. &lt;br /&gt;
									 I think this is referring to material libraries create by the material editor &lt;br /&gt;
		MeshGroupName=string&amp;quot;&amp;gt; -- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful&lt;br /&gt;
								  names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; &lt;br /&gt;
		MeshName=&amp;quot;string&amp;quot; -- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility)&lt;br /&gt;
		Name=&amp;quot;string&amp;quot; -- name of the nodemesh&lt;br /&gt;
		PunchThrough=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	    ReceiveBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		ReceiveRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		&amp;lt;&amp;lt;UNKNOWN&amp;gt;&amp;gt; ReceiveShadow=&amp;quot;int&amp;quot; -- I didn't find this referenced in the source code - deprecated, perhaps? &lt;br /&gt;
		ShadowCasting=&amp;quot;int&amp;quot; -- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms?&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of the following items come next, definitions follow later --&amp;gt;&lt;br /&gt;
	&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;	&amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt; &lt;br /&gt;
						 I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;		&amp;lt;!-- appears to be able to handle a nodemesh within a nodemesh :O --&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Scale&amp;gt;&amp;quot;decimal&amp;quot;&amp;lt;/Scale&amp;gt;  &lt;br /&gt;
	&amp;lt;!-- I am assuming next bit means no more than one of the following (could be none): &lt;br /&gt;
									  &amp;lt;choice&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
										  &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
									  &amp;lt;/choice&amp;gt;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;NodeAmbientLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeMesh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Node Name=&amp;quot;?string?&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BoneIndex=&amp;quot;int&amp;quot; ---- possibly the bone to which this node is attached to, not included if not attached to a bone?&lt;br /&gt;
		SoundMaterialType=&amp;quot;int&amp;quot; ---- are there SoundMaterialType definitions somewhere? if so I guess this is the index of one&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following(including duplicates), however I assume having more than one of the same type&lt;br /&gt;
		 would cause the compiler to go wtf? in some cases (like bounding box or translation). Definitions follow later in file&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCloth&amp;gt; &amp;lt;!-- has a shit load of attributes with no comments however I assume they all have to do with cloth simulation paramaters --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- NodeCloth Attributes:&lt;br /&gt;
		AttachmentResponseCoefficient=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		AttachmentTearFactor=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		BendingStiffness=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		CF_BENDING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_BENDING_ORTHO=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COLLISION_TWOWAY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COMDAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DISABLE_COLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_GRAVITY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_HARDWARE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_PRESSURE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_SELFCOLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_STATIC=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_TEARABLE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_VISUALIZATION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CollisionResponseCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DampingCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Density=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Friction=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		ID=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
		MeshGroupName=&amp;quot;string&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Pressure=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SleepLinearVelocity=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SolverIterations=&amp;quot;int&amp;quot;&lt;br /&gt;
		StretchingStiffness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		TearFactor=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Thickness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		WakeUpCounter=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:	GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot; --&amp;gt;&lt;br /&gt;
		&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt;	&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;ClothAttachments&amp;gt;&lt;br /&gt;
		  &amp;lt;ClothAttachment TearableAttachment=&amp;quot;int&amp;quot; TwoWayAttachment=&amp;quot;int&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;/ClothAttachment&amp;gt;&lt;br /&gt;
		&amp;lt;/ClothAttachments&amp;gt;&lt;br /&gt;
		&amp;lt;MeshGroup Name=&amp;quot;string&amp;quot;&amp;gt;	&amp;lt;!-- contains 1 or more Data elements, defined later in file --&amp;gt;&lt;br /&gt;
			&amp;lt;Data/&amp;gt;	&lt;br /&gt;
		&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
	&amp;lt;/NodeCloth&amp;gt;&lt;br /&gt;
	&amp;lt;NodeSnaptoPoint Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
			&amp;lt;Export/&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more of the following, defined later in file --&amp;gt;&lt;br /&gt;
            &amp;lt;Translation/&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation/&amp;gt;&lt;br /&gt;
          &amp;lt;/NodeSnapToPoint&amp;gt;&lt;br /&gt;
    &amp;lt;NodeAmbientLight/&amp;gt;	&amp;lt;!-- Optional Element defined later in file--&amp;gt; &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;&amp;lt;&amp;lt;WARNING: PROBABLY NOT A GOOD IDEA TO USE THIS ONE!!!&amp;gt;&amp;gt;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- IE it is a REALLY old version of NodeMesh --&amp;gt;&lt;br /&gt;
&amp;lt;MeshHierarchy Name=&amp;quot;string&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- These are Optional and apparently can have more than one if you want, defined lated in file --&amp;gt;&lt;br /&gt;
		&amp;lt;MeshHierarchy/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have either a NodeLightProbe or 0 or more NodeEmitters --&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/MeshHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeCrustHierarchy HookID=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; 		&amp;lt;!-- can have 0 or more Exports, defined later in file --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;	&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following (including duplicates apparently) --&amp;gt;&lt;br /&gt;
	  &amp;lt;Node/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeCrustHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Rotation&amp;gt; &lt;br /&gt;
  data &amp;lt;!-- data is a Quaternionf (ie: f f f f, or maybe f,f,f,f)--&amp;gt;&lt;br /&gt;
&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Export ControllerType=&amp;quot;string&amp;quot; ExportName=&amp;quot;?string?&amp;quot; TagName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Optional Attribute: MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA --&amp;gt;&lt;br /&gt;
&amp;lt;/Export&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- data is Vector4f min, Vector4f max (ie: f f f f,f f f f or maybe (f,f,f,f) (f,f,f,f) --&amp;gt;&lt;br /&gt;
&amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Translation&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot;-- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- I believe this is a Vector4f --&amp;gt;&lt;br /&gt;
&amp;lt;/Translation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CollisionObject&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	Kinematic=&amp;quot;boolean&amp;quot;&lt;br /&gt;
	Static=&amp;quot;boolean&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- can have 1 or more Shapes --&amp;gt;&lt;br /&gt;
	&amp;lt;Shape&amp;gt;&lt;br /&gt;
	&amp;lt;!-- nAttributes:&lt;br /&gt;
		AllowEmitterSpawn=&amp;quot;int&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Position --Vector4f but no required type??&lt;br /&gt;
		Rotation --Quaternionf but no required type??&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		DimX=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DimY=&amp;quot;double&amp;quot;  -- why double when other dims are decimal???&lt;br /&gt;
		DimZ=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_CREATURES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_ITEMS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_PLACEABLES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TERRAIN_WALL=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TRIGGERS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_WALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Height=&amp;quot;double&amp;quot;&lt;br /&gt;
		Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;!-- VertexData and IndexData are optional, however you must have both or neither. Can have more than one pair??? --&amp;gt;&lt;br /&gt;
		&amp;lt;VertexData length=&amp;quot;int&amp;quot;&amp;gt; &amp;lt;!-- I assume length is the number of verts or possibly the number of values given in data --&amp;gt;&lt;br /&gt;
		  data &amp;lt;!-- I assume this is a list of vert coords given in a list form (ie: x1,y1,z1,x2,y2,z2,...,xn,yn,zn maybe without commas) --&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexData&amp;gt;&lt;br /&gt;
		&amp;lt;IndexData&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
		  data		&amp;lt;!-- maybe its vertex indicies for triangles? --&amp;gt;&lt;br /&gt;
		&amp;lt;/IndexData&amp;gt;&lt;br /&gt;
	&amp;lt;/Shape&amp;gt;&lt;br /&gt;
&amp;lt;/CollisionObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodePointLight Color=&amp;quot;list4:decimal&amp;quot; IsStatic=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;decimal&amp;quot;&amp;gt; &amp;lt;!-- Color: string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	AffectsDomain=&amp;quot;int&amp;quot; -- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. &lt;br /&gt;
						   I don't know what these domains represent.&lt;br /&gt;
    IntensityPeriod=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityPeriodDelta=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityVariation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    UseVariationTint=&amp;quot;int&amp;quot;-- true/false, I believe &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- must have at least 1 of the following, can have more including duplicates apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodePointLight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeWeapontrail Duration=&amp;quot;decimal&amp;quot; MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot; SegmentLength=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- All MaterialObjects appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeWeaponTrail&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Attribute AttributeName=&amp;quot;string&amp;quot; SourceName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- AttributeName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- SourceName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
&amp;lt;/Attribute&amp;gt; &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeUsePoint Name=&amp;quot;string&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- All Name values seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Type values: &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front &lt;br /&gt;
		 and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeUsePoint&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, &lt;br /&gt;
	 and tools_bulb_ambient.mmh.xml. &lt;br /&gt;
	 &lt;br /&gt;
	 I would assume this type of node is used for calculating ambient light/shadows maybe like a radiosity pass or something.&lt;br /&gt;
	 Might make some interesting lighting changes if you fiddle with it but be careful! might break your lighting --&amp;gt;&lt;br /&gt;
&amp;lt;NodeAmbientLight Color=&amp;quot;List4:decimal&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;double&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;!-- Color: string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &lt;br /&gt;
		 &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools &lt;br /&gt;
		 Name: &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. &lt;br /&gt;
		 Radius: 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; (10000000?? big big radius!) for the two tools --&amp;gt;&lt;br /&gt;
    &amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
    &amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeAmbientLight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeEmitter&amp;gt; &amp;lt;!-- has a shit ton of attributes, all of which seem to pertain to particle emitter parameters (makes sense) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Acceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Birthrate=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		BirthrateInParticlesPerMeter=&amp;quot;int&amp;quot;&lt;br /&gt;
		BirthrateRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		EmitterType=&amp;quot;string&amp;quot;&lt;br /&gt;
		EnableParticleCollisions=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		GravityMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		IneritVelocityInsteadOfPosition=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		InitialRotationSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Life=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		LinkParticlesTogether=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MovementSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing movementspread X and movementspread Y &lt;br /&gt;
		Name=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		OrientationBehaviour=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticleInheritance=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticlesAffectedByWind=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		ParticlesFollowPath=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RotationalAcceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ScaleRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SpawnSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing spawnspread X and spawnspread Y&lt;br /&gt;
		UpdateOnlyWhenVisible=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;	&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot;- - string of four numbers, separated by spaces.&lt;br /&gt;
		AgeMapScaleXMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		AgeMapScaleYMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Bounciness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
		FlipbookType=&amp;quot;int&amp;quot; -- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  &lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1;&lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;&lt;br /&gt;
		FramesPerSecond=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InvMovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		KillParticleWhenTargetHit=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		LOD=&amp;quot;int&amp;quot; -- true/false maybe?? might be an index/identifier&lt;br /&gt;
		LifeRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		MeshParticleModel=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ObjectSpaceAcceleration=&amp;quot;int&amp;quot;&lt;br /&gt;
		PhysicsEmitter=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		PhysicsObjectSpawn=&amp;quot;int -- true/false ??&lt;br /&gt;
		RandomInitialRotation=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RandomStartFrame=&amp;quot;int&amp;quot; --true/false ??&lt;br /&gt;
		SpawnDirectionTracksTarget=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		SplatEmitter=&amp;quot;int&amp;quot; -- true/false ?? might be index of a SplatEmitter if they exist&lt;br /&gt;
		TargetAttraction=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
		TargetName=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		TargetRadius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		UVDistributionSize=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		UserParamName=&amp;quot;??????&amp;quot; -- (datatype=ECString) &amp;lt;&amp;lt; What is this?? -- ECString, not sure if there's any special formatting here &lt;br /&gt;
		VertexFormat=&amp;quot;string&amp;quot; -- are there VertexFormats defined somewhere?&amp;gt;&lt;br /&gt;
		WorldAxisAcceleration=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Requires 1 or more of the following, duplicates allowed apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional EmitterAttachments Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;EmitterAttachment Type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional EmitterAttachment Attributes:&lt;br /&gt;
			Name=&amp;quot;string&amp;quot;&lt;br /&gt;
			SpawnOnSurface=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			UseNormalForVelocity=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
	&amp;lt;/EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;SpawnVolume InvertSpawnVolumeNormals=&amp;quot;int&amp;quot; SpawnWithinVolume=&amp;quot;int&amp;quot; &amp;gt; &amp;lt;!-- both look to be true/false values --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SpawnVolume Attributes:&lt;br /&gt;
			Axis=&amp;quot;??????&amp;quot; -- no data type specified, assuming 3 numbers&lt;br /&gt;
			Length=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			MaxCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MinCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			SpanwVolumeType=&amp;quot;string&amp;quot; -- are there SpawnVolumeTypes defined somewhere???&lt;br /&gt;
			UseVolumeNormalsForDirection=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Data/&amp;gt;&amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
	&amp;lt;/SpawnVolumn&amp;gt;&lt;br /&gt;
    &amp;lt;SplatParticle&amp;gt; &amp;lt;!-- Optional - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SplatParticle Attributes:&lt;br /&gt;
			Height=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			Lifespan=&amp;quot;int&amp;quot;&lt;br /&gt;
			MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
			NumSamplesH=&amp;quot;int&amp;quot;&lt;br /&gt;
			NumSamplesW=&amp;quot;int&amp;quot;&lt;br /&gt;
			OrientationRangeRadians=&amp;quot;int&amp;quot;&lt;br /&gt;
			Width=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SplatParticle Attributes:&lt;br /&gt;
			AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot; -- four numbers separated by spaces&lt;br /&gt;
			FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
			FlipbookType=&amp;quot;string&amp;quot; -- apparently not same as above in NodeEmitter&lt;br /&gt;
			FramesPerSecond=&amp;quot;int&amp;quot;&lt;br /&gt;
			HoldLastFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			RandomStartFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
		&amp;lt;AgeMap/&amp;gt;&lt;br /&gt;
	&amp;lt;/SplatParticle&amp;gt;&lt;br /&gt;
	&amp;lt;AgeMap/&amp;gt; &amp;lt;!-- Not Optional - Required - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitter&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Data Semantic=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		ElementCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexType=&amp;quot;string&amp;quot;&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 	data&lt;br /&gt;
&amp;lt;/Data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterGroup MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;?string?&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt; &amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterGroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterTarget Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterTarget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeLightProbe Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- following are optional elements, they are paired, can't have one without the other --&amp;gt;&lt;br /&gt;
	&amp;lt;ReflectionMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;IrradianceMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/NodeLightProbe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AgeMap Count=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- contains one or more AgeMapElements --&amp;gt;&lt;br /&gt;
      &amp;lt;AgeMapElement Alpha=&amp;quot;decimal&amp;quot; Color=&amp;quot;List4:decimal&amp;quot; PercentLifeElapsed=&amp;quot;decimal&amp;quot; XScale=&amp;quot;decimal&amp;quot; YScale=&amp;quot;decimal&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- Optional AgeMapElement Attributes: RotationSpeedMultiplier=&amp;quot;decimal&amp;quot; --&amp;gt;&lt;br /&gt;
 &amp;lt;/AgeMap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MMH&amp;diff=8244</id>
		<title>MMH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MMH&amp;diff=8244"/>
				<updated>2009-11-26T00:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MMH''' (&amp;quot;Model Mesh Heirarchy&amp;quot;) files are used to describe a wide variety of physical objects that appear in Dragon Age levels. It includes props, visual effects, creature models, weapon models, and so forth.&lt;br /&gt;
&lt;br /&gt;
MMH files are defined by XML files named with the .mmh.xml extension. BioWare generated these XML files using 3DSMax plugins that have some legal encumberances preventing their distribution, but the specifications for .mmh.xml will be released and it is hoped that converters will be able to be written for other file formats. See [[3rd_party_extentions]] for custom model export and import tools.&lt;br /&gt;
&lt;br /&gt;
The XML file is then run through the GraphicsProcessorMMH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce a binary file that is used by the game. The game can actually use the XML file directly, but this has poor performance (it runs it through GraphicsProcessorMMH every time the object is loaded) and should only be used for testing purposes.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
:-byteswapgff{{undocumented}}&amp;lt;!-- ask Graham Wihlidal about these --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the command line you'll typically need:&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH -outdir %ls -platform pc %ls.mmh.xml&lt;br /&gt;
&lt;br /&gt;
MMH files reference [[MSH]] (mesh) files to define the actual triangles and vertexes used in models.&lt;br /&gt;
&lt;br /&gt;
== mmh.xml schema ==&lt;br /&gt;
&lt;br /&gt;
Joint types:&lt;br /&gt;
*Cylindrical&lt;br /&gt;
*6DOF&lt;br /&gt;
*Distance&lt;br /&gt;
*Fixed&lt;br /&gt;
*PointInPlane&lt;br /&gt;
*PointOnLine&lt;br /&gt;
*Prismatic&lt;br /&gt;
*Pulley&lt;br /&gt;
*Revolute&lt;br /&gt;
*Spherical&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FXActorName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An FXA file name --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ModelDataName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- an MSH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An MMH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PreSimulateTime&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- emitter presimulation time --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReferencedMeshes&amp;quot;/&amp;gt; &amp;lt;!-- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some have one or more .msh files named with spaces separating them. For example: ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;. Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialAlpha&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialDecalName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialFresnelFalloff&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialInvertFresnel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true. A true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialTintColor&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true. Four numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseRemoteMaterial&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- a true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BonesUsed&amp;quot;/&amp;gt; &amp;lt;!-- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, helmets, hair, eyes, etc. all have bonesused. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastRuntimeShadow&amp;quot;&amp;gt;  &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CutAway&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IsVFXMesh&amp;quot;&amp;gt; &amp;lt;!-- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt; &amp;lt;!-- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. I think this is referring to material libraries create by the material editor --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt; &amp;lt;!-- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshName&amp;quot;&amp;gt; &amp;lt;!-- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility) --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PunchThrough&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveRuntimeShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveShadow&amp;quot;&amp;gt; &amp;lt;!-- I didn't find this referenced in the source code - deprecated, perhaps? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ShadowCasting&amp;quot;&amp;gt; &amp;lt;!-- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt; &amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt;  I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Scale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BoneIndex&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SoundMaterialType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeCloth&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentTearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;BendingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING_ORTHO&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COLLISION_TWOWAY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COMDAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DISABLE_COLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_GRAVITY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_HARDWARE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_PRESSURE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_SELFCOLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_STATIC&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_TEARABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_VISUALIZATION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CollisionResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DampingCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Density&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Friction&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionAxisRatio&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionChange&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Pressure&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SleepLinearVelocity&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SolverIterations&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindDirection&amp;quot;&amp;gt;  &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindParams&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindUpdateTime&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;StretchingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;TearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Thickness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WakeUpCounter&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindDirection&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindEnabled&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponse&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponseLimit&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindSpace&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;ClothAttachments&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;element name=&amp;quot;ClothAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TearableAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TwoWayAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
                &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeSnaptoPoint&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;choice&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/choice&amp;gt;&lt;br /&gt;
        &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;HookID&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ControllerType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;TagName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;BoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;BoundingBox&amp;quot;&amp;gt; &amp;lt;!-- Vector4f min, Vector4f max --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Rotation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Rotation&amp;quot;&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Kinematic&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Static&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Shape&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;AllowEmitterSpawn&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimX&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimZ&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_CREATURES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_ITEMS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_PLACEABLES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TERRAIN_WALL&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TRIGGERS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_WALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Position&amp;quot;/&amp;gt; &amp;lt;!-- Vector4f --&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Rotation&amp;quot;/&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;VertexData&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;IndexData&amp;quot;&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AffectsDomain&amp;quot;&amp;gt; &amp;lt;!-- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. I don't know what these domains represent. --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriod&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriodDelta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityVariation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;IsStatic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt; &amp;lt;!-- true/false, I believe --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Duration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- All appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SegmentLength&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;AttributeName&amp;quot;&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SourceName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt; &amp;lt;!-- All seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt; &amp;lt;!-- &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt; &amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, and tools_bulb_ambient.mmh.xml. --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&amp;lt;!-- &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt; &amp;lt;!-- 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Acceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleXMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleYMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Birthrate&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateInParticlesPerMeter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Bounciness&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EmitterType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EnableParticleCollisions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;/&amp;gt; &amp;lt;!-- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1; if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;GravityMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InheritVelocityInsteadOfPosition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotationRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InvMovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;KillParticleWhenTargetHit&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LOD&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Life&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LifeRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;LinkParticlesTogether&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleModel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MovementSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing movementspread X and movementspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ObjectSpaceAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;OrientationBehaviour&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticleInheritance&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesAffectedByWind&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesFollowPath&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsObjectSpawn&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomInitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;RotationalAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ScaleRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SpawnDirectionTracksTarget&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SpawnSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing spawnspread X and spawnspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SplatEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetAttraction&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetRadius&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UVDistributionSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;UpdateOnlyWhenVisible&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UserParamName&amp;quot;/&amp;gt; &amp;lt;!-- ECString, not sure if there's any special formatting here --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;VertexFormat&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;WorldAxisAcceleration&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;EmitterAttachments&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;EmitterAttachment&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;SpawnOnSurface&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;UseNormalForVelocity&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SpawnVolume&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Axis&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;InvertSpawnVolumeNormals&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MaxCorner&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MinCorner&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;SpawnVolumeType&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpawnWithinVolume&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;UseVolumeNormalsForDirection&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;SplatParticle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- four numbers separated by spaces --&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;HoldLastFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Lifespan&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesH&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesW&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;OrientationRangeRadians&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Width&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;ReflectionMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;IrradianceMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Count&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AgeMapElement&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Alpha&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;PercentLifeElapsed&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RotationSpeedMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;XScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;YScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MMH.XML file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- A note on value types:&lt;br /&gt;
		List#:type -- means # amount of values of specified type with spaces in between&lt;br /&gt;
		&lt;br /&gt;
		string -- a series of characters, digits and underscores, can not start with a colon, no spaces&lt;br /&gt;
		?string? -- same as above except can start with a colon&lt;br /&gt;
		int -- an integer (whole number)&lt;br /&gt;
		decimal -- any number including one with digits appearing after a decimal point, &lt;br /&gt;
				   all decimals MUST have a decimal point even if there are no digits after it (ie 1. not 1, or 0.0)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ModelHierarchy ModelDataName=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		FXActorName=&amp;quot;string&amp;quot; -- An FXA file name &lt;br /&gt;
		PreSimulateTime=&amp;quot;decimal&amp;quot; -- emitter presimulation time&lt;br /&gt;
		ReferencedMeshes=&amp;quot;List:string&amp;quot; -- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some &lt;br /&gt;
										  have one or more .msh files named with spaces separating them. For example: &lt;br /&gt;
															ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;&lt;br /&gt;
										  Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.&lt;br /&gt;
		RemoteMaterialAlpha=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialDecalName=&amp;quot;string&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialFresnelFalloff=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialInvertFresnel=&amp;quot;int&amp;quot; -- if UseRemoteMaterial is true. A true/false value &lt;br /&gt;
		RemoteMaterialTintColor=&amp;quot;List4:decimal&amp;quot;-- if UseRemoteMaterial is true. Four numbers separated by spaces &lt;br /&gt;
		UseRemoteMaterial=&amp;quot;int&amp;quot; -- a true/false value &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 1 of (defined below): --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshHierarchy/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;	&lt;br /&gt;
&amp;lt;/ModelHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeMesh&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BonesUsed=&amp;quot;List:int&amp;quot; -- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, &lt;br /&gt;
								helmets, hair, eyes, etc. all have bonesused. &lt;br /&gt;
		CastBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		CastRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		CutAway=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		ID=&amp;quot;string&amp;quot; -- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters &lt;br /&gt;
		IsVFXMesh=&amp;quot;int&amp;quot; -- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter&lt;br /&gt;
		MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot; -- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot; -- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor &lt;br /&gt;
									 named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. &lt;br /&gt;
									 I think this is referring to material libraries create by the material editor &lt;br /&gt;
		MeshGroupName=string&amp;quot;&amp;gt; -- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful&lt;br /&gt;
								  names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; &lt;br /&gt;
		MeshName=&amp;quot;string&amp;quot; -- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility)&lt;br /&gt;
		Name=&amp;quot;string&amp;quot; -- name of the nodemesh&lt;br /&gt;
		PunchThrough=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	    ReceiveBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		ReceiveRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		&amp;lt;&amp;lt;UNKNOWN&amp;gt;&amp;gt; ReceiveShadow=&amp;quot;int&amp;quot; -- I didn't find this referenced in the source code - deprecated, perhaps? &lt;br /&gt;
		ShadowCasting=&amp;quot;int&amp;quot; -- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms?&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of the following items come next, definitions follow later --&amp;gt;&lt;br /&gt;
	&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;	&amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt; &lt;br /&gt;
						 I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;		&amp;lt;!-- appears to be able to handle a nodemesh within a nodemesh :O --&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Scale&amp;gt;&amp;quot;decimal&amp;quot;&amp;lt;/Scale&amp;gt;  &lt;br /&gt;
	&amp;lt;!-- I am assuming next bit means no more than one of the following (could be none): &lt;br /&gt;
									  &amp;lt;choice&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
										  &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
									  &amp;lt;/choice&amp;gt;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;NodeAmbientLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeMesh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Node Name=&amp;quot;?string?&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BoneIndex=&amp;quot;int&amp;quot; ---- possibly the bone to which this node is attached to, not included if not attached to a bone?&lt;br /&gt;
		SoundMaterialType=&amp;quot;int&amp;quot; ---- are there SoundMaterialType definitions somewhere? if so I guess this is the index of one&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following(including duplicates), however I assume having more than one of the same type&lt;br /&gt;
		 would cause the compiler to go wtf? in some cases (like bounding box or translation). Definitions follow later in file&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCloth&amp;gt; &amp;lt;!-- has a shit load of attributes with no comments however I assume they all have to do with cloth simulation paramaters --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- NodeCloth Attributes:&lt;br /&gt;
		AttachmentResponseCoefficient=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		AttachmentTearFactor=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		BendingStiffness=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		CF_BENDING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_BENDING_ORTHO=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COLLISION_TWOWAY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COMDAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DISABLE_COLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_GRAVITY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_HARDWARE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_PRESSURE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_SELFCOLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_STATIC=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_TEARABLE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_VISUALIZATION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CollisionResponseCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DampingCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Density=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Friction=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		ID=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
		MeshGroupName=&amp;quot;string&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Pressure=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SleepLinearVelocity=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SolverIterations=&amp;quot;int&amp;quot;&lt;br /&gt;
		StretchingStiffness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		TearFactor=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Thickness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		WakeUpCounter=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:	GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot; --&amp;gt;&lt;br /&gt;
		&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt;	&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;ClothAttachments&amp;gt;&lt;br /&gt;
		  &amp;lt;ClothAttachment TearableAttachment=&amp;quot;int&amp;quot; TwoWayAttachment=&amp;quot;int&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;/ClothAttachment&amp;gt;&lt;br /&gt;
		&amp;lt;/ClothAttachments&amp;gt;&lt;br /&gt;
		&amp;lt;MeshGroup Name=&amp;quot;string&amp;quot;&amp;gt;	&amp;lt;!-- contains 1 or more Data elements, defined later in file --&amp;gt;&lt;br /&gt;
			&amp;lt;Data/&amp;gt;	&lt;br /&gt;
		&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
	&amp;lt;/NodeCloth&amp;gt;&lt;br /&gt;
	&amp;lt;NodeSnaptoPoint Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
			&amp;lt;Export/&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more of the following, defined later in file --&amp;gt;&lt;br /&gt;
            &amp;lt;Translation/&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation/&amp;gt;&lt;br /&gt;
          &amp;lt;/NodeSnapToPoint&amp;gt;&lt;br /&gt;
    &amp;lt;NodeAmbientLight/&amp;gt;	&amp;lt;!-- Optional Element defined later in file--&amp;gt; &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;&amp;lt;&amp;lt;WARNING: PROBABLY NOT A GOOD IDEA TO USE THIS ONE!!!&amp;gt;&amp;gt;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- IE it is a REALLY old version of NodeMesh --&amp;gt;&lt;br /&gt;
&amp;lt;MeshHierarchy Name=&amp;quot;string&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- These are Optional and apparently can have more than one if you want, defined lated in file --&amp;gt;&lt;br /&gt;
		&amp;lt;MeshHierarchy/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have either a NodeLightProbe or 0 or more NodeEmitters --&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/MeshHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeCrustHierarchy HookID=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; 		&amp;lt;!-- can have 0 or more Exports, defined later in file --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;	&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following (including duplicates apparently) --&amp;gt;&lt;br /&gt;
	  &amp;lt;Node/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeCrustHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Rotation&amp;gt; &lt;br /&gt;
  data &amp;lt;!-- data is a Quaternionf (ie: f f f f, or maybe f,f,f,f)--&amp;gt;&lt;br /&gt;
&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Export ControllerType=&amp;quot;string&amp;quot; ExportName=&amp;quot;?string?&amp;quot; TagName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Optional Attribute: MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA --&amp;gt;&lt;br /&gt;
&amp;lt;/Export&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- data is Vector4f min, Vector4f max (ie: f f f f,f f f f or maybe (f,f,f,f) (f,f,f,f) --&amp;gt;&lt;br /&gt;
&amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Translation&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot;-- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- I believe this is a Vector4f --&amp;gt;&lt;br /&gt;
&amp;lt;/Translation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CollisionObject&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	Kinematic=&amp;quot;boolean&amp;quot;&lt;br /&gt;
	Static=&amp;quot;boolean&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- can have 1 or more Shapes --&amp;gt;&lt;br /&gt;
	&amp;lt;Shape&amp;gt;&lt;br /&gt;
	&amp;lt;!-- nAttributes:&lt;br /&gt;
		AllowEmitterSpawn=&amp;quot;int&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Position --Vector4f but no required type??&lt;br /&gt;
		Rotation --Quaternionf but no required type??&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		DimX=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DimY=&amp;quot;double&amp;quot;  -- why double when other dims are decimal???&lt;br /&gt;
		DimZ=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_CREATURES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_ITEMS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_PLACEABLES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TERRAIN_WALL=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TRIGGERS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_WALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Height=&amp;quot;double&amp;quot;&lt;br /&gt;
		Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;!-- VertexData and IndexData are optional, however you must have both or neither. Can have more than one pair??? --&amp;gt;&lt;br /&gt;
		&amp;lt;VertexData length=&amp;quot;int&amp;quot;&amp;gt; &amp;lt;!-- I assume length is the number of verts or possibly the number of values given in data --&amp;gt;&lt;br /&gt;
		  data &amp;lt;!-- I assume this is a list of vert coords given in a list form (ie: x1,y1,z1,x2,y2,z2,...,xn,yn,zn maybe without commas) --&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexData&amp;gt;&lt;br /&gt;
		&amp;lt;IndexData&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
		  data		&amp;lt;!-- maybe its vertex indicies for triangles? --&amp;gt;&lt;br /&gt;
		&amp;lt;/IndexData&amp;gt;&lt;br /&gt;
	&amp;lt;/Shape&amp;gt;&lt;br /&gt;
&amp;lt;/CollisionObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodePointLight Color=&amp;quot;list4:decimal&amp;quot; IsStatic=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;decimal&amp;quot;&amp;gt; &amp;lt;!-- Color: string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	AffectsDomain=&amp;quot;int&amp;quot; -- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. &lt;br /&gt;
						   I don't know what these domains represent.&lt;br /&gt;
    IntensityPeriod=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityPeriodDelta=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityVariation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    UseVariationTint=&amp;quot;int&amp;quot;-- true/false, I believe &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- must have at least 1 of the following, can have more including duplicates apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodePointLight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeWeapontrail Duration=&amp;quot;decimal&amp;quot; MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot; SegmentLength=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- All MaterialObjects appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeWeaponTrail&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Attribute AttributeName=&amp;quot;string&amp;quot; SourceName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- AttributeName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- SourceName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
&amp;lt;/Attribute&amp;gt; &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeUsePoint Name=&amp;quot;string&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- All Name values seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Type values: &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front &lt;br /&gt;
		 and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeUsePoint&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, &lt;br /&gt;
	 and tools_bulb_ambient.mmh.xml. &lt;br /&gt;
	 &lt;br /&gt;
	 I would assume this type of node is used for calculating ambient light/shadows maybe like a radiosity pass or something.&lt;br /&gt;
	 Might make some interesting lighting changes if you fiddle with it but be careful! might break your lighting --&amp;gt;&lt;br /&gt;
&amp;lt;NodeAmbientLight Color=&amp;quot;List4:decimal&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;double&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;!-- Color: string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &lt;br /&gt;
		 &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools &lt;br /&gt;
		 Name: &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. &lt;br /&gt;
		 Radius: 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; (10000000?? big big radius!) for the two tools --&amp;gt;&lt;br /&gt;
    &amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
    &amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeAmbientLight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeEmitter&amp;gt; &amp;lt;!-- has a shit ton of attributes, all of which seem to pertain to particle emitter parameters (makes sense) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Acceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Birthrate=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		BirthrateInParticlesPerMeter=&amp;quot;int&amp;quot;&lt;br /&gt;
		BirthrateRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		EmitterType=&amp;quot;string&amp;quot;&lt;br /&gt;
		EnableParticleCollisions=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		GravityMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		IneritVelocityInsteadOfPosition=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		InitialRotationSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Life=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		LinkParticlesTogether=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MovementSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing movementspread X and movementspread Y &lt;br /&gt;
		Name=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		OrientationBehaviour=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticleInheritance=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticlesAffectedByWind=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		ParticlesFollowPath=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RotationalAcceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ScaleRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SpawnSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing spawnspread X and spawnspread Y&lt;br /&gt;
		UpdateOnlyWhenVisible=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;	&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot;- - string of four numbers, separated by spaces.&lt;br /&gt;
		AgeMapScaleXMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		AgeMapScaleYMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Bounciness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
		FlipbookType=&amp;quot;int&amp;quot; -- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  &lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1;&lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;&lt;br /&gt;
		FramesPerSecond=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InvMovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		KillParticleWhenTargetHit=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		LOD=&amp;quot;int&amp;quot; -- true/false maybe?? might be an index/identifier&lt;br /&gt;
		LifeRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		MeshParticleModel=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ObjectSpaceAcceleration=&amp;quot;int&amp;quot;&lt;br /&gt;
		PhysicsEmitter=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		PhysicsObjectSpawn=&amp;quot;int -- true/false ??&lt;br /&gt;
		RandomInitialRotation=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RandomStartFrame=&amp;quot;int&amp;quot; --true/false ??&lt;br /&gt;
		SpawnDirectionTracksTarget=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		SplatEmitter=&amp;quot;int&amp;quot; -- true/false ?? might be index of a SplatEmitter if they exist&lt;br /&gt;
		TargetAttraction=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
		TargetName=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		TargetRadius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		UVDistributionSize=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		UserParamName=&amp;quot;??????&amp;quot; -- (datatype=ECString) &amp;lt;&amp;lt; What is this?? -- ECString, not sure if there's any special formatting here &lt;br /&gt;
		VertexFormat=&amp;quot;string&amp;quot; -- are there VertexFormats defined somewhere?&amp;gt;&lt;br /&gt;
		WorldAxisAcceleration=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Requires 1 or more of the following, duplicates allowed apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional EmitterAttachments Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;EmitterAttachment Type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional EmitterAttachment Attributes:&lt;br /&gt;
			Name=&amp;quot;string&amp;quot;&lt;br /&gt;
			SpawnOnSurface=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			UseNormalForVelocity=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
	&amp;lt;/EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;SpawnVolume InvertSpawnVolumeNormals=&amp;quot;int&amp;quot; SpawnWithinVolume=&amp;quot;int&amp;quot; &amp;gt; &amp;lt;!-- both look to be true/false values --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SpawnVolume Attributes:&lt;br /&gt;
			Axis=&amp;quot;??????&amp;quot; -- no data type specified, assuming 3 numbers&lt;br /&gt;
			Length=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			MaxCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MinCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			SpanwVolumeType=&amp;quot;string&amp;quot; -- are there SpawnVolumeTypes defined somewhere???&lt;br /&gt;
			UseVolumeNormalsForDirection=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Data/&amp;gt;&amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
	&amp;lt;/SpawnVolumn&amp;gt;&lt;br /&gt;
    &amp;lt;SplatParticle&amp;gt; &amp;lt;!-- Optional - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SplatParticle Attributes:&lt;br /&gt;
			Height=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			Lifespan=&amp;quot;int&amp;quot;&lt;br /&gt;
			MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
			NumSamplesH=&amp;quot;int&amp;quot;&lt;br /&gt;
			NumSamplesW=&amp;quot;int&amp;quot;&lt;br /&gt;
			OrientationRangeRadians=&amp;quot;int&amp;quot;&lt;br /&gt;
			Width=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SplatParticle Attributes:&lt;br /&gt;
			AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot; -- four numbers separated by spaces&lt;br /&gt;
			FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
			FlipbookType=&amp;quot;string&amp;quot; -- apparently not same as above in NodeEmitter&lt;br /&gt;
			FramesPerSecond=&amp;quot;int&amp;quot;&lt;br /&gt;
			HoldLastFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			RandomStartFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
		&amp;lt;AgeMap/&amp;gt;&lt;br /&gt;
	&amp;lt;/SplatParticle&amp;gt;&lt;br /&gt;
	&amp;lt;AgeMap/&amp;gt; &amp;lt;!-- Not Optional - Required - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitter&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Data Semantic=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		ElementCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexType=&amp;quot;string&amp;quot;&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 	data&lt;br /&gt;
&amp;lt;/Data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterGroup MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;?string?&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt; &amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterGroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterTarget Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterTarget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeLightProbe Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- following are optional elements, they are paired, can't have one without the other --&amp;gt;&lt;br /&gt;
	&amp;lt;ReflectionMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;IrradianceMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/NodeLightProbe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AgeMap Count=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- contains one or more AgeMapElements --&amp;gt;&lt;br /&gt;
      &amp;lt;AgeMapElement Alpha=&amp;quot;decimal&amp;quot; Color=&amp;quot;List4:decimal&amp;quot; PercentLifeElapsed=&amp;quot;decimal&amp;quot; XScale=&amp;quot;decimal&amp;quot; YScale=&amp;quot;decimal&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- Optional AgeMapElement Attributes: RotationSpeedMultiplier=&amp;quot;decimal&amp;quot; --&amp;gt;&lt;br /&gt;
 &amp;lt;/AgeMap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MMH&amp;diff=8243</id>
		<title>MMH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MMH&amp;diff=8243"/>
				<updated>2009-11-26T00:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added link to custom model import/export tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MMH''' (&amp;quot;Model Mesh Heirarchy&amp;quot;) files are used to describe a wide variety of physical objects that appear in Dragon Age levels. It includes props, visual effects, creature models, weapon models, and so forth.&lt;br /&gt;
&lt;br /&gt;
MMH files are defined by XML files named with the .mmh.xml extension. BioWare generated these XML files using 3DSMax plugins that have some legal encumberances preventing their distribution, but the specifications for .mmh.xml will be released and it is hoped that converters will be able to be written for other file formats. See [[3rd party extentions]] for custom model export and import tools.&lt;br /&gt;
&lt;br /&gt;
The XML file is then run through the GraphicsProcessorMMH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce a binary file that is used by the game. The game can actually use the XML file directly, but this has poor performance (it runs it through GraphicsProcessorMMH every time the object is loaded) and should only be used for testing purposes.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
:-byteswapgff{{undocumented}}&amp;lt;!-- ask Graham Wihlidal about these --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the command line you'll typically need:&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH -outdir %ls -platform pc %ls.mmh.xml&lt;br /&gt;
&lt;br /&gt;
MMH files reference [[MSH]] (mesh) files to define the actual triangles and vertexes used in models.&lt;br /&gt;
&lt;br /&gt;
== mmh.xml schema ==&lt;br /&gt;
&lt;br /&gt;
Joint types:&lt;br /&gt;
*Cylindrical&lt;br /&gt;
*6DOF&lt;br /&gt;
*Distance&lt;br /&gt;
*Fixed&lt;br /&gt;
*PointInPlane&lt;br /&gt;
*PointOnLine&lt;br /&gt;
*Prismatic&lt;br /&gt;
*Pulley&lt;br /&gt;
*Revolute&lt;br /&gt;
*Spherical&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FXActorName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An FXA file name --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ModelDataName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- an MSH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An MMH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PreSimulateTime&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- emitter presimulation time --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReferencedMeshes&amp;quot;/&amp;gt; &amp;lt;!-- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some have one or more .msh files named with spaces separating them. For example: ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;. Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialAlpha&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialDecalName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialFresnelFalloff&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialInvertFresnel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true. A true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialTintColor&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true. Four numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseRemoteMaterial&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- a true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BonesUsed&amp;quot;/&amp;gt; &amp;lt;!-- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, helmets, hair, eyes, etc. all have bonesused. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastRuntimeShadow&amp;quot;&amp;gt;  &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CutAway&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IsVFXMesh&amp;quot;&amp;gt; &amp;lt;!-- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt; &amp;lt;!-- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. I think this is referring to material libraries create by the material editor --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt; &amp;lt;!-- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshName&amp;quot;&amp;gt; &amp;lt;!-- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility) --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PunchThrough&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveRuntimeShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveShadow&amp;quot;&amp;gt; &amp;lt;!-- I didn't find this referenced in the source code - deprecated, perhaps? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ShadowCasting&amp;quot;&amp;gt; &amp;lt;!-- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt; &amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt;  I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Scale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BoneIndex&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SoundMaterialType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeCloth&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentTearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;BendingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING_ORTHO&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COLLISION_TWOWAY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COMDAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DISABLE_COLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_GRAVITY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_HARDWARE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_PRESSURE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_SELFCOLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_STATIC&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_TEARABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_VISUALIZATION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CollisionResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DampingCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Density&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Friction&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionAxisRatio&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionChange&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Pressure&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SleepLinearVelocity&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SolverIterations&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindDirection&amp;quot;&amp;gt;  &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindParams&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindUpdateTime&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;StretchingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;TearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Thickness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WakeUpCounter&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindDirection&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindEnabled&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponse&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponseLimit&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindSpace&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;ClothAttachments&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;element name=&amp;quot;ClothAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TearableAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TwoWayAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
                &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeSnaptoPoint&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;choice&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/choice&amp;gt;&lt;br /&gt;
        &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;HookID&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ControllerType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;TagName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;BoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;BoundingBox&amp;quot;&amp;gt; &amp;lt;!-- Vector4f min, Vector4f max --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Rotation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Rotation&amp;quot;&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Kinematic&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Static&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Shape&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;AllowEmitterSpawn&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimX&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimZ&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_CREATURES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_ITEMS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_PLACEABLES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TERRAIN_WALL&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TRIGGERS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_WALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Position&amp;quot;/&amp;gt; &amp;lt;!-- Vector4f --&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Rotation&amp;quot;/&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;VertexData&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;IndexData&amp;quot;&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AffectsDomain&amp;quot;&amp;gt; &amp;lt;!-- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. I don't know what these domains represent. --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriod&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriodDelta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityVariation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;IsStatic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt; &amp;lt;!-- true/false, I believe --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Duration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- All appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SegmentLength&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;AttributeName&amp;quot;&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SourceName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt; &amp;lt;!-- All seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt; &amp;lt;!-- &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt; &amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, and tools_bulb_ambient.mmh.xml. --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&amp;lt;!-- &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt; &amp;lt;!-- 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Acceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleXMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleYMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Birthrate&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateInParticlesPerMeter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Bounciness&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EmitterType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EnableParticleCollisions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;/&amp;gt; &amp;lt;!-- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1; if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;GravityMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InheritVelocityInsteadOfPosition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotationRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InvMovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;KillParticleWhenTargetHit&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LOD&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Life&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LifeRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;LinkParticlesTogether&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleModel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MovementSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing movementspread X and movementspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ObjectSpaceAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;OrientationBehaviour&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticleInheritance&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesAffectedByWind&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesFollowPath&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsObjectSpawn&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomInitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;RotationalAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ScaleRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SpawnDirectionTracksTarget&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SpawnSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing spawnspread X and spawnspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SplatEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetAttraction&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetRadius&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UVDistributionSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;UpdateOnlyWhenVisible&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UserParamName&amp;quot;/&amp;gt; &amp;lt;!-- ECString, not sure if there's any special formatting here --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;VertexFormat&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;WorldAxisAcceleration&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;EmitterAttachments&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;EmitterAttachment&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;SpawnOnSurface&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;UseNormalForVelocity&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SpawnVolume&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Axis&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;InvertSpawnVolumeNormals&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MaxCorner&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MinCorner&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;SpawnVolumeType&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpawnWithinVolume&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;UseVolumeNormalsForDirection&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;SplatParticle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- four numbers separated by spaces --&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;HoldLastFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Lifespan&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesH&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesW&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;OrientationRangeRadians&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Width&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;ReflectionMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;IrradianceMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Count&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AgeMapElement&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Alpha&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;PercentLifeElapsed&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RotationSpeedMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;XScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;YScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MMH.XML file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- A note on value types:&lt;br /&gt;
		List#:type -- means # amount of values of specified type with spaces in between&lt;br /&gt;
		&lt;br /&gt;
		string -- a series of characters, digits and underscores, can not start with a colon, no spaces&lt;br /&gt;
		?string? -- same as above except can start with a colon&lt;br /&gt;
		int -- an integer (whole number)&lt;br /&gt;
		decimal -- any number including one with digits appearing after a decimal point, &lt;br /&gt;
				   all decimals MUST have a decimal point even if there are no digits after it (ie 1. not 1, or 0.0)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ModelHierarchy ModelDataName=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		FXActorName=&amp;quot;string&amp;quot; -- An FXA file name &lt;br /&gt;
		PreSimulateTime=&amp;quot;decimal&amp;quot; -- emitter presimulation time&lt;br /&gt;
		ReferencedMeshes=&amp;quot;List:string&amp;quot; -- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some &lt;br /&gt;
										  have one or more .msh files named with spaces separating them. For example: &lt;br /&gt;
															ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;&lt;br /&gt;
										  Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.&lt;br /&gt;
		RemoteMaterialAlpha=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialDecalName=&amp;quot;string&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialFresnelFalloff=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialInvertFresnel=&amp;quot;int&amp;quot; -- if UseRemoteMaterial is true. A true/false value &lt;br /&gt;
		RemoteMaterialTintColor=&amp;quot;List4:decimal&amp;quot;-- if UseRemoteMaterial is true. Four numbers separated by spaces &lt;br /&gt;
		UseRemoteMaterial=&amp;quot;int&amp;quot; -- a true/false value &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 1 of (defined below): --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshHierarchy/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;	&lt;br /&gt;
&amp;lt;/ModelHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeMesh&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BonesUsed=&amp;quot;List:int&amp;quot; -- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, &lt;br /&gt;
								helmets, hair, eyes, etc. all have bonesused. &lt;br /&gt;
		CastBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		CastRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		CutAway=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		ID=&amp;quot;string&amp;quot; -- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters &lt;br /&gt;
		IsVFXMesh=&amp;quot;int&amp;quot; -- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter&lt;br /&gt;
		MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot; -- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot; -- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor &lt;br /&gt;
									 named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. &lt;br /&gt;
									 I think this is referring to material libraries create by the material editor &lt;br /&gt;
		MeshGroupName=string&amp;quot;&amp;gt; -- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful&lt;br /&gt;
								  names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; &lt;br /&gt;
		MeshName=&amp;quot;string&amp;quot; -- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility)&lt;br /&gt;
		Name=&amp;quot;string&amp;quot; -- name of the nodemesh&lt;br /&gt;
		PunchThrough=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	    ReceiveBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		ReceiveRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		&amp;lt;&amp;lt;UNKNOWN&amp;gt;&amp;gt; ReceiveShadow=&amp;quot;int&amp;quot; -- I didn't find this referenced in the source code - deprecated, perhaps? &lt;br /&gt;
		ShadowCasting=&amp;quot;int&amp;quot; -- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms?&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of the following items come next, definitions follow later --&amp;gt;&lt;br /&gt;
	&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;	&amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt; &lt;br /&gt;
						 I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;		&amp;lt;!-- appears to be able to handle a nodemesh within a nodemesh :O --&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Scale&amp;gt;&amp;quot;decimal&amp;quot;&amp;lt;/Scale&amp;gt;  &lt;br /&gt;
	&amp;lt;!-- I am assuming next bit means no more than one of the following (could be none): &lt;br /&gt;
									  &amp;lt;choice&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
										  &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
									  &amp;lt;/choice&amp;gt;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;NodeAmbientLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeMesh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Node Name=&amp;quot;?string?&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BoneIndex=&amp;quot;int&amp;quot; ---- possibly the bone to which this node is attached to, not included if not attached to a bone?&lt;br /&gt;
		SoundMaterialType=&amp;quot;int&amp;quot; ---- are there SoundMaterialType definitions somewhere? if so I guess this is the index of one&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following(including duplicates), however I assume having more than one of the same type&lt;br /&gt;
		 would cause the compiler to go wtf? in some cases (like bounding box or translation). Definitions follow later in file&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCloth&amp;gt; &amp;lt;!-- has a shit load of attributes with no comments however I assume they all have to do with cloth simulation paramaters --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- NodeCloth Attributes:&lt;br /&gt;
		AttachmentResponseCoefficient=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		AttachmentTearFactor=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		BendingStiffness=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		CF_BENDING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_BENDING_ORTHO=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COLLISION_TWOWAY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COMDAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DISABLE_COLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_GRAVITY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_HARDWARE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_PRESSURE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_SELFCOLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_STATIC=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_TEARABLE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_VISUALIZATION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CollisionResponseCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DampingCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Density=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Friction=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		ID=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
		MeshGroupName=&amp;quot;string&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Pressure=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SleepLinearVelocity=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SolverIterations=&amp;quot;int&amp;quot;&lt;br /&gt;
		StretchingStiffness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		TearFactor=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Thickness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		WakeUpCounter=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:	GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot; --&amp;gt;&lt;br /&gt;
		&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt;	&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;ClothAttachments&amp;gt;&lt;br /&gt;
		  &amp;lt;ClothAttachment TearableAttachment=&amp;quot;int&amp;quot; TwoWayAttachment=&amp;quot;int&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;/ClothAttachment&amp;gt;&lt;br /&gt;
		&amp;lt;/ClothAttachments&amp;gt;&lt;br /&gt;
		&amp;lt;MeshGroup Name=&amp;quot;string&amp;quot;&amp;gt;	&amp;lt;!-- contains 1 or more Data elements, defined later in file --&amp;gt;&lt;br /&gt;
			&amp;lt;Data/&amp;gt;	&lt;br /&gt;
		&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
	&amp;lt;/NodeCloth&amp;gt;&lt;br /&gt;
	&amp;lt;NodeSnaptoPoint Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
			&amp;lt;Export/&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more of the following, defined later in file --&amp;gt;&lt;br /&gt;
            &amp;lt;Translation/&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation/&amp;gt;&lt;br /&gt;
          &amp;lt;/NodeSnapToPoint&amp;gt;&lt;br /&gt;
    &amp;lt;NodeAmbientLight/&amp;gt;	&amp;lt;!-- Optional Element defined later in file--&amp;gt; &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;&amp;lt;&amp;lt;WARNING: PROBABLY NOT A GOOD IDEA TO USE THIS ONE!!!&amp;gt;&amp;gt;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- IE it is a REALLY old version of NodeMesh --&amp;gt;&lt;br /&gt;
&amp;lt;MeshHierarchy Name=&amp;quot;string&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- These are Optional and apparently can have more than one if you want, defined lated in file --&amp;gt;&lt;br /&gt;
		&amp;lt;MeshHierarchy/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have either a NodeLightProbe or 0 or more NodeEmitters --&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/MeshHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeCrustHierarchy HookID=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; 		&amp;lt;!-- can have 0 or more Exports, defined later in file --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;	&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following (including duplicates apparently) --&amp;gt;&lt;br /&gt;
	  &amp;lt;Node/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeCrustHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Rotation&amp;gt; &lt;br /&gt;
  data &amp;lt;!-- data is a Quaternionf (ie: f f f f, or maybe f,f,f,f)--&amp;gt;&lt;br /&gt;
&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Export ControllerType=&amp;quot;string&amp;quot; ExportName=&amp;quot;?string?&amp;quot; TagName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Optional Attribute: MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA --&amp;gt;&lt;br /&gt;
&amp;lt;/Export&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- data is Vector4f min, Vector4f max (ie: f f f f,f f f f or maybe (f,f,f,f) (f,f,f,f) --&amp;gt;&lt;br /&gt;
&amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Translation&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot;-- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- I believe this is a Vector4f --&amp;gt;&lt;br /&gt;
&amp;lt;/Translation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CollisionObject&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	Kinematic=&amp;quot;boolean&amp;quot;&lt;br /&gt;
	Static=&amp;quot;boolean&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- can have 1 or more Shapes --&amp;gt;&lt;br /&gt;
	&amp;lt;Shape&amp;gt;&lt;br /&gt;
	&amp;lt;!-- nAttributes:&lt;br /&gt;
		AllowEmitterSpawn=&amp;quot;int&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Position --Vector4f but no required type??&lt;br /&gt;
		Rotation --Quaternionf but no required type??&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		DimX=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DimY=&amp;quot;double&amp;quot;  -- why double when other dims are decimal???&lt;br /&gt;
		DimZ=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_CREATURES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_ITEMS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_PLACEABLES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TERRAIN_WALL=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TRIGGERS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_WALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Height=&amp;quot;double&amp;quot;&lt;br /&gt;
		Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;!-- VertexData and IndexData are optional, however you must have both or neither. Can have more than one pair??? --&amp;gt;&lt;br /&gt;
		&amp;lt;VertexData length=&amp;quot;int&amp;quot;&amp;gt; &amp;lt;!-- I assume length is the number of verts or possibly the number of values given in data --&amp;gt;&lt;br /&gt;
		  data &amp;lt;!-- I assume this is a list of vert coords given in a list form (ie: x1,y1,z1,x2,y2,z2,...,xn,yn,zn maybe without commas) --&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexData&amp;gt;&lt;br /&gt;
		&amp;lt;IndexData&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
		  data		&amp;lt;!-- maybe its vertex indicies for triangles? --&amp;gt;&lt;br /&gt;
		&amp;lt;/IndexData&amp;gt;&lt;br /&gt;
	&amp;lt;/Shape&amp;gt;&lt;br /&gt;
&amp;lt;/CollisionObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodePointLight Color=&amp;quot;list4:decimal&amp;quot; IsStatic=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;decimal&amp;quot;&amp;gt; &amp;lt;!-- Color: string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	AffectsDomain=&amp;quot;int&amp;quot; -- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. &lt;br /&gt;
						   I don't know what these domains represent.&lt;br /&gt;
    IntensityPeriod=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityPeriodDelta=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityVariation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    UseVariationTint=&amp;quot;int&amp;quot;-- true/false, I believe &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- must have at least 1 of the following, can have more including duplicates apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodePointLight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeWeapontrail Duration=&amp;quot;decimal&amp;quot; MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot; SegmentLength=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- All MaterialObjects appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeWeaponTrail&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Attribute AttributeName=&amp;quot;string&amp;quot; SourceName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- AttributeName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- SourceName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
&amp;lt;/Attribute&amp;gt; &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeUsePoint Name=&amp;quot;string&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- All Name values seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Type values: &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front &lt;br /&gt;
		 and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeUsePoint&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, &lt;br /&gt;
	 and tools_bulb_ambient.mmh.xml. &lt;br /&gt;
	 &lt;br /&gt;
	 I would assume this type of node is used for calculating ambient light/shadows maybe like a radiosity pass or something.&lt;br /&gt;
	 Might make some interesting lighting changes if you fiddle with it but be careful! might break your lighting --&amp;gt;&lt;br /&gt;
&amp;lt;NodeAmbientLight Color=&amp;quot;List4:decimal&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;double&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;!-- Color: string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &lt;br /&gt;
		 &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools &lt;br /&gt;
		 Name: &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. &lt;br /&gt;
		 Radius: 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; (10000000?? big big radius!) for the two tools --&amp;gt;&lt;br /&gt;
    &amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
    &amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeAmbientLight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeEmitter&amp;gt; &amp;lt;!-- has a shit ton of attributes, all of which seem to pertain to particle emitter parameters (makes sense) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Acceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Birthrate=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		BirthrateInParticlesPerMeter=&amp;quot;int&amp;quot;&lt;br /&gt;
		BirthrateRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		EmitterType=&amp;quot;string&amp;quot;&lt;br /&gt;
		EnableParticleCollisions=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		GravityMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		IneritVelocityInsteadOfPosition=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		InitialRotationSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Life=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		LinkParticlesTogether=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MovementSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing movementspread X and movementspread Y &lt;br /&gt;
		Name=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		OrientationBehaviour=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticleInheritance=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticlesAffectedByWind=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		ParticlesFollowPath=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RotationalAcceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ScaleRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SpawnSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing spawnspread X and spawnspread Y&lt;br /&gt;
		UpdateOnlyWhenVisible=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;	&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot;- - string of four numbers, separated by spaces.&lt;br /&gt;
		AgeMapScaleXMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		AgeMapScaleYMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Bounciness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
		FlipbookType=&amp;quot;int&amp;quot; -- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  &lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1;&lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;&lt;br /&gt;
		FramesPerSecond=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InvMovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		KillParticleWhenTargetHit=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		LOD=&amp;quot;int&amp;quot; -- true/false maybe?? might be an index/identifier&lt;br /&gt;
		LifeRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		MeshParticleModel=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ObjectSpaceAcceleration=&amp;quot;int&amp;quot;&lt;br /&gt;
		PhysicsEmitter=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		PhysicsObjectSpawn=&amp;quot;int -- true/false ??&lt;br /&gt;
		RandomInitialRotation=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RandomStartFrame=&amp;quot;int&amp;quot; --true/false ??&lt;br /&gt;
		SpawnDirectionTracksTarget=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		SplatEmitter=&amp;quot;int&amp;quot; -- true/false ?? might be index of a SplatEmitter if they exist&lt;br /&gt;
		TargetAttraction=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
		TargetName=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		TargetRadius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		UVDistributionSize=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		UserParamName=&amp;quot;??????&amp;quot; -- (datatype=ECString) &amp;lt;&amp;lt; What is this?? -- ECString, not sure if there's any special formatting here &lt;br /&gt;
		VertexFormat=&amp;quot;string&amp;quot; -- are there VertexFormats defined somewhere?&amp;gt;&lt;br /&gt;
		WorldAxisAcceleration=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Requires 1 or more of the following, duplicates allowed apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional EmitterAttachments Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;EmitterAttachment Type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional EmitterAttachment Attributes:&lt;br /&gt;
			Name=&amp;quot;string&amp;quot;&lt;br /&gt;
			SpawnOnSurface=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			UseNormalForVelocity=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
	&amp;lt;/EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;SpawnVolume InvertSpawnVolumeNormals=&amp;quot;int&amp;quot; SpawnWithinVolume=&amp;quot;int&amp;quot; &amp;gt; &amp;lt;!-- both look to be true/false values --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SpawnVolume Attributes:&lt;br /&gt;
			Axis=&amp;quot;??????&amp;quot; -- no data type specified, assuming 3 numbers&lt;br /&gt;
			Length=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			MaxCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MinCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			SpanwVolumeType=&amp;quot;string&amp;quot; -- are there SpawnVolumeTypes defined somewhere???&lt;br /&gt;
			UseVolumeNormalsForDirection=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Data/&amp;gt;&amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
	&amp;lt;/SpawnVolumn&amp;gt;&lt;br /&gt;
    &amp;lt;SplatParticle&amp;gt; &amp;lt;!-- Optional - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SplatParticle Attributes:&lt;br /&gt;
			Height=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			Lifespan=&amp;quot;int&amp;quot;&lt;br /&gt;
			MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
			NumSamplesH=&amp;quot;int&amp;quot;&lt;br /&gt;
			NumSamplesW=&amp;quot;int&amp;quot;&lt;br /&gt;
			OrientationRangeRadians=&amp;quot;int&amp;quot;&lt;br /&gt;
			Width=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SplatParticle Attributes:&lt;br /&gt;
			AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot; -- four numbers separated by spaces&lt;br /&gt;
			FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
			FlipbookType=&amp;quot;string&amp;quot; -- apparently not same as above in NodeEmitter&lt;br /&gt;
			FramesPerSecond=&amp;quot;int&amp;quot;&lt;br /&gt;
			HoldLastFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			RandomStartFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
		&amp;lt;AgeMap/&amp;gt;&lt;br /&gt;
	&amp;lt;/SplatParticle&amp;gt;&lt;br /&gt;
	&amp;lt;AgeMap/&amp;gt; &amp;lt;!-- Not Optional - Required - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitter&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Data Semantic=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		ElementCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexType=&amp;quot;string&amp;quot;&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 	data&lt;br /&gt;
&amp;lt;/Data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterGroup MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;?string?&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt; &amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterGroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterTarget Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterTarget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeLightProbe Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- following are optional elements, they are paired, can't have one without the other --&amp;gt;&lt;br /&gt;
	&amp;lt;ReflectionMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;IrradianceMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/NodeLightProbe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AgeMap Count=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- contains one or more AgeMapElements --&amp;gt;&lt;br /&gt;
      &amp;lt;AgeMapElement Alpha=&amp;quot;decimal&amp;quot; Color=&amp;quot;List4:decimal&amp;quot; PercentLifeElapsed=&amp;quot;decimal&amp;quot; XScale=&amp;quot;decimal&amp;quot; YScale=&amp;quot;decimal&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- Optional AgeMapElement Attributes: RotationSpeedMultiplier=&amp;quot;decimal&amp;quot; --&amp;gt;&lt;br /&gt;
 &amp;lt;/AgeMap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=Art&amp;diff=8242</id>
		<title>Art</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=Art&amp;diff=8242"/>
				<updated>2009-11-26T00:35:32Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Level layouts ==&lt;br /&gt;
&lt;br /&gt;
*[[Level editor]]&lt;br /&gt;
*[[Model]]&lt;br /&gt;
**[[Model list]] &amp;lt;small&amp;gt;(with screenshots)&amp;lt;/small&amp;gt;&lt;br /&gt;
**[[Vegetation]] &amp;lt;small&amp;gt;(with screenshots)&amp;lt;/small&amp;gt;&lt;br /&gt;
*[[Lighting]]&lt;br /&gt;
*[[Terrain mesh]]&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
&lt;br /&gt;
Models are defined using the following two file formats:&lt;br /&gt;
[[MMH]] and [[MSH]]&lt;br /&gt;
&lt;br /&gt;
Custom model import is possible by placing the MMH and all custom files referenced by the MMH into your module's override folder. These files would include any custom [[MAO]] files as well as the MSH and PHY files.&lt;br /&gt;
&lt;br /&gt;
=== Creature models ===&lt;br /&gt;
&lt;br /&gt;
*[[Morph]]&lt;br /&gt;
*[[APR_base.xls]] [[2DA]]&lt;br /&gt;
&lt;br /&gt;
=== Props and placeables ===&lt;br /&gt;
&lt;br /&gt;
*[[placeables.xls]]&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
*[[ANI]]&lt;br /&gt;
&lt;br /&gt;
== Visual effects ==&lt;br /&gt;
&lt;br /&gt;
*[[VFX]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=List_of_file_types&amp;diff=8155</id>
		<title>List of file types</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=List_of_file_types&amp;diff=8155"/>
				<updated>2009-11-24T23:42:30Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added MAO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following file types are in formats created by BioWare specifically for use within their games:&lt;br /&gt;
*.[[4PC]] — Custom 16-bit RGBA texture format &lt;br /&gt;
*.[[ANB]] —  Animation blend&lt;br /&gt;
*.[[ANI]] —  Animation sequence: holds single animation sequence&lt;br /&gt;
*.[[APL]] — Artist Placeable File &lt;br /&gt;
*.[[ARE]] —  Area information: holds designer data about an area&lt;br /&gt;
*.[[ARL]] —  Area Layout File&lt;br /&gt;
*.[[BIC]] — Creature File &lt;br /&gt;
*.[[BIF]] — BIFF file &lt;br /&gt;
*.[[BTC]] — BioWare Template for Creatures &lt;br /&gt;
*.[[BTD]] — BioWare Template for Doors &lt;br /&gt;
*.[[BTE]] — BioWare Template for Encounters &lt;br /&gt;
*.[[BTG]] — BioWare Template for Random Item Generator &lt;br /&gt;
*.[[BTM]] — BioWare Template for Market/Merchants (Stores) &lt;br /&gt;
*.[[BTP]] — BioWare Template for Placeable Objects &lt;br /&gt;
*.[[BTS]] — BioWare Template for Sounds &lt;br /&gt;
*.[[BTT]] — BioWare Template for Triggers &lt;br /&gt;
*.[[CCS]] — Conditional Compiled Script &lt;br /&gt;
*.[[CIF]] —  Campaign information&lt;br /&gt;
*.[[CNS]] —  Client scripting source&lt;br /&gt;
*.[[CSS]] — Conditional Source Script &lt;br /&gt;
*.[[CUB]] —  Cutscene blend tree&lt;br /&gt;
*.[[CUT]] —  Cutscene&lt;br /&gt;
*.[[DADBDATA]] —  Compressed file used by the [[Builder to builder]] process &lt;br /&gt;
*.[[DAS]] — Dragon Age Save game file&lt;br /&gt;
*.[[DAT]] —  Internal manifest data file&lt;br /&gt;
*.[[DAZIP]] —  Used to deliver new content to the game.  Created by the toolset and consumed by DAUpdater for use by the game&lt;br /&gt;
*.[[DFT]] — Used to define default values &lt;br /&gt;
*.[[DLB]] —  Dialog blend tree&lt;br /&gt;
*.[[DLG]] —  Dialog&lt;br /&gt;
*.[[DWK]] — Door walkable mesh &lt;br /&gt;
*.[[ERF]] —  Encapsulated Resource File for packaged resources&lt;br /&gt;
*.[[EVT]] —  Animation event file&lt;br /&gt;
*.[[FAC]] — Faction file &lt;br /&gt;
*.[[FFX]] —  Frame buffer effect&lt;br /&gt;
*.[[FNT]] —  Font file&lt;br /&gt;
*.[[FSM]] — Finite State Machine file &lt;br /&gt;
*.[[GAD]] —  GOB Animation Data&lt;br /&gt;
*.[[GDA]] —  Game Data Array, binarized two dimensional array data file&lt;br /&gt;
*.[[GFF]] —  Generic File Format:  Used for almost all data, has become much faster for binary data storage, but has lost flexibility of earlier implementations.&lt;br /&gt;
*.[[GIC]] — Game Instance Comments &lt;br /&gt;
*.[[GIT]] — Game Instance File &lt;br /&gt;
*.[[GUI]] — Graphical User Interface File. &lt;br /&gt;
*.[[HAK]] — HAK file &lt;br /&gt;
*.[[IFO]] — Module Info File &lt;br /&gt;
*.[[INI]] — Standard Windows options file &lt;br /&gt;
*.[[ITP]] — Item Template Palette &lt;br /&gt;
*.[[ITX]] —  Internal texture&lt;br /&gt;
*.[[JRL]] — Journal file &lt;br /&gt;
*.[[KEY]] — Key file &lt;br /&gt;
*.[[LDF]] —  Language definition file:  Used by the scripting engines&lt;br /&gt;
*.[[LST]] —  Area list&lt;br /&gt;
*.[[LTR]] — Letter combo probability info for name generation &lt;br /&gt;
*.[[LVL]] —  Level art source file&lt;br /&gt;
*.[[MAL]] —  Material Library file, stores a grouping of material object files&lt;br /&gt;
*.[[MAO]] —  Material Object file, stores which textures are passed to a material&lt;br /&gt;
*.[[MAT]] —  Material file, stores properties of a material&lt;br /&gt;
*.[[MDL]] — Aurora Model &lt;br /&gt;
*.[[META]]/[[MET]] —  Meta information:  Extra information about the associated resource&lt;br /&gt;
*.[[MMH]] —  Model Mesh Hierarchy&lt;br /&gt;
*.[[MOR]] —  Head Morph File (compiled)&lt;br /&gt;
*.[[MRH]] —  Head Morph File (working/xml)&lt;br /&gt;
*.[[MSH]] —  Mesh file: Contains all vertex, polygon and normal data&lt;br /&gt;
*.[[MVE]] —  &lt;br /&gt;
*.[[NCC]] — Compiled Client Script&lt;br /&gt;
*.[[NCS]] — Compiled Server Script&lt;br /&gt;
*.[[NCS]] — Neverwinter Compiled Script &lt;br /&gt;
*.[[NDB]] — Server Script Debug Information&lt;br /&gt;
*.[[NDB]] — NWScript Debug Format Files. &lt;br /&gt;
*.[[NDC]] — Client Script Debug Information&lt;br /&gt;
*.[[NSC]] — Client Side Script&lt;br /&gt;
*.[[NSS]] — Server Side Script&lt;br /&gt;
*.[[NSS]] — Neverwinter Source Script &lt;br /&gt;
*.[[PHY]] — Physics file, contains Novodex collision info&lt;br /&gt;
*.[[PLO]] — Plot Information File&lt;br /&gt;
*.[[PLT]] — Packed Layered Texture &lt;br /&gt;
*.[[PTM]] — Plot Manager file &lt;br /&gt;
*.[[PTT]] — Plot Template file &lt;br /&gt;
*.[[PWK]] —  Pathfinding Walkable,  Pathfinding data file&lt;br /&gt;
*.[[PWK]] — Placeable object walkable mesh &lt;br /&gt;
*.[[RES]] — Generic type &lt;br /&gt;
*.[[RIM]] —  Resource In Memory file: used by engine at runtime for fast data retrieval in native memory format&lt;br /&gt;
*.[[RML]] —  Room Layout File&lt;br /&gt;
*.[[SAV]] — Neverwinter savegame file &lt;br /&gt;
*.[[SSF]] — sound set file &lt;br /&gt;
*.[[STA]] —  Animation State File&lt;br /&gt;
*.[[STG]] —  Cutscene Stage File&lt;br /&gt;
*.[[SUB]] —  Graphics Submission&lt;br /&gt;
*.[[TEX]] — Aurora Texture &lt;br /&gt;
*.[[TLK]] — Dialog Tlk File &lt;br /&gt;
*.[[TNT]] —  Tint file&lt;br /&gt;
*.[[TOC]] —  Table of Contents:  Used to generate RIM files&lt;br /&gt;
*.[[TXI]] — Extra Texture Info &lt;br /&gt;
*.[[UTC]] — User Template for Creatures &lt;br /&gt;
*.[[UTD]] — User Template for Doors &lt;br /&gt;
*.[[UTE]] — User Template for Encounters &lt;br /&gt;
*.[[UTG]] — User Template for Random Item Generator &lt;br /&gt;
*.[[UTI]] — User Template for Items &lt;br /&gt;
*.[[UTM]] — User Template for Market/Merchants (Stores) &lt;br /&gt;
*.[[UTP]] — User Template for Placeable Objects &lt;br /&gt;
*.[[UTS]] — User Template for Sounds &lt;br /&gt;
*.[[UTT]] — User Template for Triggers &lt;br /&gt;
*.[[UTW]] — waypoint template &lt;br /&gt;
*.[[WFX]] — Wave extra info &lt;br /&gt;
*.[[WOK]] — Walk Mesh &lt;br /&gt;
&lt;br /&gt;
==Third-party file types==&lt;br /&gt;
&lt;br /&gt;
The following file types are in formats created by third parties that may see some usage:&lt;br /&gt;
&lt;br /&gt;
*.AS —  Action Script —  Used by the ScaleForm GUI package&lt;br /&gt;
*.BIK — BINK movie files &lt;br /&gt;
*.BMP — Bitmap file &lt;br /&gt;
*.CHM —  Windows Help File —  Used for toolset help, primarily scripting help&lt;br /&gt;
*.CUR —  Windows Cursor File&lt;br /&gt;
*.DDS —  Direct Draw Surface file —  This is a Direct X graphics file format, it can be compressed, hold mipmaps and Alpha&lt;br /&gt;
*.DLL —  Windows dynamic link library&lt;br /&gt;
*.EXE —  Windows Executable&lt;br /&gt;
*.FDP —  FMOD project file&lt;br /&gt;
*.FEV/.FEV.SEQ — FMOD file created by sound design tool&lt;br /&gt;
*.FLA —  Flash file&lt;br /&gt;
*.FSB/.FSB.CACHE/.FSB.SEQ —  Fmod Sound Bank file&lt;br /&gt;
*.FXA — FaceFX Actor file (eg. &amp;quot;Human.fxa&amp;quot;) containing bone definitions. Created using a Max plug-in. Used by the game.  &lt;br /&gt;
*.FXR — Metadata associated with FXA. Not used by the game.  &lt;br /&gt;
*.FXS — Metadata associated with FXA. Not used by the game.  &lt;br /&gt;
*.FXE — Facial animation file (eg. &amp;quot;46634_m.fxe&amp;quot;). Used by the game.  &lt;br /&gt;
*.FXM — Metadata associated with the FXE for use in Studio (audio, phoneme info). Not used by the game.  &lt;br /&gt;
*.FXO —  Pre-Compiled Shader file, can include support for fallback rendering modes&lt;br /&gt;
*.GFX —  Exported ScaleForm Movie —  Used for animated UI&lt;br /&gt;
*.HLSL —  High Level Shader Language Source file&lt;br /&gt;
*.INI —  Windows settings file&lt;br /&gt;
*.JPG —  Image file —  Used mostly for thumbnails for models.  Not used in game.&lt;br /&gt;
*.JSFL —  ScaleForm file&lt;br /&gt;
*.MP3 —  Sound file&lt;br /&gt;
*.MPG — MPG Video File &lt;br /&gt;
*.SPT —  SpeedTree File&lt;br /&gt;
*.SWF —  Flash File&lt;br /&gt;
*.TGA —  Primary game source texture file&lt;br /&gt;
*.TTF —  TrueType Font&lt;br /&gt;
*.TXT —  Text file —  Primarily used for voice over&lt;br /&gt;
*.WAV —  Wave File, generic windows sound file&lt;br /&gt;
*.XDS —  Compressed Direct X images file format&lt;br /&gt;
*.XLS —  Excel file&lt;br /&gt;
&lt;br /&gt;
[[Category:File types|*]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAT&amp;diff=8125</id>
		<title>MAT</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAT&amp;diff=8125"/>
				<updated>2009-11-24T03:12:45Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating a mat file is not required as you should be able to find one, already defined, which suits your needs. &lt;br /&gt;
&lt;br /&gt;
A material definition tells the renderer exactly what to do with the textures passed to it. To be overly simplistic, it says &amp;quot;Mister graphics card, here is a texture, print it on the geometry like so. Here is another one, do this and that with it.&amp;quot; In each material there is a hierarchy of sets of instructions. If a graphics card can not do a certain task, the material will go down its list until it can find a set of instructions the card CAN do and pass them that. If the material was not given a certain piece of information, say a texture or a set of texture coordinates, it will go down the list until it finds a set of instructions which need only what was given. In most (possible all) cases, required textures have a specified default texture which is used when no appropriate texture is specified in an [[MAO]] file.&lt;br /&gt;
&lt;br /&gt;
In each material, Parameters of the type Texture define which textures are used when rendering that material. If you open up a material you will find lines like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tLightmap&amp;quot; SamplerName = &amp;quot;smpLightmap&amp;quot; Default = &amp;quot;Default_black&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tDiffuse&amp;quot; SamplerName = &amp;quot;smpDecal&amp;quot; Default = &amp;quot;Default_Missing&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
These are used with texture definitions in [[MAO]] files do determine which texture file is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In each material definition there are different sets of instructions defined within Semantic tags. In an [[MAO]] file, the default semantic definition tells the material which set of instructions to start trying to use.&lt;br /&gt;
&lt;br /&gt;
The default material definition used in the material editor is prop.mat. The highest level of rendering has these required streams of data from the model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means it needs vertex coordinates, normals, bi-tangents,tangents and uv coodinates. The required textures, if not provided have default settings, however these streams can not have default settings. If the model were missing any one of these streams of data, the material would default to a lower set of instructions. Mind you, I don't think a model could compile without those pieces of information but that isn't the point.&lt;br /&gt;
If you were to look in a different material definition, say static.mat, you would find that these streams are required:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that it requires two sets of texture (uv) coordinates. In fact, all levels except the very lowest set of instructions require two sets of uv coordinates, meaning that if there was only one set, it would default to this basic, do almost nothing set of instructions.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAT&amp;diff=8124</id>
		<title>MAT</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAT&amp;diff=8124"/>
				<updated>2009-11-24T03:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating a mat file is not required as you should be able to find one, already defined, which suits your needs. &lt;br /&gt;
&lt;br /&gt;
A material definition tells the renderer exactly what to do with the textures passed to it. To be overly simplistic, it basically says &amp;quot;Mister graphics card, here is a texture, print it on the geometry like so. Here is another one, do this and that with it.&amp;quot; In each material there is a hierarchy of sets of instructions. If a graphics card can not do a certain task, the material will go down its list until it can find a set of instructions the card CAN do and pass them that. If the material was not given a certain piece of information, say a texture or a set of texture coordinates, it will go down the list until it finds a set of instructions which need only what was given. In most (possible all) cases, required textures have a specified default texture which is used when no appropriate texture is specified in an [[MAO]] file.&lt;br /&gt;
&lt;br /&gt;
In each material, Parameters of the type Texture define which type of textures are used when rendering that material. If you open up a material you will find lines like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tLightmap&amp;quot; SamplerName = &amp;quot;smpLightmap&amp;quot; Default = &amp;quot;Default_black&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tDiffuse&amp;quot; SamplerName = &amp;quot;smpDecal&amp;quot; Default = &amp;quot;Default_Missing&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In each material definition there are different sets of instructions defined within Semantic tags. In an [[MAO]] file, the default semantic definition tells the material which set of instructions to start trying to use.&lt;br /&gt;
&lt;br /&gt;
The default material definition used in the material editor is prop.mat. The highest level of rendering has these required streams of data from the model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This means it needs vertex coordinates, normals, bi-tangents,tangents and uv coodinates. The required textures, if not provided have default settings, however these streams can not have default settings. If the model were missing any one of these streams of data, the material would default to a lower set of instructions. Mind you, I don't think a model could compile without those pieces of information but that isn't the point.&lt;br /&gt;
If you were to look in a different material definition, say static.mat, you would find that these streams are required:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that it requires two sets of texture (uv) coordinates. In fact, all levels except the very lowest set of instructions require two sets of uv coordinates, meaning that if there was only one set, it would default to this basic, do almost nothing set of instructions.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAT&amp;diff=8123</id>
		<title>MAT</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAT&amp;diff=8123"/>
				<updated>2009-11-24T03:06:28Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: made page with what I have guessed about a mat file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating a mat file is not required as you should be able to find one, already defined, which suits your needs. &lt;br /&gt;
&lt;br /&gt;
A material definition tells the renderer exactly what to do with the textures passed to it. To be overly simplistic, it basically says &amp;quot;Mister graphics card, here is a texture, print it on the geometry like so. Here is another one, do this and that with it.&amp;quot; In each material there is a hierarchy of sets of instructions. If a graphics card can not do a certain task, the material will go down its list until it can find a set of instructions the card CAN do and pass them that. If the material was not given a certain piece of information, say a texture or a set of texture coordinates, it will go down the list until it finds a set of instructions which need only what was given. In most (possible all) cases, required textures have a specified default texture which is used when no appropriate texture is specified in an [[MAO]] file.&lt;br /&gt;
&lt;br /&gt;
In each material, Parameters of the type Texture define which type of textures are used when rendering that material. If you open up a material you will find lines like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tLightmap&amp;quot; SamplerName = &amp;quot;smpLightmap&amp;quot; Default = &amp;quot;Default_black&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;Parameter Type = &amp;quot;Texture&amp;quot; Name = &amp;quot;mml_tDiffuse&amp;quot; SamplerName = &amp;quot;smpDecal&amp;quot; Default = &amp;quot;Default_Missing&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In each material definition there are different sets of instructions defined within Semantic tags. In an [[MAO]] file, the default semantic definition tells the material which set of instructions to start trying to use.&lt;br /&gt;
&lt;br /&gt;
The default material definition used in the material editor is prop.mat. The highest level of rendering has these required streams of data from the model:&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This means it needs vertex coordinates, normals, bi-tangents,tangents and uv coodinates. The required textures, if not provided have default settings, however these streams can not have default settings. If the model were missing any one of these streams of data, the material would default to a lower set of instructions. Mind you, I don't think a model could compile without those pieces of information but that isn't the point.&lt;br /&gt;
If you were to look in a different material definition, say static.mat, you would find that these streams are required:&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;POSITION&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;NORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TEXCOORD1&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;BINORMAL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;RequiredStreamData Name = &amp;quot;TANGENT&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that it requires two sets of texture (uv) coordinates. In fact, all levels except the very lowest set of instructions require two sets of uv coordinates, meaning that if there was only one set, it would default to this basic, do almost nothing set of instructions.&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAO&amp;diff=8122</id>
		<title>MAO</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAO&amp;diff=8122"/>
				<updated>2009-11-24T02:52:40Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* MAO Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Each model uses an mao to define what its surface will look like. If you want to change an object's texture, this is the file to edit. Within are references to texture files which are used when drawing the model, as well as a reference to the material to use to render.&lt;br /&gt;
&lt;br /&gt;
== MAO Example ==&lt;br /&gt;
This is an example of a basic MAO file (plc_scarecrow01.mao).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Exported by Material Editor --&amp;gt;&amp;lt;!-- dc:source=file:///A:/DragonAge/SourceControl/ArtContent/Art/Levels/Materials/OutsourcedProps04.matproj --&amp;gt;&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt;&lt;br /&gt;
  &amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tNormalMap&amp;quot; ResName=&amp;quot;p_scarecrow_01n.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tSpecularMask&amp;quot; ResName=&amp;quot;p_scarecrow_01s.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
&amp;lt;/MaterialObject&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt; - This line assigns a name to the mao. This should be a unique identifier as this is the name required to reference this mao.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt; - This is the line which tells the mao which material it should use to render its textures with. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt; - This line tells the material referenced above which semantic it should use when rendering. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt; - This line tells the material which texture to use as the diffuse texture. To be more general, it tells the material to use the texture file referenced by ResName, in this case p_scarecrow_01d.dds, where ever it uses the parameter mml_tDiffuse. This is the same for the rest of the lines in the mao file.&lt;br /&gt;
&lt;br /&gt;
See [[MAT]] for more information on materials.&lt;br /&gt;
&lt;br /&gt;
To view more mao files, extract them from materialobjects.erf and open them in a text editor. They are only simple xml files and require nothing more to read or edit.&lt;br /&gt;
&lt;br /&gt;
== MAO XML Schema ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;text/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;DefaultSemantic&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Float&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Material&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SoundType&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;RequiresID&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4f&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4fArray&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAO&amp;diff=8121</id>
		<title>MAO</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAO&amp;diff=8121"/>
				<updated>2009-11-24T02:51:44Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* MAO Uses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Each model uses an mao to define what its surface will look like. If you want to change an object's texture, this is the file to edit. Within are references to texture files which are used when drawing the model, as well as a reference to the material to use to render.&lt;br /&gt;
&lt;br /&gt;
== MAO Example ==&lt;br /&gt;
This is an example of a basic MAO file (plc_scarecrow01.mao).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Exported by Material Editor --&amp;gt;&amp;lt;!-- dc:source=file:///A:/DragonAge/SourceControl/ArtContent/Art/Levels/Materials/OutsourcedProps04.matproj --&amp;gt;&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt;&lt;br /&gt;
  &amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tNormalMap&amp;quot; ResName=&amp;quot;p_scarecrow_01n.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tSpecularMask&amp;quot; ResName=&amp;quot;p_scarecrow_01s.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
&amp;lt;/MaterialObject&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt; - This line assigns a name to the mao. This should be a unique identifier as this is the name required to reference this mao.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt; - This is the line which tells the mao which material it should use to render its textures with. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt; - This line tells the material referenced above which semantic it should use when rendering. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt; - This line tells the material which texture to use as the diffuse texture. To be more general, it tells the material to use the texture file referenced by ResName, in this case p_scarecrow_01d.dds, where ever it uses the parameter mml_tDiffuse. This is the same for the rest of the lines in the mao file.&lt;br /&gt;
&lt;br /&gt;
See [[MAL]] for more information on materials.&lt;br /&gt;
&lt;br /&gt;
To view more mao files, extract them from materialobjects.erf and open them in a text editor. They are only simple xml files and require nothing more to read or edit.&lt;br /&gt;
&lt;br /&gt;
== MAO XML Schema ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;text/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;DefaultSemantic&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Float&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Material&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SoundType&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;RequiresID&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4f&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4fArray&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MAO&amp;diff=8120</id>
		<title>MAO</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MAO&amp;diff=8120"/>
				<updated>2009-11-24T02:51:27Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: Added an explaination of the structure of a basic mao&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== MAO Uses ==&lt;br /&gt;
Each model uses an mao to define what its surface will look like. If you want to change an object's texture, this is the file to edit. Within are references to texture files which are used when drawing the model, as well as a reference to the material to use to render.&lt;br /&gt;
&lt;br /&gt;
== MAO Example ==&lt;br /&gt;
This is an example of a basic MAO file (plc_scarecrow01.mao).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Exported by Material Editor --&amp;gt;&amp;lt;!-- dc:source=file:///A:/DragonAge/SourceControl/ArtContent/Art/Levels/Materials/OutsourcedProps04.matproj --&amp;gt;&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt;&lt;br /&gt;
  &amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tNormalMap&amp;quot; ResName=&amp;quot;p_scarecrow_01n.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
  &amp;lt;Texture Name=&amp;quot;mml_tSpecularMask&amp;quot; ResName=&amp;quot;p_scarecrow_01s.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt;&lt;br /&gt;
&amp;lt;/MaterialObject&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MaterialObject Name=&amp;quot;Plc_Scarecrow01&amp;quot;&amp;gt; - This line assigns a name to the mao. This should be a unique identifier as this is the name required to reference this mao.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Material Name=&amp;quot;Prop.mat&amp;quot;&amp;gt;&amp;lt;/Material&amp;gt; - This is the line which tells the mao which material it should use to render its textures with. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;DefaultSemantic Name=&amp;quot;Blend&amp;quot;&amp;gt;&amp;lt;/DefaultSemantic&amp;gt; - This line tells the material referenced above which semantic it should use when rendering. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;Texture Name=&amp;quot;mml_tDiffuse&amp;quot; ResName=&amp;quot;p_scarecrow_01d.dds&amp;quot;&amp;gt;&amp;lt;/Texture&amp;gt; - This line tells the material which texture to use as the diffuse texture. To be more general, it tells the material to use the texture file referenced by ResName, in this case p_scarecrow_01d.dds, where ever it uses the parameter mml_tDiffuse. This is the same for the rest of the lines in the mao file.&lt;br /&gt;
&lt;br /&gt;
See [[MAL]] for more information on materials.&lt;br /&gt;
&lt;br /&gt;
To view more mao files, extract them from materialobjects.erf and open them in a text editor. They are only simple xml files and require nothing more to read or edit.&lt;br /&gt;
&lt;br /&gt;
== MAO XML Schema ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;text/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;DefaultSemantic&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Float&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Material&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SoundType&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;RequiresID&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4f&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Vector4fArray&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;value&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;texture&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=8001</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=8001"/>
				<updated>2009-11-20T03:17:08Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Example .MSH.XML file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be required for being useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- I believe each separate data element contains data of the type specified in Semantic &lt;br /&gt;
			--dont know what default behaviour is when Semantic is not specified--&lt;br /&gt;
		   for instance, first will hold all vert data, second hold normals, third hold triangle indecies etc&lt;br /&gt;
	   --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
		        Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
					 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=8000</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=8000"/>
				<updated>2009-11-20T03:16:06Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}} - what mmdtogff means or does is unknowns besides it is required to compile msh.xml files.&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be required for being useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- I believe each separate data element contains data of the type specified in Semantic &lt;br /&gt;
			--dont know what default behaviour is when Semantic is not specified--&lt;br /&gt;
		   for instance, first will hold all vert data, second hold normals, third hold triangle indecies etc&lt;br /&gt;
	   --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;,      &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
		        Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
							 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=7626</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=7626"/>
				<updated>2009-11-13T01:29:27Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: /* Example .MSH.XML file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be required for being useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- I believe each separate data element contains data of the type specified in Semantic &lt;br /&gt;
			--dont know what default behaviour is when Semantic is not specified--&lt;br /&gt;
		   for instance, first will hold all vert data, second hold normals, third hold triangle indecies etc&lt;br /&gt;
	   --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;,      &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
		        Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
							 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &lt;br /&gt;
                          &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MSH&amp;diff=7625</id>
		<title>MSH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MSH&amp;diff=7625"/>
				<updated>2009-11-13T01:22:35Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added example XML based only on provided schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MSH''' (mesh) files define a 3D mesh, to be referenced by [[MMH]] files when creating models in the game.&lt;br /&gt;
&lt;br /&gt;
MSH files are defined using XML source files with the extension .msh.xml. These files are run through the GraphicsProcessorMSH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce binary files that can be used by the game directly.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMSH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
:-mmdtogff{{undocumented}}&lt;br /&gt;
&lt;br /&gt;
== msh.xml schema in RELAX NG 1.0 format ==&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html Relax NG Specs] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/ jing-trang].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelMeshData&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Version&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Optimize&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;all&amp;quot;, &amp;quot;none&amp;quot;, or &amp;quot;indices&amp;quot; --&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;optimize&amp;quot;&amp;gt; &amp;lt;!-- Appears to be the same as Optimize, apparently both capitalizations are allowed--&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is not &amp;quot;indices&amp;quot;, this count gives the number of tuples in the CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- If semantic is &amp;quot;indices&amp;quot;, this count gives the number of integers in the data's CDATA. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot; --&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- indicates how many elements and of what type are in the tuples in the CDATA. Values are &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) --&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt; &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Constants ==&lt;br /&gt;
&lt;br /&gt;
Type enum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// 1 float &lt;br /&gt;
            DECLTYPE_FLOAT1 = 0,&lt;br /&gt;
            /// 2 floats&lt;br /&gt;
            DECLTYPE_FLOAT2 = 1,&lt;br /&gt;
            /// 3 floats&lt;br /&gt;
            DECLTYPE_FLOAT3 = 2,&lt;br /&gt;
            /// 4 floats&lt;br /&gt;
            DECLTYPE_FLOAT4 = 3,&lt;br /&gt;
            /// 4-byte color&lt;br /&gt;
            DECLTYPE_COLOR = 4,&lt;br /&gt;
            /// 4 unsigned bytes&lt;br /&gt;
            DECLTYPE_UBYTE4 = 5,&lt;br /&gt;
            /// 2 shorts&lt;br /&gt;
            DECLTYPE_SHORT2 = 6,&lt;br /&gt;
            /// 4 shorts&lt;br /&gt;
            DECLTYPE_SHORT4 = 7,&lt;br /&gt;
            /// 4 normalized bytes&lt;br /&gt;
            DECLTYPE_UBYTE4N = 8,&lt;br /&gt;
            /// 2 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT2N = 9,&lt;br /&gt;
            /// 4 normalized shorts&lt;br /&gt;
            DECLTYPE_SHORT4N = 10,&lt;br /&gt;
            /// 2 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT2N = 11,&lt;br /&gt;
            /// 4 normalized unsigned shorts&lt;br /&gt;
            DECLTYPE_USHORT4N = 12,&lt;br /&gt;
            /// 3d unsigned 10/10/10 format&lt;br /&gt;
            DECLTYPE_UDEC3 = 13,&lt;br /&gt;
            /// 3d unsigned 10/10/10 normalized&lt;br /&gt;
            DECLTYPE_DEC3N = 14,&lt;br /&gt;
            /// 2 16-bit floats&lt;br /&gt;
            DECLTYPE_FLOAT16_2 = 15,&lt;br /&gt;
            /// 4 16-bit unsigned floats&lt;br /&gt;
            DECLTYPE_FLOAT16_4 = 16,&lt;br /&gt;
            DECLTYPE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usage enum:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            /// Position&lt;br /&gt;
            DECLUSAGE_POSITION = 0,&lt;br /&gt;
            /// Blend weights&lt;br /&gt;
            DECLUSAGE_BLENDWEIGHT = 1,&lt;br /&gt;
            /// Blend indices&lt;br /&gt;
            DECLUSAGE_BLENDINDICES = 2,&lt;br /&gt;
            /// Normal&lt;br /&gt;
            DECLUSAGE_NORMAL = 3,&lt;br /&gt;
            /// Point Size &lt;br /&gt;
            DECLUSAGE_PSIZE = 4,&lt;br /&gt;
            /// Texture coordinates&lt;br /&gt;
            DECLUSAGE_TEXCOORD = 5,&lt;br /&gt;
            /// Tangent vector&lt;br /&gt;
            DECLUSAGE_TANGENT = 6,&lt;br /&gt;
            /// binormal vector&lt;br /&gt;
            DECLUSAGE_BINORMAL = 7,&lt;br /&gt;
            /// tessellation factor&lt;br /&gt;
            DECLUSAGE_TESSFACTOR = 8,&lt;br /&gt;
            /// PositionT &lt;br /&gt;
            DECLUSAGE_POSITIONT = 9,&lt;br /&gt;
            /// color channel&lt;br /&gt;
            DECLUSAGE_COLOR = 10,&lt;br /&gt;
            /// fog value&lt;br /&gt;
            DECLUSAGE_FOG = 11,&lt;br /&gt;
            /// depth &lt;br /&gt;
            DECLUSAGE_DEPTH = 12,&lt;br /&gt;
            /// sample&lt;br /&gt;
            DECLUSAGE_SAMPLE = 13,&lt;br /&gt;
            // error/other/unset&lt;br /&gt;
            DECLUSAGE_UNUSED = 0xffffffff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MSH.XML file ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ModelMeshData name=&amp;quot;string&amp;quot; Version=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- must have 0 or more of these, obviously having at least 1 would be required for being useful --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshGroup name=&amp;quot;string&amp;quot;&amp;gt;&amp;lt;!-- optional attributes: Optimize=&amp;quot;string&amp;quot;&amp;lt;&amp;lt; all,none, or indicies --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- must have at least 1 of these --&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- I believe each separate data element contains data of the type specified in Semantic &lt;br /&gt;
			--dont know what default behaviour is when Semantic is not specified--&lt;br /&gt;
		   for instance, first will hold all vert data, second hold normals, third hold triangle indecies etc&lt;br /&gt;
	   --&amp;gt;&lt;br /&gt;
		&amp;lt;Data&amp;gt;&lt;br /&gt;
		&amp;lt;!-- optional attributes:&lt;br /&gt;
			ElementCount=&amp;quot;int&amp;quot;  -- If semantic is not &amp;quot;indices&amp;quot;, this is the number of tuples in the CDATA.&lt;br /&gt;
			IndexCount=&amp;quot;int&amp;quot; -- If semantic is &amp;quot;indices&amp;quot;, this is the number of integers in the data's CDATA.&lt;br /&gt;
			IndexType=&amp;quot;string&amp;quot;&amp;gt; -- Every example of this has the value &amp;quot;Index32&amp;quot;, without exception. &lt;br /&gt;
			Semantic=&amp;quot;string&amp;quot; -- &amp;quot;POSITION&amp;quot;, &amp;quot;Indices&amp;quot;, &amp;quot;TEXCOORD&amp;quot;, &amp;quot;TANGENT&amp;quot;, &amp;quot;BINORMAL&amp;quot;, &amp;quot;NORMAL&amp;quot;, &amp;quot;BLENDWEIGHT&amp;quot;, &amp;quot;BLENDINDICES&amp;quot;&lt;br /&gt;
		    Type=&amp;quot;string&amp;quot; -- indicates how many elements and of what type are in the tuples in the CDATA. &lt;br /&gt;
							 &amp;quot;Float4&amp;quot; (four floating point numbers), &amp;quot;Float2&amp;quot; (two floating point numbers), &amp;quot;Short4&amp;quot; (four integers) &lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		data &amp;lt;!-- contains CDATA with tuples of numbers. For example, a Float2 type MSH had this: &amp;lt;![CDATA[0.195959 0.999994 0.195959 0.266686 0 0.266683 0 1. 0.999999 0.999994 1. 0.166668 ]]&amp;gt; --&amp;gt;&lt;br /&gt;
		&amp;lt;/Data&amp;gt;&lt;br /&gt;
	&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
&amp;lt;/ModelMeshData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	<entry>
		<id>http://datoolset.net/mw/index.php?title=MMH&amp;diff=7624</id>
		<title>MMH</title>
		<link rel="alternate" type="text/html" href="http://datoolset.net/mw/index.php?title=MMH&amp;diff=7624"/>
				<updated>2009-11-13T01:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;ChewyGumball: added example XML based only on provided schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MMH''' (&amp;quot;Model Mesh Heirarchy&amp;quot;) files are used to describe a wide variety of physical objects that appear in Dragon Age levels. It includes props, visual effects, creature models, weapon models, and so forth.&lt;br /&gt;
&lt;br /&gt;
MMH files are defined by XML files named with the .mmh.xml extension. BioWare generated these XML files using 3DSMax plugins that have some legal encumberances preventing their distribution, but the specifications for .mmh.xml will be released and it is hoped that converters will be able to be written for other file formats.&lt;br /&gt;
&lt;br /&gt;
The XML file is then run through the GraphicsProcessorMMH.exe program (found in the Dragon Age\Toolset\export_processors directory) to produce a binary file that is used by the game. The game can actually use the XML file directly, but this has poor performance (it runs it through GraphicsProcessorMMH every time the object is loaded) and should only be used for testing purposes.&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH [-outdir &amp;lt;out-dir&amp;gt;] [-platform &amp;lt;x360,pc,ps3&amp;gt;] [options] [-indir&amp;lt;input-directory&amp;gt; / &amp;lt;input-file&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
:-byteswapgff{{undocumented}}&amp;lt;!-- ask Graham Wihlidal about these --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the command line you'll typically need:&lt;br /&gt;
&lt;br /&gt;
:GraphicsProcessorMMH -outdir %ls -platform pc %ls.mmh.xml&lt;br /&gt;
&lt;br /&gt;
MMH files reference [[MSH]] (mesh) files to define the actual triangles and vertexes used in models.&lt;br /&gt;
&lt;br /&gt;
== mmh.xml schema ==&lt;br /&gt;
&lt;br /&gt;
Joint types:&lt;br /&gt;
*Cylindrical&lt;br /&gt;
*6DOF&lt;br /&gt;
*Distance&lt;br /&gt;
*Fixed&lt;br /&gt;
*PointInPlane&lt;br /&gt;
*PointOnLine&lt;br /&gt;
*Prismatic&lt;br /&gt;
*Pulley&lt;br /&gt;
*Revolute&lt;br /&gt;
*Spherical&lt;br /&gt;
&lt;br /&gt;
See [http://www.oasis-open.org/committees/relax-ng/spec.html] for information on the RELAX NG 1.0 XML schema format. For a free converter/verifier, see [http://code.google.com/p/jing-trang/].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;grammar ns=&amp;quot;&amp;quot; xmlns=&amp;quot;http://relaxng.org/ns/structure/1.0&amp;quot; datatypeLibrary=&amp;quot;http://www.w3.org/2001/XMLSchema-datatypes&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;ModelHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FXActorName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An FXA file name --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ModelDataName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- an MSH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- An MMH file name --&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PreSimulateTime&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- emitter presimulation time --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReferencedMeshes&amp;quot;/&amp;gt; &amp;lt;!-- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some have one or more .msh files named with spaces separating them. For example: ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;. Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialAlpha&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialDecalName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialFresnelFalloff&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialInvertFresnel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;  &amp;lt;!-- if UseRemoteMaterial is true. A true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RemoteMaterialTintColor&amp;quot;/&amp;gt; &amp;lt;!-- if UseRemoteMaterial is true. Four numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseRemoteMaterial&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt; &amp;lt;!-- a true/false value --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/start&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeMesh&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BonesUsed&amp;quot;/&amp;gt; &amp;lt;!-- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, helmets, hair, eyes, etc. all have bonesused. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CastRuntimeShadow&amp;quot;&amp;gt;  &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;CutAway&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters --&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IsVFXMesh&amp;quot;&amp;gt; &amp;lt;!-- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt; &amp;lt;!-- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. I think this is referring to material libraries create by the material editor --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt; &amp;lt;!-- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshName&amp;quot;&amp;gt; &amp;lt;!-- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility) --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PunchThrough&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveBakedShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveRuntimeShadow&amp;quot;&amp;gt; &amp;lt;!-- appears to be a true/false value --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ReceiveShadow&amp;quot;&amp;gt; &amp;lt;!-- I didn't find this referenced in the source code - deprecated, perhaps? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ShadowCasting&amp;quot;&amp;gt; &amp;lt;!-- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms? --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt; &amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt;  I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;Scale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Node&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;BoneIndex&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SoundMaterialType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;CollisionObject&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeWeapontrail&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeCloth&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AttachmentTearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;BendingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_BENDING_ORTHO&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COLLISION_TWOWAY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_COMDAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DAMPING&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_DISABLE_COLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_GRAVITY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_HARDWARE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_PRESSURE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_SELFCOLLISION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_STATIC&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_TEARABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CF_VISUALIZATION&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;CollisionResponseCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DampingCoefficient&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Density&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Friction&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionAxisRatio&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingDirectionChange&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMaxStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinDuration&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinInterval&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GustingMinStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;ID&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;MeshGroupName&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Pressure&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SleepLinearVelocity&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SolverIterations&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindDirection&amp;quot;&amp;gt;  &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindParams&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpeedTreeWindUpdateTime&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;StretchingStiffness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;TearFactor&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Thickness&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WakeUpCounter&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindDirection&amp;quot;/&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindEnabled&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponse&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindResponseLimit&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindSpace&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;WindStrength&amp;quot;&amp;gt; &amp;lt;!-- removed, no longer supported by resource exporter. see bug 114919 --&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Attribute&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;ClothAttachments&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;element name=&amp;quot;ClothAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TearableAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;TwoWayAttachment&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;MeshGroup&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
                &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;NodeSnaptoPoint&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;MeshHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;BoundingBox&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;choice&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;MeshHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/choice&amp;gt;&lt;br /&gt;
        &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;choice&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeLightProbe&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;/choice&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeCrustHierarchy&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;HookID&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Node&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterGroup&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodeEmitterTarget&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;NodePointLight&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeMesh&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Export&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ControllerType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ExportName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MaterialColor&amp;quot;/&amp;gt; &amp;lt;!-- String with four values - RGBA --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;TagName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;BoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;BoundingBox&amp;quot;&amp;gt; &amp;lt;!-- Vector4f min, Vector4f max --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Translation&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Rotation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Rotation&amp;quot;&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;CollisionObject&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Kinematic&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Static&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;Shape&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;AllowEmitterSpawn&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimX&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;DimZ&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Fadeable&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_CREATURES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_ITEMS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_NONWALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_PLACEABLES&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_STATICGEOMETRY&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TERRAIN_WALL&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_TRIGGERS&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;GROUP_MASK_WALKABLE&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Position&amp;quot;/&amp;gt; &amp;lt;!-- Vector4f --&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Rotation&amp;quot;/&amp;gt; &amp;lt;!-- Quaternionf --&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;VertexData&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;IndexData&amp;quot;&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
              &amp;lt;text/&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodePointLight&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AffectsDomain&amp;quot;&amp;gt; &amp;lt;!-- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. I don't know what these domains represent. --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriod&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityPeriodDelta&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IntensityVariation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;IsStatic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt; &amp;lt;!-- true/false, I believe --&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeWeapontrail&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Duration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt; &amp;lt;!-- All appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SegmentLength&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Attribute&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;AttributeName&amp;quot;&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SourceName&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt; &amp;lt;!-- This attribute's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeUsePoint&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt; &amp;lt;!-- All seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt; &amp;lt;!-- &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeCrustHierarchy&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeAmbientLight&amp;quot;&amp;gt; &amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, and tools_bulb_ambient.mmh.xml. --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&amp;lt;!-- &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt; &amp;lt;!-- 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; for the two tools --&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitter&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Acceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleXMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;AgeMapScaleYMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Birthrate&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateInParticlesPerMeter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;BirthrateRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Bounciness&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EmitterType&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;EnableParticleCollisions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;/&amp;gt; &amp;lt;!-- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1; if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;--&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;GravityMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InheritVelocityInsteadOfPosition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InitialRotationRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialRotationSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeed&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;InitialSpeedRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;InvMovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;KillParticleWhenTargetHit&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LOD&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Life&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;LifeRange&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;LinkParticlesTogether&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialLibrary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleModel&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MovementSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing movementspread X and movementspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;MovementSpreadUpdateDelay&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ObjectSpaceAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;OrientationBehaviour&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticleInheritance&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesAffectedByWind&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ParticlesFollowPath&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;PhysicsObjectSpawn&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomInitialRotation&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;RotationalAcceleration&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;ScaleRange&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SpawnDirectionTracksTarget&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;SpawnSpread&amp;quot;/&amp;gt; &amp;lt;!-- Two floating point values, representing spawnspread X and spawnspread Y --&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;SplatEmitter&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetAttraction&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetName&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;TargetRadius&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UVDistributionSize&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;UpdateOnlyWhenVisible&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UseVariationTint&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;UserParamName&amp;quot;/&amp;gt; &amp;lt;!-- ECString, not sure if there's any special formatting here --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;VertexFormat&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;WorldAxisAcceleration&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;choice&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;EmitterAttachments&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;element name=&amp;quot;EmitterAttachment&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;SpawnOnSurface&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;optional&amp;gt;&lt;br /&gt;
                &amp;lt;attribute name=&amp;quot;UseNormalForVelocity&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/attribute&amp;gt;&lt;br /&gt;
              &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
          &amp;lt;element name=&amp;quot;SpawnVolume&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Axis&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;InvertSpawnVolumeNormals&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Length&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MaxCorner&amp;quot;/&amp;gt;  &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleRollAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MeshParticleUpAxis&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;MinCorner&amp;quot;/&amp;gt; &amp;lt;!-- Three numbers separated by spaces --&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;Radius&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;SpawnVolumeType&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;SpawnWithinVolume&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;optional&amp;gt;&lt;br /&gt;
              &amp;lt;attribute name=&amp;quot;UseVolumeNormalsForDirection&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/attribute&amp;gt;&lt;br /&gt;
            &amp;lt;/optional&amp;gt;&lt;br /&gt;
            &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
              &amp;lt;ref name=&amp;quot;Data&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
          &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;/choice&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;SplatParticle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;AgeMapColorMultiplier&amp;quot;/&amp;gt; &amp;lt;!-- four numbers separated by spaces --&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookColumns&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookRows&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FlipbookType&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;FramesPerSecond&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Height&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;HoldLastFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Lifespan&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesH&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;NumSamplesW&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;OrientationRangeRadians&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RandomStartFrame&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Width&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;AgeMap&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;Data&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;ElementCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexCount&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;IndexType&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Semantic&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;attribute name=&amp;quot;Type&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
      &amp;lt;text/&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterGroup&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;MaterialObject&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NMTOKEN&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeEmitterTarget&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;ref name=&amp;quot;Export&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;NodeLightProbe&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Translation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ref name=&amp;quot;Rotation&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;optional&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;ReflectionMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;IrradianceMap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;ResName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;NCName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/optional&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
  &amp;lt;define name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;element name=&amp;quot;AgeMap&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;attribute name=&amp;quot;Count&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;data type=&amp;quot;integer&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/attribute&amp;gt;&lt;br /&gt;
      &amp;lt;oneOrMore&amp;gt;&lt;br /&gt;
        &amp;lt;element name=&amp;quot;AgeMapElement&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Alpha&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;Color&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;PercentLifeElapsed&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;optional&amp;gt;&lt;br /&gt;
            &amp;lt;attribute name=&amp;quot;RotationSpeedMultiplier&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;/optional&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;XScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
          &amp;lt;attribute name=&amp;quot;YScale&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;data type=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/attribute&amp;gt;&lt;br /&gt;
        &amp;lt;/element&amp;gt;&lt;br /&gt;
      &amp;lt;/oneOrMore&amp;gt;&lt;br /&gt;
    &amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;/define&amp;gt;&lt;br /&gt;
&amp;lt;/grammar&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example .MMH.XML file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- A note on value types:&lt;br /&gt;
		List#:type -- means # amount of values of specified type with spaces in between&lt;br /&gt;
		&lt;br /&gt;
		string -- a series of characters, digits and underscores, can not start with a colon, no spaces&lt;br /&gt;
		?string? -- same as above except can start with a colon&lt;br /&gt;
		int -- an integer (whole number)&lt;br /&gt;
		decimal -- any number including one with digits appearing after a decimal point, &lt;br /&gt;
				   all decimals MUST have a decimal point even if there are no digits after it (ie 1. not 1, or 0.0)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ModelHierarchy ModelDataName=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		FXActorName=&amp;quot;string&amp;quot; -- An FXA file name &lt;br /&gt;
		PreSimulateTime=&amp;quot;decimal&amp;quot; -- emitter presimulation time&lt;br /&gt;
		ReferencedMeshes=&amp;quot;List:string&amp;quot; -- List of names of referenced meshes. Most of the files I see this in have an empty string here, but some &lt;br /&gt;
										  have one or more .msh files named with spaces separating them. For example: &lt;br /&gt;
															ReferencedMeshes=&amp;quot;fx_l_plane.msh fx_l_plane.msh&amp;quot;&lt;br /&gt;
										  Every file with ReferencedMeshes defined was exported by the VFX editor so this is a VFX thing.&lt;br /&gt;
		RemoteMaterialAlpha=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialDecalName=&amp;quot;string&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialFresnelFalloff=&amp;quot;decimal&amp;quot; -- if UseRemoteMaterial is true &lt;br /&gt;
		RemoteMaterialInvertFresnel=&amp;quot;int&amp;quot; -- if UseRemoteMaterial is true. A true/false value &lt;br /&gt;
		RemoteMaterialTintColor=&amp;quot;List4:decimal&amp;quot;-- if UseRemoteMaterial is true. Four numbers separated by spaces &lt;br /&gt;
		UseRemoteMaterial=&amp;quot;int&amp;quot; -- a true/false value &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 1 of (defined below): --&amp;gt;&lt;br /&gt;
	&amp;lt;MeshHierarchy/&amp;gt; &amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. --&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;	&lt;br /&gt;
&amp;lt;/ModelHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeMesh&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BonesUsed=&amp;quot;List:int&amp;quot; -- list of integers. Bodies have a lot of bones listed, other body parts have fewer. Boots, armor, gloves, &lt;br /&gt;
								helmets, hair, eyes, etc. all have bonesused. &lt;br /&gt;
		CastBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		CastRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		CutAway=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
		ID=&amp;quot;string&amp;quot; -- A short string that always seems to be &amp;quot;_&amp;quot; followed by two or three random-looking numbers and letters &lt;br /&gt;
		IsVFXMesh=&amp;quot;int&amp;quot; -- if this mesh is categorized as a VFX Mesh, load in the MaterialColor parameter&lt;br /&gt;
		MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot; -- Strings like &amp;quot;CAI_Floor03.mao&amp;quot; and &amp;quot;CavesInterior.mal&amp;quot; - mao and mal are material editor file types&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot; -- Some boots had things like &amp;quot;pn_boo_hvyd_l3&amp;quot; here, a piece of corridor &lt;br /&gt;
									 named fca_corridor01_0 had separate nodemeshes with both &amp;quot;fca_master&amp;quot; and &amp;quot;BLK_Master&amp;quot;. &lt;br /&gt;
									 I think this is referring to material libraries create by the material editor &lt;br /&gt;
		MeshGroupName=string&amp;quot;&amp;gt; -- A lot of very generic-sounding names like &amp;quot;Box23&amp;quot; and &amp;quot;Object9331&amp;quot;, mixed with a few more meaningful&lt;br /&gt;
								  names like &amp;quot;MshMain_CAV_CaiPlatform03_0&amp;quot; &lt;br /&gt;
		MeshName=&amp;quot;string&amp;quot; -- the mesh file that the meshchunk is in. if this isn't set, it will default to the first mesh in the model (for backwards compatibility)&lt;br /&gt;
		Name=&amp;quot;string&amp;quot; -- name of the nodemesh&lt;br /&gt;
		PunchThrough=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	    ReceiveBakedShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		ReceiveRuntimeShadow=&amp;quot;int&amp;quot; -- appears to be a true/false value &lt;br /&gt;
		&amp;lt;&amp;lt;UNKNOWN&amp;gt;&amp;gt; ReceiveShadow=&amp;quot;int&amp;quot; -- I didn't find this referenced in the source code - deprecated, perhaps? &lt;br /&gt;
		ShadowCasting=&amp;quot;int&amp;quot; -- used to set GFF_MMH_MESH_CAST_RUNTIME_SHADOW in the source code, same as CastRuntimeShadow above - synonyms?&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- appears to be a true/false value&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- 0 or more of the following items come next, definitions follow later --&amp;gt;&lt;br /&gt;
	&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;	&amp;lt;!-- may be empty, or may contain something of the form &amp;lt;![CDATA[-8.00051 -32.0 -0.0103784 1.0 8.01207 0.0 30.0 1.0]]&amp;gt; &lt;br /&gt;
						 I believe this is the two corners (min and max) of the bounding box. --&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;		&amp;lt;!-- appears to be able to handle a nodemesh within a nodemesh :O --&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Scale&amp;gt;&amp;quot;decimal&amp;quot;&amp;lt;/Scale&amp;gt;  &lt;br /&gt;
	&amp;lt;!-- I am assuming next bit means no more than one of the following (could be none): &lt;br /&gt;
									  &amp;lt;choice&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeAmbientLight&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;ref name=&amp;quot;NodeUsePoint&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;
										  &amp;lt;ref name=&amp;quot;NodeEmitter&amp;quot;/&amp;gt;&lt;br /&gt;
										&amp;lt;/zeroOrMore&amp;gt;&lt;br /&gt;
									  &amp;lt;/choice&amp;gt;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;NodeAmbientLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeMesh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Node Name=&amp;quot;?string?&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		BoneIndex=&amp;quot;int&amp;quot; ---- possibly the bone to which this node is attached to, not included if not attached to a bone?&lt;br /&gt;
		SoundMaterialType=&amp;quot;int&amp;quot; ---- are there SoundMaterialType definitions somewhere? if so I guess this is the index of one&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following(including duplicates), however I assume having more than one of the same type&lt;br /&gt;
		 would cause the compiler to go wtf? in some cases (like bounding box or translation). Definitions follow later in file&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt;&lt;br /&gt;
	&amp;lt;CollisionObject/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Node/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt;&lt;br /&gt;
	&amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeUsePoint/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeWeapontrail/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCloth&amp;gt; &amp;lt;!-- has a shit load of attributes with no comments however I assume they all have to do with cloth simulation paramaters --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- NodeCloth Attributes:&lt;br /&gt;
		AttachmentResponseCoefficient=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		AttachmentTearFactor=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		BendingStiffness=&amp;quot;decimal&amp;quot; &lt;br /&gt;
		CF_BENDING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_BENDING_ORTHO=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COLLISION_TWOWAY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_COMDAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DAMPING=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_DISABLE_COLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_GRAVITY=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_HARDWARE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_PRESSURE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_SELFCOLLISION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_STATIC=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_TEARABLE=&amp;quot;int&amp;quot;&lt;br /&gt;
		CF_VISUALIZATION=&amp;quot;int&amp;quot;&lt;br /&gt;
		CollisionResponseCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DampingCoefficient=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Density=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Friction=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		ID=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
		MeshGroupName=&amp;quot;string&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Pressure=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SleepLinearVelocity=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SolverIterations=&amp;quot;int&amp;quot;&lt;br /&gt;
		StretchingStiffness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		TearFactor=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Thickness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		WakeUpCounter=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:	GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot; --&amp;gt;&lt;br /&gt;
		&amp;lt;Attribute/&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt;	&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;ClothAttachments&amp;gt;&lt;br /&gt;
		  &amp;lt;ClothAttachment TearableAttachment=&amp;quot;int&amp;quot; TwoWayAttachment=&amp;quot;int&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
		  &amp;lt;/ClothAttachment&amp;gt;&lt;br /&gt;
		&amp;lt;/ClothAttachments&amp;gt;&lt;br /&gt;
		&amp;lt;MeshGroup Name=&amp;quot;string&amp;quot;&amp;gt;	&amp;lt;!-- contains 1 or more Data elements, defined later in file --&amp;gt;&lt;br /&gt;
			&amp;lt;Data/&amp;gt;	&lt;br /&gt;
		&amp;lt;/MeshGroup&amp;gt;&lt;br /&gt;
	&amp;lt;/NodeCloth&amp;gt;&lt;br /&gt;
	&amp;lt;NodeSnaptoPoint Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more Exports --&amp;gt;&lt;br /&gt;
			&amp;lt;Export/&amp;gt;&lt;br /&gt;
			&amp;lt;!-- can have 0 or more of the following, defined later in file --&amp;gt;&lt;br /&gt;
            &amp;lt;Translation/&amp;gt;&lt;br /&gt;
            &amp;lt;Rotation/&amp;gt;&lt;br /&gt;
          &amp;lt;/NodeSnapToPoint&amp;gt;&lt;br /&gt;
    &amp;lt;NodeAmbientLight/&amp;gt;	&amp;lt;!-- Optional Element defined later in file--&amp;gt; &lt;br /&gt;
&amp;lt;/Node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;&amp;lt;&amp;lt;WARNING: PROBABLY NOT A GOOD IDEA TO USE THIS ONE!!!&amp;gt;&amp;gt;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!-- MeshHierarchy is a deprecated synonym for &amp;quot;NodeMesh&amp;quot;. Only 14 files still use it out of nearly 8000 in our internal sources. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- IE it is a REALLY old version of NodeMesh --&amp;gt;&lt;br /&gt;
&amp;lt;MeshHierarchy Name=&amp;quot;string&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;BoundingBox/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- These are Optional and apparently can have more than one if you want, defined lated in file --&amp;gt;&lt;br /&gt;
		&amp;lt;MeshHierarchy/&amp;gt;&lt;br /&gt;
		&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
		&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have either a NodeLightProbe or 0 or more NodeEmitters --&amp;gt;&lt;br /&gt;
	&amp;lt;NodeLightProbe/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
&amp;lt;/MeshHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeCrustHierarchy HookID=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; 		&amp;lt;!-- can have 0 or more Exports, defined later in file --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;	&lt;br /&gt;
	&amp;lt;NodeMesh/&amp;gt; 	&amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- can have 0 or more of the following (including duplicates apparently) --&amp;gt;&lt;br /&gt;
	  &amp;lt;Node/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitter/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterGroup/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodeEmitterTarget/&amp;gt;&lt;br /&gt;
	  &amp;lt;NodePointLight/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeCrustHierarchy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Rotation&amp;gt; &lt;br /&gt;
  data &amp;lt;!-- data is a Quaternionf (ie: f f f f, or maybe f,f,f,f)--&amp;gt;&lt;br /&gt;
&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Export ControllerType=&amp;quot;string&amp;quot; ExportName=&amp;quot;?string?&amp;quot; TagName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Optional Attribute: MaterialColor=&amp;quot;List4:decimal&amp;quot; -- String with four values - RGBA --&amp;gt;&lt;br /&gt;
&amp;lt;/Export&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BoundingBox&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- data is Vector4f min, Vector4f max (ie: f f f f,f f f f or maybe (f,f,f,f) (f,f,f,f) --&amp;gt;&lt;br /&gt;
&amp;lt;/BoundingBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Translation&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot;-- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	data &amp;lt;!-- I believe this is a Vector4f --&amp;gt;&lt;br /&gt;
&amp;lt;/Translation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;CollisionObject&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	Kinematic=&amp;quot;boolean&amp;quot;&lt;br /&gt;
	Static=&amp;quot;boolean&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- can have 1 or more Shapes --&amp;gt;&lt;br /&gt;
	&amp;lt;Shape&amp;gt;&lt;br /&gt;
	&amp;lt;!-- nAttributes:&lt;br /&gt;
		AllowEmitterSpawn=&amp;quot;int&amp;quot;&lt;br /&gt;
		Fadeable=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Name=&amp;quot;string&amp;quot;&lt;br /&gt;
		Position --Vector4f but no required type??&lt;br /&gt;
		Rotation --Quaternionf but no required type??&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		DimX=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		DimY=&amp;quot;double&amp;quot;  -- why double when other dims are decimal???&lt;br /&gt;
		DimZ=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		GROUP_MASK_CREATURES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_ITEMS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_NONWALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_PLACEABLES=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_STATICGEOMETRY=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TERRAIN_WALL=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_TRIGGERS=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		GROUP_MASK_WALKABLE=&amp;quot;boolean&amp;quot;&lt;br /&gt;
		Height=&amp;quot;double&amp;quot;&lt;br /&gt;
		Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;!-- VertexData and IndexData are optional, however you must have both or neither. Can have more than one pair??? --&amp;gt;&lt;br /&gt;
		&amp;lt;VertexData length=&amp;quot;int&amp;quot;&amp;gt; &amp;lt;!-- I assume length is the number of verts or possibly the number of values given in data --&amp;gt;&lt;br /&gt;
		  data &amp;lt;!-- I assume this is a list of vert coords given in a list form (ie: x1,y1,z1,x2,y2,z2,...,xn,yn,zn maybe without commas) --&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexData&amp;gt;&lt;br /&gt;
		&amp;lt;IndexData&amp;gt; &amp;lt;!-- UINT16? don't know what this one's for, ask for clarification --&amp;gt;&lt;br /&gt;
		  data		&amp;lt;!-- maybe its vertex indicies for triangles? --&amp;gt;&lt;br /&gt;
		&amp;lt;/IndexData&amp;gt;&lt;br /&gt;
	&amp;lt;/Shape&amp;gt;&lt;br /&gt;
&amp;lt;/CollisionObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodePointLight Color=&amp;quot;list4:decimal&amp;quot; IsStatic=&amp;quot;int&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;decimal&amp;quot;&amp;gt; &amp;lt;!-- Color: string of four numbers, separated by spaces. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
	AffectsDomain=&amp;quot;int&amp;quot; -- A search through the existing files has this as either &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot;, no other values. &lt;br /&gt;
						   I don't know what these domains represent.&lt;br /&gt;
    IntensityPeriod=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityPeriodDelta=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    IntensityVariation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
    UseVariationTint=&amp;quot;int&amp;quot;-- true/false, I believe &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- must have at least 1 of the following, can have more including duplicates apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodePointLight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeWeapontrail Duration=&amp;quot;decimal&amp;quot; MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;string&amp;quot; SegmentLength=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- All MaterialObjects appear to be in either weapontrail_streaks or weapontrail_arrow --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeWeaponTrail&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Attribute AttributeName=&amp;quot;string&amp;quot; SourceName=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- AttributeName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files) --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- SourceName's value is almost universally &amp;quot;BaseLight&amp;quot; (11167 times out of 11170 in 7010 files)--&amp;gt;&lt;br /&gt;
&amp;lt;/Attribute&amp;gt; &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeUsePoint Name=&amp;quot;string&amp;quot; Type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- All Name values seem to be of the form &amp;quot;UserPoint##&amp;quot;, where ## is a zero-padded low number  (highest I've seen is 14) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Type values: &amp;quot;Front&amp;quot;, &amp;quot;Back&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Left&amp;quot; are options. Most items seem to get by with just nodeusepoints of front &lt;br /&gt;
		 and back, a few have all four types of nodeusepoint. --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeCrustHierarchy/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeUsePoint&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Only 5 files had one of these; lightrig_day01.mmh.xml, lightrig_int01.mmh.xml, lightrig_night01.mmh.xml, tools_ambient.mmh.xml, &lt;br /&gt;
	 and tools_bulb_ambient.mmh.xml. &lt;br /&gt;
	 &lt;br /&gt;
	 I would assume this type of node is used for calculating ambient light/shadows maybe like a radiosity pass or something.&lt;br /&gt;
	 Might make some interesting lighting changes if you fiddle with it but be careful! might break your lighting --&amp;gt;&lt;br /&gt;
&amp;lt;NodeAmbientLight Color=&amp;quot;List4:decimal&amp;quot; Name=&amp;quot;string&amp;quot; Radius=&amp;quot;double&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;!-- Color: string of four numbers, separated by spaces. &amp;quot;0.0705882 0.0862745 0.0980392 1.0&amp;quot; for the three lightrigs, &lt;br /&gt;
		 &amp;quot;0.498039 0.498039 0.498039 1.0&amp;quot; for the two tools &lt;br /&gt;
		 Name: &amp;quot;BWDA_OmniLight04&amp;quot; for the three lightrigs, &amp;quot;BWDA_OmniLight01&amp;quot; for the two tools. &lt;br /&gt;
		 Radius: 5.0 for the three lightrigs, &amp;quot;1e+007&amp;quot; (10000000?? big big radius!) for the two tools --&amp;gt;&lt;br /&gt;
    &amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
    &amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
&amp;lt;/NodeAmbientLight&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;NodeEmitter&amp;gt; &amp;lt;!-- has a shit ton of attributes, all of which seem to pertain to particle emitter parameters (makes sense) --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Attributes:&lt;br /&gt;
		Acceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Birthrate=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		BirthrateInParticlesPerMeter=&amp;quot;int&amp;quot;&lt;br /&gt;
		BirthrateRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		EmitterType=&amp;quot;string&amp;quot;&lt;br /&gt;
		EnableParticleCollisions=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		GravityMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		IneritVelocityInsteadOfPosition=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		InitialRotationSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialSpeedRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Life=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		LinkParticlesTogether=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		MaterialLibrary=&amp;quot;string&amp;quot;&lt;br /&gt;
		MaterialObject=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MovementSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing movementspread X and movementspread Y &lt;br /&gt;
		Name=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		OrientationBehaviour=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticleInheritance=&amp;quot;string&amp;quot;&lt;br /&gt;
		ParticlesAffectedByWind=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		ParticlesFollowPath=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RotationalAcceleration=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ScaleRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		SpawnSpread=&amp;quot;List2:float&amp;quot; -- Two floating point values, representing spawnspread X and spawnspread Y&lt;br /&gt;
		UpdateOnlyWhenVisible=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;	&lt;br /&gt;
	&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot;- - string of four numbers, separated by spaces.&lt;br /&gt;
		AgeMapScaleXMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		AgeMapScaleYMultiplier=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		Bounciness=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
		FlipbookType=&amp;quot;int&amp;quot; -- UINT8 nFlipbookType = FLIPBOOKTYPE_NONE = 0;  &lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;ContactSheet&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_CONTACT_SHEET = 1;&lt;br /&gt;
							  if (a_sFlipbookType.CompareNoCase(L&amp;quot;Volume&amp;quot;)) nFlipbookType = FLIPBOOKTYPE_VOLUME = 2;&lt;br /&gt;
		FramesPerSecond=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotation=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InitialRotationSpeed=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		InvMovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		KillParticleWhenTargetHit=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		LOD=&amp;quot;int&amp;quot; -- true/false maybe?? might be an index/identifier&lt;br /&gt;
		LifeRange=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		MeshParticleModel=&amp;quot;?string?&amp;quot;&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
		MovementSpreadUpdateDelay=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		ObjectSpaceAcceleration=&amp;quot;int&amp;quot;&lt;br /&gt;
		PhysicsEmitter=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		PhysicsObjectSpawn=&amp;quot;int -- true/false ??&lt;br /&gt;
		RandomInitialRotation=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		RandomStartFrame=&amp;quot;int&amp;quot; --true/false ??&lt;br /&gt;
		SpawnDirectionTracksTarget=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		SplatEmitter=&amp;quot;int&amp;quot; -- true/false ?? might be index of a SplatEmitter if they exist&lt;br /&gt;
		TargetAttraction=&amp;quot;decimal&amp;quot;&amp;gt;&lt;br /&gt;
		TargetName=&amp;quot;?string?&amp;quot; &lt;br /&gt;
		TargetRadius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
		UVDistributionSize=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
		UseVariationTint=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		UserParamName=&amp;quot;??????&amp;quot; -- (datatype=ECString) &amp;lt;&amp;lt; What is this?? -- ECString, not sure if there's any special formatting here &lt;br /&gt;
		VertexFormat=&amp;quot;string&amp;quot; -- are there VertexFormats defined somewhere?&amp;gt;&lt;br /&gt;
		WorldAxisAcceleration=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces &lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Requires 1 or more of the following, duplicates allowed apparently --&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional EmitterAttachments Attributes:&lt;br /&gt;
		MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
		MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;EmitterAttachment Type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Optional EmitterAttachment Attributes:&lt;br /&gt;
			Name=&amp;quot;string&amp;quot;&lt;br /&gt;
			SpawnOnSurface=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			UseNormalForVelocity=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
	&amp;lt;/EmitterAttachments&amp;gt;&lt;br /&gt;
	&amp;lt;SpawnVolume InvertSpawnVolumeNormals=&amp;quot;int&amp;quot; SpawnWithinVolume=&amp;quot;int&amp;quot; &amp;gt; &amp;lt;!-- both look to be true/false values --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SpawnVolume Attributes:&lt;br /&gt;
			Axis=&amp;quot;??????&amp;quot; -- no data type specified, assuming 3 numbers&lt;br /&gt;
			Length=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			MaxCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleRollAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MeshParticleUpAxis=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			MinCorner=&amp;quot;List3:decimal&amp;quot; -- Three numbers separated by spaces&lt;br /&gt;
			Radius=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			SpanwVolumeType=&amp;quot;string&amp;quot; -- are there SpawnVolumeTypes defined somewhere???&lt;br /&gt;
			UseVolumeNormalsForDirection=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Data/&amp;gt;&amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
	&amp;lt;/SpawnVolumn&amp;gt;&lt;br /&gt;
    &amp;lt;SplatParticle&amp;gt; &amp;lt;!-- Optional - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SplatParticle Attributes:&lt;br /&gt;
			Height=&amp;quot;decimal&amp;quot;&lt;br /&gt;
			Lifespan=&amp;quot;int&amp;quot;&lt;br /&gt;
			MaterialObject=&amp;quot;string&amp;quot;&lt;br /&gt;
			NumSamplesH=&amp;quot;int&amp;quot;&lt;br /&gt;
			NumSamplesW=&amp;quot;int&amp;quot;&lt;br /&gt;
			OrientationRangeRadians=&amp;quot;int&amp;quot;&lt;br /&gt;
			Width=&amp;quot;decimal&amp;quot;&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Optional SplatParticle Attributes:&lt;br /&gt;
			AgeMapColorMultiplier=&amp;quot;List4:decimal&amp;quot; -- four numbers separated by spaces&lt;br /&gt;
			FlipbookColumns=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			FlipbookRows=&amp;quot;int&amp;quot; -- true/false??&lt;br /&gt;
			FlipbookType=&amp;quot;string&amp;quot; -- apparently not same as above in NodeEmitter&lt;br /&gt;
			FramesPerSecond=&amp;quot;int&amp;quot;&lt;br /&gt;
			HoldLastFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
			RandomStartFrame=&amp;quot;int&amp;quot; -- true/false ??&lt;br /&gt;
	--&amp;gt;&lt;br /&gt;
		&amp;lt;Export/&amp;gt; &amp;lt;!-- Optional --&amp;gt;&lt;br /&gt;
		&amp;lt;AgeMap/&amp;gt;&lt;br /&gt;
	&amp;lt;/SplatParticle&amp;gt;&lt;br /&gt;
	&amp;lt;AgeMap/&amp;gt; &amp;lt;!-- Not Optional - Required - Not included in the 1 or more --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitter&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;Data Semantic=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Optional Attributes:&lt;br /&gt;
		ElementCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexCount=&amp;quot;int&amp;quot;&lt;br /&gt;
		IndexType=&amp;quot;string&amp;quot;&lt;br /&gt;
		Type=&amp;quot;string&amp;quot;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 	data&lt;br /&gt;
&amp;lt;/Data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterGroup MaterialObject=&amp;quot;string&amp;quot; Name=&amp;quot;?string?&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;NodeEmitter/&amp;gt; &amp;lt;!-- 0 or more of these --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterGroup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeEmitterTarget Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;Export/&amp;gt; &amp;lt;!-- 0 or more exports --&amp;gt;&lt;br /&gt;
&amp;lt;/NodeEmitterTarget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NodeLightProbe Name=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Translation/&amp;gt;&lt;br /&gt;
	&amp;lt;Rotation/&amp;gt;&lt;br /&gt;
	&amp;lt;!-- following are optional elements, they are paired, can't have one without the other --&amp;gt;&lt;br /&gt;
	&amp;lt;ReflectionMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;IrradianceMap ResName=&amp;quot;string&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/NodeLightProbe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;AgeMap Count=&amp;quot;int&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!-- contains one or more AgeMapElements --&amp;gt;&lt;br /&gt;
      &amp;lt;AgeMapElement Alpha=&amp;quot;decimal&amp;quot; Color=&amp;quot;List4:decimal&amp;quot; PercentLifeElapsed=&amp;quot;decimal&amp;quot; XScale=&amp;quot;decimal&amp;quot; YScale=&amp;quot;decimal&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;!-- Optional AgeMapElement Attributes: RotationSpeedMultiplier=&amp;quot;decimal&amp;quot; --&amp;gt;&lt;br /&gt;
 &amp;lt;/AgeMap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:File types]]&lt;/div&gt;</summary>
		<author><name>ChewyGumball</name></author>	</entry>

	</feed>