×
Меню
Индекс

Nif.Xml working version

Полностью рабочая версия файла...
 
НО!!!
ТОЛЬКО ДЛЯ РАБОТЫ С МОДЕЛЯМИ ФОРМАТА МОРРОВИНДА!!!

Т.е. отсюда удалено все лишнее, что не работает в МВ, что ускоряет загрузку и предохраняет от внесения случайных изменений!
Если нужна "универсальная" версия под все известные, нифскопу, форматы, то используйте утилиты для сравнения текстов.
Перенося изменения из этого файла, в оригинальный.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE niftoolsxml>
<niftoolsxml version="0.0.0.X.SPECIAL_EDITION_FOR_MW_ONLY!">
 
    <!-- Supported Versions -->
    <version num="4.0.0.0"></version>
    <version num="4.0.0.2"></version>
    <version num="4.1.0.12"></version>
    <version num="4.2.0.2"></version>
    <version num="4.2.1.0"></version>
    <version num="4.2.2.0"></version>   
    
    <!--Basic Types-->
 
    <basic name="bool" count="1" niflibtype="bool" nifskopetype="bool">
    </basic>
 
    <basic name="byte" count="1" niflibtype="byte" nifskopetype="byte">
    </basic>
 
    <basic name="uint" count="1" niflibtype="unsigned int" nifskopetype="uint">
    </basic>
 
    <basic name="ushort" count="1" niflibtype="unsigned short" nifskopetype="ushort">
    </basic>
 
    <basic name="int" count="1" niflibtype="int" nifskopetype="int">
    </basic>
 
    <basic name="short" count="1" niflibtype="short" nifskopetype="short">
    </basic>
 
    <basic name="char" count="0" niflibtype="byte" nifskopetype="char">
    </basic>
 
    <basic name="FileVersion" count="0" niflibtype="unsigned int" nifskopetype="fileversion">
    </basic>
 
    <basic name="Flags" count="0" niflibtype="unsigned short" nifskopetype="flags">
    </basic>
 
    <basic name="float" count="0" niflibtype="float" nifskopetype="float">
    </basic>
 
    <basic name="HeaderString" count="0" niflibtype="HeaderString" nifskopetype="headerstring">
    </basic>
 
    <basic name="LineString" count="0" niflibtype="LineString" nifskopetype="linestring">
    </basic>
 
    <basic name="Ptr" count="0" niflibtype="*" nifskopetype="uplink" istemplate="1">
    </basic>
 
    <basic name="Ref" count="0" niflibtype="Ref" nifskopetype="link" istemplate="1">
    </basic>
 
    <basic name="StringOffset" count="0" niflibtype="unsigned int" nifskopetype="stringoffset">
    </basic>
 
    <basic name="StringIndex" count="0" niflibtype="IndexString" nifskopetype="stringindex">
    </basic>    
    
     <basic name="ulittle32" count="1" niflibtype="unsigned int" nifskopetype="uint">
    </basic>
    
     <!--Basic Types-->
     <!--Enumerations-->
 
    <enum name="AlphaFormat" storage="uint">
        <option value="0" name="ALPHA_NONE"></option>
        <option value="1" name="ALPHA_BINARY"></option>
        <option value="2" name="ALPHA_SMOOTH"></option>
        <option value="3" name="ALPHA_DEFAULT"></option>
    </enum>
 
    <enum name="ApplyMode" storage="uint">
        <option value="0" name="APPLY_REPLACE"></option>
        <option value="1" name="APPLY_DECAL"></option>
        <option value="2" name="APPLY_MODULATE"></option>
        <option value="3" name="APPLY_HILIGHT"></option>
        <option value="4" name="APPLY_HILIGHT2"></option>
    </enum>
 
    <enum name="AxisOrder" storage="uint">
        <option value="0" name="XYZ"></option>
        <option value="1" name="XZY"></option>
        <option value="2" name="YZX"></option>
        <option value="3" name="YXZ"></option>
        <option value="4" name="ZXY"></option>
        <option value="5" name="ZYX"></option>
        <option value="6" name="XYX"></option>
        <option value="7" name="YZY"></option>
        <option value="8" name="ZXZ"></option>
    </enum>
    
    <enum name="TexType" storage="uint">
        <option value="0" name="BASE_MAP"></option>
        <option value="1" name="DARK_MAP"></option>
        <option value="2" name="DETAIL_MAP"></option>
        <option value="3" name="GLOSS_MAP"></option>
        <option value="4" name="GLOW_MAP"></option>
        <option value="5" name="BUMP_MAP"></option>
        <option value="6" name="DECAL_0_MAP"></option>
        <option value="7" name="DECAL_1_MAP"></option>
        <option value="8" name="DECAL_2_MAP"></option>
        <option value="9" name="DECAL_3_MAP"></option>
          <option value="10" name="DECAL_4_MAP"></option>
          <option value="11" name="DECAL_5_MAP"></option>
    </enum>
 
    <enum name="KeyType" storage="uint">
        <option value="1" name="LINEAR_KEY"></option>
        <option value="2" name="QUADRATIC_KEY"></option>
        <option value="3" name="TBC_KEY"></option>
        <option value="4" name="XYZ_ROTATION_KEY"></option>
    </enum>
 
    <enum name="LightMode" storage="uint">
        <option value="0" name="LIGHT_MODE_EMISSIVE"></option>
        <option value="1" name="LIGHT_MODE_EMI_AMB_DIF"></option>
    </enum>
 
    <enum name="MipMapFormat" storage="uint">
        <option value="0" name="MIP_FMT_NO"></option>
        <option value="1" name="MIP_FMT_YES"></option>
        <option value="2" name="MIP_FMT_DEFAULT"></option>
    </enum>
 
    <enum name="PixelFormat" storage="uint">
        <option value="0" name="PX_FMT_RGB8"></option>
        <option value="1" name="PX_FMT_RGBA8"></option>
        <option value="2" name="PX_FMT_PAL8"></option>
        <option value="4" name="PX_FMT_DXT1"></option>
        <option value="5" name="PX_FMT_DXT5"></option>
        <option value="6" name="PX_FMT_DXT5_ALT"></option>
    </enum>
 
    <enum name="PixelLayout" storage="uint">
        <option value="0" name="PIX_LAY_PALETTISED"></option>
        <option value="1" name="PIX_LAY_HIGH_COLOR_16"></option>
        <option value="2" name="PIX_LAY_TRUE_COLOR_32"></option>
        <option value="3" name="PIX_LAY_COMPRESSED"></option>
        <option value="4" name="PIX_LAY_BUMPMAP"></option>
        <option value="5" name="PIX_LAY_PALETTISED_4"></option>
        <option value="6" name="PIX_LAY_DEFAULT"></option>
    </enum>
 
    <enum name="TexClampMode" storage="uint">
        <option value="0" name="CLAMP_S_CLAMP_T"></option>
        <option value="1" name="CLAMP_S_WRAP_T"></option>
        <option value="2" name="WRAP_S_CLAMP_T"></option>
        <option value="3" name="WRAP_S_WRAP_T"></option>
    </enum>
 
    <enum name="TexFilterMode" storage="uint">
        <option value="0" name="FILTER_NEAREST"></option>
        <option value="1" name="FILTER_BILERP"></option>
        <option value="2" name="FILTER_TRILERP"></option>
        <option value="3" name="FILTER_NEAREST_MIPNEAREST"></option>
        <option value="4" name="FILTER_NEAREST_MIPLERP"></option>
        <option value="5" name="FILTER_BILERP_MIPNEAREST"></option>
    </enum>
 
    <enum name="VertMode" storage="uint">
        <option value="0" name="VERT_MODE_SRC_IGNORE"></option>
        <option value="1" name="VERT_MODE_SRC_EMISSIVE"></option>
        <option value="2" name="VERT_MODE_SRC_AMB_DIF"></option>
    </enum>
 
    <enum name="CycleType" storage="uint">
        <option value="0" name="CYCLE_LOOP"></option>
        <option value="1" name="CYCLE_REVERSE"></option>
        <option value="2" name="CYCLE_CLAMP"></option>
    </enum>
 
    <enum name="FieldType" storage="uint">
        <option value="0" name="FIELD_WIND"></option>
        <option value="1" name="FIELD_POINT"></option>
    </enum>
 
    <enum name="BillboardMode" storage="ushort">
         <option value="0" name="ALWAYS_FACE_CAMERA"></option>
        <option value="1" name="ROTATE_ABOUT_UP"></option>
        <option value="2" name="RIGID_FACE_CAMERA"></option>
        <option value="3" name="ALWAYS_FACE_CENTER"></option>
        <option value="4" name="RIGID_FACE_CENTER"></option>
        <option value="5" name="BSROTATE_ABOUT_UP"></option>
        <option value="9" name="ROTATE_ABOUT_UP2"></option>
    </enum>
 
    <enum name="StencilCompareMode" storage="uint">
        <option value="0" name="TEST_NEVER"></option>
        <option value="1" name="TEST_LESS"></option>
        <option value="2" name="TEST_EQUAL"></option>
        <option value="3" name="TEST_LESS_EQUAL"></option>
        <option value="4" name="TEST_GREATER"></option>
        <option value="5" name="TEST_NOT_EQUAL"></option>
        <option value="6" name="TEST_GREATER_EQUAL"></option>
        <option value="7" name="TEST_ALWAYS"></option>
    </enum>
 
    <enum name="ZCompareMode" storage="uint">
        <option value="0" name="ZCOMP_ALWAYS"></option>
        <option value="1" name="ZCOMP_LESS"></option>
        <option value="2" name="ZCOMP_EQUAL"></option>
        <option value="3" name="ZCOMP_LESS_EQUAL"></option>
        <option value="4" name="ZCOMP_GREATER"></option>
        <option value="5" name="ZCOMP_NOT_EQUAL"></option>
        <option value="6" name="ZCOMP_GREATER_EQUAL"></option>
        <option value="7" name="ZCOMP_NEVER"></option>
    </enum>
 
    <enum name="StencilAction" storage="uint">
        <option value="0" name="ACTION_KEEP" />
        <option value="1" name="ACTION_ZERO" />
        <option value="2" name="ACTION_REPLACE" />
        <option value="3" name="ACTION_INCREMENT" />
        <option value="4" name="ACTION_DECREMENT" />
        <option value="5" name="ACTION_INVERT" />
    </enum>
 
    <enum name="FaceDrawMode" storage="uint">
        <option value="0" name="DRAW_CCW_OR_BOTH"></option>
        <option value="1" name="DRAW_CCW"></option>
        <option value="2" name="DRAW_CW"></option>
        <option value="3" name="DRAW_BOTH"></option>
    </enum>
 
    <enum name="ForceType" storage="uint">
        <option value="0" name="FORCE_PLANAR"></option>
        <option value="1" name="FORCE_SPHERICAL"></option>
        <option value="2" name="FORCE_UNKNOWN"></option>
    </enum>
    
    <enum name="DecayType" storage="uint">
        <option value="0" name="DECAY_NONE"></option>
        <option value="1" name="DECAY_LINEAR"></option>
        <option value="2" name="DECAY_EXPONENTIAL"></option>
    </enum>
 
    <enum name="SymmetryType" storage="uint">
        <option value="0" name="SPHERICAL_SYMMETRY"></option>
        <option value="1" name="CYLINDRICAL_SYMMETRY"></option>
        <option value="2" name="PLANAR_SYMMETRY"></option>
    </enum>
 
    <enum name="EffectType" storage="uint">
        <option value="0" name="TEX_PROJECTED_LIGHT"></option>
        <option value="1" name="TEX_PROJECTED_SHADOW"></option>
        <option value="2" name="TEX_ENVIRONMENT_MAP"></option>
        <option value="3" name="TEX_FOG_MAP"></option>
    </enum>
 
 
    <enum name="CoordGenType" storage="uint">
        <option value="0" name="CG_WORLD_PARALLEL"></option>
        <option value="1" name="CG_WORLD_PERSPECTIVE"></option>
        <option value="2" name="CG_SPHERE_MAP"></option>
        <option value="3" name="CG_SPECULAR_CUBE_MAP"></option>
        <option value="4" name="CG_DIFFUSE_CUBE_MAP"></option>
    </enum>
 
    <enum name="SortingMode" storage="uint">
        <option value="0" name="SORTING_INHERIT"></option>
        <option value="1" name="SORTING_OFF"></option>
        <option value="2" name="SORTING_SUBSORT"></option>
        <option value="64" name="SORTING_GROUPED"></option>
    </enum>
 
    <enum name="PropagationMode" storage="uint">
        <option value="0" name="PROPAGATE_ON_SUCCESS"></option>
        <option value="1" name="PROPAGATE_ON_FAILURE"></option>
        <option value="2" name="PROPAGATE_ALWAYS"></option>
        <option value="3" name="PROPAGATE_NEVER"></option>
    </enum>
    
         <enum name="BoundVolumeType" storage="uint">
        <option value="0xffffffff" name="BASE_BV"></option>
        <option value="0" name="SPHERE_BV"></option>
        <option value="1" name="Box_BV"></option>
        <option value="2" name="Capsule_BV"></option>
        <option value="3" name="Lozenge_BV"></option>
        <option value="4" name="Union_BV"></option>
        <option value="5" name="HalfSpace_BV"></option>
    </enum>
    
         <enum name="DitherFlags" storage="ushort">
        <option value="0" name="Dither_DISABLED" />
        <option value="1" name="Dither_ENABLED" />
    </enum>
 
    <enum name="SpecularFlags" storage="ushort">
        <option value="0" name="SPECULAR_DISABLED" />
        <option value="1" name="SPECULAR_ENABLED" />
    </enum>
 
    <enum name="ShadeFlags" storage="ushort">
        <option value="0" name="DISABLED smoothing (0)" />
        <option value="1" name="ENABLED smoothing (1)" />
    </enum>
 
    <!--Compounds-->    
       <compound name="SizedString" niflibtype="string" nifskopetype="sizedstring">
        <add name="Length" type="uint"></add>
        <add name="Value" type="char" arr1="Length"></add>
    </compound>
 
    <compound name="string" niflibtype="IndexString" nifskopetype="string">
        <add name="String" type="SizedString" ver2="20.0.0.5"></add>
        <add name="Index" type="StringIndex" ver1="20.1.0.3"></add>
    </compound>
 
    <compound name="ByteArray" nifskopetype="bytearray">
        <add name="Data Size" type="uint"></add>
        <add name="Data" type="byte" arr1="Data Size"></add>
    </compound>
 
    <compound name="ByteMatrix" nifskopetype="bytematrix">
        <add name="Data Size 1" type="uint"></add>
        <add name="Data Size 2" type="uint"></add>
        <add name="Data" type="byte" arr1="Data Size 2" arr2="Data Size 1"></add>
    </compound>
 
    <compound name="Color3" niflibtype="Color3" nifskopetype="color3">
 
        <add name="r" type="float"></add>
        <add name="g" type="float"></add>
        <add name="b" type="float"></add>
    </compound>
 
    <compound name="ByteColor3">
        <add name="r" type="byte"></add>
        <add name="g" type="byte"></add>
        <add name="b" type="byte"></add>
    </compound>
 
    <compound name="Color4" niflibtype="Color4" nifskopetype="color4">
        <add name="r" type="float"></add>
        <add name="g" type="float"></add>
        <add name="b" type="float"></add>
        <add name="a" type="float"></add>
    </compound>
 
    <compound name="ByteColor4"><!-- niflibtype="Color4" nifskopetype="color4" -->
        <add name="r" type="byte"></add>
        <add name="g" type="byte"></add>
        <add name="b" type="byte"></add>
        <add name="a" type="byte"></add>
    </compound>
 
    <compound name="FilePath" niflibtype="IndexString" nifskopetype="filepath">
        <add name="String" type="SizedString" ver2="20.0.0.5"></add>
        <add name="Index" type="StringIndex" ver1="20.1.0.3"></add>
    </compound>
 
    <compound name="Footer">
        <add name="Num Roots" type="uint"></add>
        <add name="Roots" type="Ref" template="NiObject" arr1="Num Roots"></add>
    </compound>
 
    <compound name="LODRange">
        <add name="Near Extent" type="float"></add>
        <add name="Far Extent" type="float"></add>
        <add name="Unknown Ints" type="uint" arr1="3" ver2="3.1"></add>
    </compound>
 
    <compound name="MatchGroup">
        <add name="Num Vertices" type="ushort"></add>
        <add name="Vertex Indices" type="ushort" arr1="Num Vertices"></add>
    </compound>
 
    <compound name="Vector3" niflibtype="Vector3" nifskopetype="vector3">
        <add name="x" type="float"></add>
        <add name="y" type="float"></add>
        <add name="z" type="float"></add>
    </compound>
 
    <compound name="Vector4" niflibtype="Vector4" nifskopetype="vector4">
        <add name="x" type="float"></add>
        <add name="y" type="float"></add>
        <add name="z" type="float"></add>
        <add name="w" type="float"></add>
    </compound>
 
    <compound name="Quaternion" niflibtype="Quaternion" nifskopetype="quaternion">
        <add name="w" type="float" default="1.0"></add>
        <add name="x" type="float" default="0.0"></add>
        <add name="y" type="float" default="0.0"></add>
        <add name="z" type="float" default="0.0"></add>
    </compound>
 
    <compound name="QuaternionXYZW" nifskopetype="quaternion_xyzw">
        <add name="x" type="float" default="0.0"></add>
        <add name="y" type="float" default="0.0"></add>
        <add name="z" type="float" default="0.0"></add>
        <add name="w" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Matrix22" niflibtype="Matrix22">
        <add name="m11" type="float" default="1.0"></add>
        <add name="m21" type="float" default="0.0"></add>
        <add name="m12" type="float" default="0.0"></add>
        <add name="m22" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Matrix33" niflibtype="Matrix33" nifskopetype="matrix33">
        <add name="m11" type="float" default="1.0"></add>
        <add name="m21" type="float" default="0.0"></add>
        <add name="m31" type="float" default="0.0"></add>
        <add name="m12" type="float" default="0.0"></add>
        <add name="m22" type="float" default="1.0"></add>
        <add name="m32" type="float" default="0.0"></add>
        <add name="m13" type="float" default="0.0"></add>
        <add name="m23" type="float" default="0.0"></add>
        <add name="m33" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Matrix44" niflibtype="Matrix44" nifskopetype="matrix44">
        <add name="m11" type="float" default="1.0"></add>
        <add name="m21" type="float" default="0.0"></add>
        <add name="m31" type="float" default="0.0"></add>
        <add name="m41" type="float" default="0.0"></add>
        <add name="m12" type="float" default="0.0"></add>
        <add name="m22" type="float" default="1.0"></add>
        <add name="m32" type="float" default="0.0"></add>
        <add name="m42" type="float" default="0.0"></add>
        <add name="m13" type="float" default="0.0"></add>
        <add name="m23" type="float" default="0.0"></add>
        <add name="m33" type="float" default="1.0"></add>
        <add name="m43" type="float" default="0.0"></add>
        <add name="m14" type="float" default="0.0"></add>
        <add name="m24" type="float" default="0.0"></add>
        <add name="m34" type="float" default="0.0"></add>
        <add name="m44" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Vector3REF" niflibtype="Vector3" nifskopetype="vector3">
        <add name="x" type="float" default="0.0"></add>
        <add name="y" type="float" default="0.0"></add>
        <add name="z" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Vector3REF2" niflibtype="Vector3" nifskopetype="vector3">
        <add name="x" type="float" default="1.0"></add>
        <add name="y" type="float" default="0.0"></add>
        <add name="z" type="float" default="0.0"></add>
    </compound>
 
    <compound name="Vector3REF3" niflibtype="Vector3" nifskopetype="vector3">
        <add name="x" type="float" default="0.0"></add>
        <add name="y" type="float" default="1.0"></add>
        <add name="z" type="float" default="0.0"></add>
    </compound>
 
    <compound name="Vector3REF4" niflibtype="Vector3" nifskopetype="vector3">
        <add name="x" type="float" default="0.0"></add>
        <add name="y" type="float" default="0.0"></add>
        <add name="z" type="float" default="1.0"></add>
    </compound>
 
    <compound name="Matrix3REF">
        <add name="X" type="Vector3REF2"></add>
        <add name="Y" type="Vector3REF3"></add>
        <add name="Z" type="Vector3REF4"></add>
    </compound>
 
    <compound name="Matrix33REF">
        <add name="X1" type="float" default="1.0"></add>
        <add name="Y1" type="float" default="0.0"></add>
        <add name="Z1" type="float" default="0.0"></add>
        <add name="X2" type="float" default="0.0"></add>
        <add name="Y2" type="float" default="1.0"></add>
        <add name="Z2" type="float" default="0.0"></add>
        <add name="X3" type="float" default="0.0"></add>
        <add name="Y3" type="float" default="0.0"></add>
        <add name="Z3" type="float" default="1.0"></add>
    </compound>
 
    <compound name="MipMap">
        <add name="Width" type="uint"></add>
        <add name="Height" type="uint"></add>
        <add name="Offset" type="uint"></add>
    </compound>
 
     <compound name="AVObject">
        <add name="Name" type="SizedString">Object name.</add>
        <add name="AV Object" type="Ptr" template="NiAVObject">Object reference.</add>
    </compound>
 
    <!-- Don't use vercond in Header, it breaks niflib -->
    <compound name="Header">
        <add name="Header String" type="HeaderString"></add>
        <add name="Copyright" type="LineString" arr1="3" ver2="3.1" />
        <add name="Version" type="FileVersion" default="0x04000002" ver1="3.3.0.13"></add>
        <add name="Num Blocks" type="ulittle32" ver1="3.3.0.13"></add>
        <add name="User Version 2" type="ulittle32" default="0" cond="(User Version &gt;= 10) || ((User Version == 1) &amp;&amp; (Version != 10.2.0.0))" ver1="10.1.0.0"></add>
    </compound>
 
    <compound name="StringPalette" nifskopetype="stringpalette">
        <add name="Palette" type="SizedString"></add>
        <add name="Length" type="uint"></add>
    </compound>
 
    <compound name="TBC" nifskopetype="vector3">
        <add name="t" type="float"></add>
        <add name="b" type="float"></add>
        <add name="c" type="float"></add>
    </compound>
 
      <compound name="TexCoord" niflibtype="TexCoord" nifskopetype="vector2">
        <add name="u" type="float"></add>
        <add name="v" type="float"></add>
    </compound>
 
    <compound name="TexDesc"> <!-- NiTexturingProperty::Map -->
        <add name="Source" type="Ref" template="NiSourceTexture"></add>
        <add name="Clamp Mode" type="TexClampMode" default="WRAP_S_WRAP_T" ver2="20.0.0.5"></add>
        <add name="Filter Mode" type="TexFilterMode" default="FILTER_TRILERP"></add>
        <add name="UV Set" type="uint" default="0"></add>
        <add name="PS2 L" type="short"></add>
        <add name="PS2 K" type="short" default="-75"></add>
        <add name="m_spTexture" type="Flags">???</add>
    </compound>
 
    <compound name="BumpMap"> <!-- NiTexturingProperty::BumpMap -->
        <add name="Source" type="Ref" template="NiSourceTexture"></add>
        <add name="Clamp Mode" type="TexClampMode" default="WRAP_S_WRAP_T"></add>
        <add name="Filter Mode" type="TexFilterMode" default="FILTER_TRILERP"></add>
        <add name="UV Set" type="uint"></add>
        <add name="PS2 L" type="short"></add>
        <add name="PS2 K" type="short" default="-75"></add>
        <add name="Unknown1" type="byte"></add>
        <add name="Unknown2" type="byte"></add>
        <add name="Luma Scale" type="float"></add>
        <add name="Luma Offset" type="float"></add>
        <add name="Displacement" type="Matrix22"></add>
    </compound>
 
    <compound name="Triangle" niflibtype="Triangle" nifskopetype="triangle">
        <add name="v1" type="ushort"></add>
        <add name="v2" type="ushort"></add>
        <add name="v3" type="ushort"></add>
    </compound>
 
    <compound name="Partition">
        <add name="Num Vertices" type="ushort"></add>
        <add name="Num Triangles" type="ushort"></add>
        <add name="Num Bones" type="ushort"></add>
        <add name="Num Strip Lengths" type="ushort"></add>
        <add name="Num Bones Per Vertex" type="ushort"></add>
        <add name="Bones" type="ushort" arr1="Num Bones"></add>
        <add name="Vertex Map" type="ushort" arr1="Num Vertices"></add>
        <add name="Weights" type="float" arr1="Num Bones Per Vertex" arr2="Num Vertices"></add>
        <add name="Triangles" type="Triangle" cond="Num Triangles" arr1="Num Triangles"></add>
        <add name="Strip Lengths" type="ushort" cond="Num Strip Lengths" arr1="Num Strip Lengths"></add>
        <add name="Strips" type="ushort" cond="Num Strip Lengths" arr1="Num Strip Lengths" arr2="Strip Lengths"></add>
        <add name="Has Bone Palette" type="byte"></add>
        <add name="Bone Palette" type="byte" cond="Has Bone Palette" arr1="Num Bones Per Vertex" arr2="Num Vertices"></add>
    </compound>
    
    <compound name="Particle">
        <add name="Velocity" type="Vector3"></add>
        <add name="Unknown Vector" type="Vector3"></add>
        <add name="Lifetime" type="float"></add>
        <add name="Lifespan" type="float"></add>
        <add name="Timestamp" type="float"></add>
        <add name="Unknown Short" type="ushort" default="0"></add>
        <add name="Vertex ID" type="ushort"></add>
    </compound>
 
    <compound name="NiTransform">
        <add name="Rotation" type="Matrix33"></add>
        <add name="Translation" type="Vector3"></add>
        <add name="Scale" type="float" default="1.0"></add>
    </compound>
    
    <compound name="BoneVertData">
        <add name="Index" type="ushort"></add>
        <add name="Weight" type="float"></add>
    </compound>
    
         <compound name="BoneData">
        <add name="Skin Transform" type="NiTransform"></add>
        <add name="Center" type="Vector3"></add>
        <add name="Radius" type="float"></add>
        <add name="Num Vertices" type="ushort"></add>
        <add name="Vertex Weights" type="BoneVertData" arr1="Num Vertices"></add>
    </compound>
    
    <compound name="SkinTransform">
        <add name="Rotation" type="Matrix33"></add>
        <add name="Translation" type="Vector3"></add>
        <add name="Scale" type="float" default="1.0"></add>
    </compound>
    
    <compound name="InertiaMatrix" niflibtype="InertiaMatrix">
        <add name="m11" type="float" />
        <add name="m12" type="float" />
        <add name="m13" type="float" />
        <add name="m14" type="float"></add>
        <add name="m21" type="float" />
        <add name="m22" type="float" />
        <add name="m23" type="float" />
        <add name="m24" type="float"></add>
        <add name="m31" type="float" />
        <add name="m32" type="float" />
        <add name="m33" type="float" />
        <add name="m34" type="float"></add>
    </compound>
    
     <compound name="Key" istemplate="1">
        <add name="Time" type="float"></add>
        <add name="Value" type="TEMPLATE"></add>
        <add name="Forward" type="TEMPLATE" cond="ARG == 2"></add>
        <add name="Backward" type="TEMPLATE" cond="ARG == 2"></add>
        <add name="TBC" type="TBC" cond="ARG == 3"></add>
    </compound>
 
    <compound name="KeyGroup" istemplate="1">
        <add name="Num Keys" type="uint"></add>
        <add name="Interpolation" type="KeyType" default="1" cond="Num Keys != 0"></add>
        <add name="Keys" type="Key" arg="Interpolation" template="TEMPLATE" arr1="Num Keys"></add>
    </compound>
    
     <compound name="Morph">
        <add name="Num Keys" type="uint"></add>
        <add name="Interpolation" type="KeyType" default="1"></add>
        <add name="Keys" type="Key" arg="Interpolation" template="float" arr1="Num Keys"></add>
        <add name="Vectors" type="Vector3" arr1="ARG"></add>
    </compound>
    
     <compound name="NiBound">
        <add name="Center" type="Vector3"></add>
        <add name="Radius" type="float"></add>
    </compound>
 
    <compound name="BoundingBox">
        <add name="Type" type="uint" default="1"></add>
        <add name="Translation" type="Vector3"></add>
        <add name="Rotation" type="Matrix33"></add>
        <add name="Radius" type="Vector3"></add>
    </compound>
 
    <compound name="BoxBV">
        <add name="Translation" type="Vector3"></add>
        <add name="Rotation" type="Matrix33"></add>
        <add name="Radius" type="Vector3"></add>
    </compound>
 
    <compound name="SphereBv">
        <add name="Center" type="Vector3"></add>
        <add name="Radius" type="float"></add>
    </compound>
 
    <compound name="UnionBV">
        <add name="Num BV" type="uint" />
        <add name="Bounding Volumes" type="BoundingBox" arr1="Num BV"></add>
    </compound>
 
    <compound name="LozengeBV">
        <add name="Center" type="Vector3"></add>
        <add name="Axis0" type="Vector3"></add>
        <add name="Axis1" type="Vector3"></add>
        <add name="High" type="float"></add>
        <add name="Extent0" type="float" ver1="4.2.0.2"></add>
        <add name="Extent0" type="float" ver1="4.2.0.2"></add>
    </compound>
 
    <compound name="CapsuleBV">
        <add name="Center" type="Vector3"></add>
        <add name="Axis" type="Vector3"></add>
        <add name="Extent" type="float"></add>
        <add name="Radius" type="float"></add>
    </compound>
 
    <compound name="HalfSpaceBV">
        <add name="Plane" type="NiPlane"></add>
        <add name="High" type="Vector3" ver1="4.2.0.2"></add>
    </compound>
 
    <compound name="BoundingVolume">
        <add name="Collision Type" type="BoundVolumeType"></add>
        <add name="Sphere" type="SphereBv" cond="Collision Type == 0" />
        <add name="Box" type="BoxBV" cond="Collision Type == 1" />
        <add name="Capsule" type="CapsuleBV" cond="Collision Type == 2" />
        <add name="Lozenge" type="LozengeBV" cond="Collision Type == 3" />
        <add name="Union BV" type="UnionBV" cond="Collision Type == 4" />
        <add name="HalfSpace BV" type="HalfSpaceBV" cond="Collision Type == 5" />
    </compound>
 
    <compound name="BoundingTypes">
        <add name="Collision Type" type="BoundVolumeType"></add>
          <add name="Box" type="BoxBV" cond="Collision Type == 1" />
        <add name="Sphere" type="SphereBv" cond="Collision Type == 0" />
        <add name="Capsule" type="CapsuleBV" cond="Collision Type == 2" />
        <add name="Lozenge" type="LozengeBV" cond="Collision Type == 3" />
        <add name="Union BV" type="UnionBV" cond="Collision Type == 4" />
        <add name="HalfSpace BV" type="HalfSpaceBV" cond="Collision Type == 5" />
    </compound>
    
    <compound name="NiPixelFormat">
        <add name="Pixel Format" type="PixelFormat"></add>
         <add name="Color Masks" type="uint" arr1="4"></add>
        <add name="Bits Per Pixel" type="uint"></add>
        <add name="Old Fast Compare" type="byte" arr1="8"></add>
    </compound>
    
    <compound name="Polygon">
        <add name="Num Vertices" type="ushort"></add>
        <add name="Vertex Offset" type="ushort"></add>
        <add name="Num Triangles" type="ushort"></add>
        <add name="Triangle Offset" type="ushort"></add>
    </compound>
 
    <compound name="NiPlane" size="16">
        <add name="Normal" type="Vector3"></add>
        <add name="Distance" type="float"></add>
    </compound>
    
    <compound name="NiPlaneREF">
        <add name="Rotation XYZ" type="Vector3REF"></add>
        <add name="Area Size" type="float"></add>
    </compound>
 
    <compound name="NiPlaneBS" size="16">
        <add name="Rotation XYZ" type="Vector3"></add>
        <add name="Area Size" type="float"></add>
    </compound>
 
       <compound name="QuatKey" niflibtype="Key" istemplate="1"><!-- TEMPLATE should always be Quaternion -->
        <add name="Time" type="float" ver2="10.1.0.0">Time the key applies.</add>
        <add name="Time" type="float" cond="ARG != 4" ver1="10.1.0.106">Time the key applies.</add>
        <add name="Value" type="TEMPLATE" cond="ARG != 4">Value of the key.</add>
        <add name="TBC" type="TBC" cond="ARG == 3">The TBC of the key.</add>
    </compound>
    
         <compound name="NameControllerPair">
        <add name="Name" type="string"></add>
        <add name="Controller" type="Ptr" template="NiKeyframeController"></add>
    </compound>
 
    <compound name="NiSequenceMW">
        <add name="Sequence Name" type="string"></add>
        <add name="Use External" type="byte"></add>
        <add name="Keyframe File Name" type="string" cond="Use External != 0"></add>
        <add name="unknown int" type="int" cond="Use External == 0"></add>
        <add name="unknown object" type="Ptr" template="NiObject" cond="Use External == 0"></add>
        <add name="Num Name Controller Pairs" type="uint"></add>
        <add name="Name Controller Pairs" type="NameControllerPair" arr1="Num Name Controller Pairs"></add>
    </compound>
    
     <!-- NIF Objects-->
     <!-- Objects-->
    
     <niobject name="NiObject" abstract="1">
    </niobject>
    
     <niobject name="NiObjectNET" abstract="1" inherit="NiObject">
        <add name="Name" type="string"></add>
        <add name="Extra Data" type="Ref" template="NiExtraData" ver1="3.0" ver2="4.2.2.0"></add>
        <add name="Controller" type="Ref" template="NiTimeController" ver1="3.0"></add>
    </niobject>
 
    <niobject name="NiAVObject" abstract="1" inherit="NiObjectNET">
        <add name="Flags" type="Flags"></add>
        <add name="Translation" type="Vector3"></add>
        <add name="Rotation" type="Matrix33"></add>
        <add name="Scale" type="float" default="1.0"></add>
        <add name="Velocity" type="Vector3"></add>
        <add name="Num Properties" type="uint"></add>
        <add name="Properties" type="Ref" template="NiProperty" arr1="Num Properties"></add>
        <add name="Has Bounding Box" type="bool"></add>
        <add name="Bounding Box" type="BoundingBox" cond="Has Bounding Box">replace BoundingBox to BoundingTypes to see all types</add>
    </niobject>
    
     <niobject name="NiCamera" abstract="0" inherit="NiAVObject">
        <add name="Frustum Left" type="float"></add>
        <add name="Frustum Right" type="float"></add>
        <add name="Frustum Top" type="float"></add>
        <add name="Frustum Bottom" type="float"></add>
        <add name="Frustum Near" type="float"></add>
        <add name="Frustum Far" type="float"></add>
        <add name="Viewport Left" type="float"></add>
        <add name="Viewport Right" type="float"></add>
        <add name="Viewport Top" type="float"></add>
        <add name="Viewport Bottom" type="float"></add>
        <add name="LOD Adjust" type="float"></add>
        <add name="Scene" type="Ref" template="NiNode"></add>
        <add name="Num Screen Polygons" type="uint"></add>
        <add name="Screen Polygons" type="Ref" template="NiScreenPolygon" arr1="Num Screen Polygons"></add>
    </niobject>
    
     <niobject name="NiDynamicEffect" abstract="1" inherit="NiAVObject">
        <add name="Num Affected Nodes" type="uint"></add>
        <add name="Affected Nodes" type="int" arr1="Num Affected Nodes"></add>
    </niobject>
    
     <niobject name="NiTimeController" abstract="1" inherit="NiObject">
        <add name="Next Controller" type="Ref" template="NiTimeController"></add>
        <add name="Flags" type="Flags"></add>
        <add name="Frequency" type="float" default="1.0"></add>
        <add name="Phase" type="float"></add>
        <add name="Start Time" type="float"></add>
        <add name="Stop Time" type="float"></add>
        <add name="Target" type="Ptr" template="NiObjectNET"></add>
    </niobject>
    
     <niobject name="NiScreenPolygon" abstract="0" inherit="NiObject">
        <add name="Num Vertices" type="ushort"></add>
        <add name="Vertices" type="Vector3" arr1="Num Vertices"></add>
        <add name="Has UV" type="bool"></add>
        <add name="UV Sets" type="TexCoord" arr1="Num Vertices" cond="Has UV"></add>
        <add name="Has Vertex Colors" type="bool"></add>
        <add name="Vertex Colors" type="Color4" arr1="Num Vertices" cond="Has Vertex Colors"></add>
        <add name="Num Property States" type="uint"></add>
        <add name="Property States" type="int" arr1="Num Property States"></add>
    </niobject>
         
     <niobject name="NiExtraData" abstract="1" inherit="NiObject">
        <add name="Next Extra Data" type="Ref" template="NiExtraData"></add>
        <add name="Bytes Remaining" type="uint"></add>
    </niobject>
    
     <niobject name="NiTexture" abstract="1" inherit="NiObjectNET">
    </niobject>
    
     <niobject name="NiSequenceStreamHelper" abstract="0" inherit="NiObjectNET">
    </niobject>
    
     <!--???
     <niobject name="NiInterpolator" abstract="1" inherit="NiObject">
    </niobject>
     -->    
 
     <!-- NIF renderer no use-->
     <niobject name="NiRenderer" abstract="1" inherit="NiObject">
    </niobject>
 
    <niobject name="NiDX8Renderer" abstract="1" inherit="NiRenderer">
    </niobject>
    
    <!-- NIF Objects-->
     <!-- properties -->
    
     <niobject name="NiProperty" abstract="1" inherit="NiObjectNET">
    </niobject>
    
     <niobject name="NiSpecularProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="SpecularFlags"></add>
    </niobject>
 
    <niobject name="NiDitherProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="DitherFlags"></add>
    </niobject>
 
    <niobject name="NiShadeProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="ShadeFlags"></add>
    </niobject>
 
    <niobject name="NiZBufferProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags" default="3"></add>
        <add name="Function" type="ZCompareMode" default="ZCOMP_LESS_EQUAL" ver1="4.1.0.12" ver2="20.0.0.5">
        </add>
    </niobject>
 
    <niobject name="NiFogProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
        <add name="Fog Depth" type="float" default="0.8000"></add>
        <add name="Fog Color" type="Color3" default="#VEC3_ZERO#"></add>
    </niobject>
    
     <niobject name="NiAlphaProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags" default="4845"></add>
        <add name="Threshold" type="byte"></add>
    </niobject>
         
    <niobject name="NiMaterialProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags" default="4"></add>
        <add name="Ambient Color" type="Color3" default="#VEC3_ZERO#"></add>
        <add name="Diffuse Color" type="Color3" default="#VEC3_ZERO#"></add>
        <add name="Specular Color" type="Color3" default="#VEC3_ZERO#"></add>
        <add name="Emissive Color" type="Color3" default="#VEC3_ZERO#"></add>
        <add name="Glossiness" type="float" default="10.0"></add>
        <add name="Alpha" type="float" default="1.0"></add>
     </niobject>
     
     <niobject name="NiStencilProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
        <add name="Stencil Enabled" type="byte"></add>
        <add name="Stencil Function" type="StencilCompareMode"></add>
        <add name="Stencil Ref" type="uint"></add>
        <add name="Stencil Mask" type="uint" default="4294967295"></add>
        <add name="Fail Action" type="StencilAction"></add>
        <add name="Z Fail Action" type="StencilAction"></add>
        <add name="Pass Action" type="StencilAction"></add>
        <add name="Draw Mode" default="DRAW_BOTH" type="FaceDrawMode"></add>
    </niobject>
    
     <niobject name="NiTexturingProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
        <add name="Apply Mode" type="ApplyMode" default="APPLY_MODULATE"></add>
        <add name="Texture Count" type="uint" default="7"></add>
        <add name="Has Base Texture" type="bool"></add>
        <add name="Base Texture" type="TexDesc" cond="Has Base Texture"></add>
        <add name="Has Dark Texture" type="bool"></add>
        <add name="Dark Texture" type="TexDesc" cond="Has Dark Texture"></add>
        <add name="Has Detail Texture" type="bool"></add>
        <add name="Detail Texture" type="TexDesc" cond="Has Detail Texture"></add>
        <add name="Has Gloss Texture" type="bool"></add>
        <add name="Gloss Texture" type="TexDesc" cond="Has Gloss Texture"></add>
        <add name="Has Glow Texture" type="bool"></add>
        <add name="Glow Texture" type="TexDesc" cond="Has Glow Texture"></add>
        <add name="Has Bump Map Texture" type="bool" cond="Texture Count &gt; 5"></add>
        <add name="Bump Map Texture" type="BumpMap" cond="Has Bump Map Texture"></add>
        <add name="Has Decal 0 Texture" type="bool" cond="Texture Count &gt; 6"></add>
        <add name="Decal 0 Texture" type="TexDesc" cond="Has Decal 0 Texture"></add>
        <add name="Has Decal 1 Texture" type="bool" cond="Texture Count &gt; 7"></add>
        <add name="Decal 1 Texture" type="TexDesc" cond="Has Decal 1 Texture"></add>
        <add name="Has Decal 2 Texture" type="bool" cond="Texture Count &gt; 8"></add>
        <add name="Decal 2 Texture" type="TexDesc" cond="Has Decal 2 Texture"></add>
        <add name="Has Decal 3 Texture" type="bool" cond="Texture Count &gt; 9"></add>
        <add name="Decal 3 Texture" type="TexDesc" cond="Has Decal 3 Texture"></add>
        <add name="Has Decal 4 Texture" type="bool" cond="Texture Count &gt; 10"></add>
        <add name="Decal 4 Texture" type="TexDesc" cond="Has Decal 4 Texture"></add>
        <add name="Has Decal 5 Texture" type="bool" cond="Texture Count &gt; 11"></add>
        <add name="Decal 5 Texture" type="TexDesc" cond="Has Decal 5 Texture"></add>
        <add name="Has Decal 6 Texture" type="bool" cond="Texture Count &gt; 12"></add>
        <add name="Decal 6 Texture" type="TexDesc" cond="Has Decal 6 Texture"></add>
        <add name="Has Decal 7 Texture" type="bool" cond="Texture Count &gt; 13"></add>
        <add name="Decal 7 Texture" type="TexDesc" cond="Has Decal 7 Texture"></add>
        <add name="Has Decal 8 Texture" type="bool" cond="Texture Count &gt; 14"></add>
        <add name="Decal 8 Texture" type="TexDesc" cond="Has Decal 8 Texture"></add>
        <add name="Has Decal 9 Texture" type="bool" cond="Texture Count &gt; 15"></add>
        <add name="Decal 9 Texture" type="TexDesc" cond="Has Decal 9 Texture"></add>
        <add name="Has Decal 10 Texture" type="bool" cond="Texture Count &gt; 16"></add>
        <add name="Decal 10 Texture" type="TexDesc" cond="Has Decal 10 Texture"></add>
        <add name="Has Decal 11 Texture" type="bool" cond="Texture Count &gt; 17"></add>
        <add name="Decal 11 Texture" type="TexDesc" cond="Has Decal 11 Texture"></add>
    </niobject>
    
     <niobject name="NiVertexColorProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
        <add name="Vertex Mode" type="VertMode"></add>
        <add name="Lighting Mode" type="LightMode"></add>
    </niobject>
    
     <niobject name="NiWireframeProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
    </niobject>
    
     <niobject name="NiRendererSpecificProperty" abstract="0" inherit="NiProperty">
        <add name="Flags" type="Flags"></add>
    </niobject>
    
     <!-- NIF Objects-->
     <!-- ExtraData -->    
     <niobject name="NiStringExtraData" abstract="0" inherit="NiExtraData">
        <add name="String Data" type="string"></add>
    </niobject>
 
    <niobject name="NiTextKeyExtraData" abstract="0" inherit="NiExtraData">
        <add name="Num Text Keys" type="uint"></add>
        <add name="Text Keys" type="Key" arg="1" template="string" arr1="Num Text Keys"></add>
    </niobject>
    
     <niobject name="NiVertWeightsExtraData" abstract="0" inherit="NiExtraData">
        <add name="Num Weights" type="ushort"></add>
        <add name="Weight" type="float" arr1="Num Weights"></add>
    </niobject>
    
     <!-- ExtraExtraData -->
     <niobject name="BrickNiExtraData" abstract="1" inherit="NiExtraData">
     DO NOT INSERT THIS STUFF!!! ONLY FOR LOAD CAPTURED (via MWSE) NIF FILES!!!
        <add name="String" type="string"></add>
    </niobject>
 
    <niobject name="TES3ObjectExtraData" abstract="1" inherit="NiExtraData">
     DO NOT INSERT THIS STUFF!!! ONLY FOR LOAD CAPTURED (via MWSE) NIF FILES!!!
       <add name="String" type="string"></add>
    </niobject>
    
     <!-- NIF Objects-->
     <!-- textures -->         
     <niobject name="NiSourceTexture" abstract="0" inherit="NiTexture">
        <add name="Use External" type="byte" default="1"></add>
        <add name="File Name" type="FilePath" cond="Use External != 0"></add>
        <add name="Has Pixel Data" type="byte" default="1" cond="Use External == 0"></add>
        <add name="Pixel Data" type="Ref" template="NiPixelData" cond="Has Pixel Data"></add>
        <add name="Pixel Layout" type="PixelLayout"></add>
        <add name="Use Mipmaps" type="MipMapFormat"></add>
        <add name="Alpha Format" type="AlphaFormat"></add>
        <add name="Is Static" type="byte" default="1"></add>
    </niobject>
    
    <niobject name="NiRenderedTexture" abstract="1" inherit="NiTexture">
    </niobject>
 
    <niobject name="NiRenderedCubeMap" abstract="1" inherit="NiRenderedTexture">
    </niobject>
    
     <!-- NIF Objects-->
     <!-- NODES -->    
     <niobject name="NiNode" abstract="0" inherit="NiAVObject">
        <add name="Num Children" type="uint"></add>
        <add name="Children" type="Ref" template="NiAVObject" arr1="Num Children"></add>
        <add name="Num Effects" type="uint"></add>
        <add name="Effects" type="Ref" template="NiDynamicEffect" arr1="Num Effects"></add>
    </niobject>
    
     <niobject name="AvoidNode" abstract="0" inherit="NiNode">
    </niobject>
 
    <niobject name="NiBillboardNode" abstract="0" inherit="NiNode">
    </niobject>
 
    <niobject name="NiBSAnimationNode" abstract="0" inherit="NiNode">
    </niobject>
 
    <niobject name="NiBSParticleNode" abstract="0" inherit="NiBSAnimationNode">
    </niobject>
 
    <niobject name="NiSwitchNode" abstract="0" inherit="NiNode">
        <add name="Active Index" type="uint"></add>
    </niobject>
 
    <niobject name="NiLODNode" abstract="0" inherit="NiSwitchNode">
        <add name="LOD Center" type="Vector3"></add>
        <add name="Num LOD Levels" type="uint"></add>
        <add name="LOD Levels" type="LODRange" arr1="Num LOD Levels"></add>
    </niobject>
    
     <niobject name="RootCollisionNode" abstract="0" inherit="NiNode">
    </niobject>
    
    <niobject name="NiCollisionSwitch" abstract="0" inherit="NiNode">
    </niobject>
    
     <niobject name="NiSortAdjustNode" abstract="0" inherit="NiNode">
        <add name="Sorting Mode" type="SortingMode" default="SORTING_INHERIT"></add>
        <add name="Accumulator" type="Ref" template="NiAccumulator"></add>
    </niobject>
 
    <niobject name="NiFltAnimationNode" abstract="0" inherit="NiSwitchNode">
        <add name="Period" type="float"></add>
    </niobject>
 
    <niobject name="NiBSPNode" abstract="0" inherit="NiNode">
        <add name="Model Plane" type="NiPlaneBS"></add>
    </niobject>
    
     <niobject name="NiBSAnimationManager" abstract="1" inherit="NiNode">
    </niobject>
 
    <niobject name="BSMirroredNode" abstract="1" inherit="NiNode">
     DONOT INSERT THIS STUFF!!! ONLY FOR LOAD CAPTURED (via MWSE) NIF FILES!!!
    </niobject>
    
     <!-- NIF Objects-->
     <!-- Geomerty -->    
     <niobject name="NiGeometryData"  abstract="1" inherit="NiObject">
        <add name="Num Vertices" type="ushort"></add>
        <add name="Has Vertices" type="bool"></add>
        <add name="Vertices" type="Vector3" arr1="Num Vertices" cond="Has Vertices"></add>
        <add name="Has Normals" type="bool"></add>
        <add name="Normals" type="Vector3" arr1="Num Vertices" cond="Has Normals"></add>
        <add name="Center" type="Vector3"></add>
        <add name="Radius" type="float"></add>
        <add name="Has Vertex Colors" type="bool"></add>
        <add name="Vertex Colors" type="Color4" arr1="Num Vertices" cond="Has Vertex Colors"></add>
        <add name="Num UV Sets" type="ushort"></add>
        <add name="Has UV" type="bool"></add>
        <add name="UV Sets" type="TexCoord" cond="Has UV" arr1="Num UV Sets" arr2="Num Vertices"></add>
    </niobject>
    
     <niobject name="NiGeometry" abstract="1" inherit="NiAVObject">
        <add name="Geometry Data" type="Ref" template="NiGeometryData"></add>
        <add name="Skin Instance" type="Ref" template="NiSkinInstance"></add>
    </niobject>
    
     <niobject name="NiTriBasedGeom" abstract="1" inherit="NiGeometry">
    </niobject>
    
     <niobject name="NiTriBasedGeomData" abstract="1" inherit="NiGeometryData">
        <add name="Num Triangles" type="ushort"></add>
    </niobject>
    
     <niobject name="NiLines" abstract="0" inherit="NiGeometry">
    </niobject>    
    
     <niobject name="NiTriShape" abstract="0" inherit="NiTriBasedGeom">
    </niobject>
    
     <niobject name="NiTriStrips" abstract="0" inherit="NiTriBasedGeom">
    </niobject>
 
    <niobject name="NiTriShapeData" abstract="0" inherit="NiTriBasedGeomData">
        <add name="Num Triangle Points" type="uint"></add>
        <add name="Triangles" type="Triangle" arr1="Num Triangles"></add>
        <add name="Num Match Groups" type="ushort"></add>
        <add name="Match Groups" type="MatchGroup" arr1="Num Match Groups"></add>
    </niobject>
 
    <niobject name="NiTriStripsData" abstract="0" inherit="NiTriBasedGeomData">
        <add name="Num Strips" type="ushort"></add>
        <add name="Strip Lengths" type="ushort" arr1="Num Strips"></add>
        <add name="Points" type="ushort" arr1="Num Strips" arr2="Strip Lengths"></add>
    </niobject>
    
     <niobject name="NiTriShapeDynamicData" abstract="0" inherit="NiTriShapeData">
        <add name="Active Vertices" type="ushort"></add>
        <add name="Active Triangles" type="ushort"></add>
    </niobject>
 
    <niobject name="NiLinesData" abstract="0" inherit="NiGeometryData">
        <add name="Lines" type="byte" arr1="Num Vertices"></add>
    </niobject>
    
     <!-- Particles -->    
     <niobject name="NiParticles" abstract="0" inherit="NiGeometry">
    </niobject>
    
     <!-- NIF Objects-->
     <!-- Particles -->    
     <niobject name="NiParticlesData" abstract="0" inherit="NiGeometryData">
        <add name="Num Particles" type="ushort"></add>
        <add name="Particle Radius" type="float"></add>
        <add name="Num Active" type="ushort"></add>
        <add name="Has Sizes" type="bool"></add>
        <add name="Sizes" type="float" arr1="Num Vertices" cond="Has Sizes"></add>
    </niobject>
    
     <niobject name="NiAutoNormalParticles" abstract="0" inherit="NiParticles">
    </niobject>
 
     <niobject name="NiRotatingParticles" abstract="0" inherit="NiParticles">
    </niobject>
    
     <niobject name="NiParticleMeshes" abstract="1" inherit="NiParticles">
    </niobject>
 
    <niobject name="NiRotatingParticlesData" abstract="0" inherit="NiParticlesData">
        <add name="Has Rotations" type="bool"></add>
        <add name="Rotations" type="Quaternion" arr1="Num Vertices" cond="Has Rotations"></add>
    </niobject>
 
    <niobject name="NiAutoNormalParticlesData" abstract="0" inherit="NiParticlesData">
    </niobject>
    
     <niobject name="NiParticleMeshesData" abstract="1" inherit="NiRotatingParticlesData">
        <add name="Node Link" type="Ref" template="NiAVObject"></add>
    </niobject>
    
     <!-- Particles modifier -->
     <niobject name="NiParticleModifier" abstract="1" inherit="NiObject">
        <add name="Next Modifier" type="Ref" template="NiParticleModifier"></add>
        <add name="Controller" type="Ptr" template="NiParticleSystemController"></add>
    </niobject>
    
     <niobject name="NiParticleMeshModifier" abstract="1" inherit="NiParticleModifier">
        <add name="Num Particle Meshes" type="uint"></add>
        <add name="Particle Meshes" arr1="Num Particle Meshes" type="Ref" template="NiAVObject"></add>
    </niobject>
    
     <niobject name="NiGravity" abstract="0" inherit="NiParticleModifier">
        <add name="Decay" type="float"></add>
        <add name="Strength" type="float"></add>
        <add name="ForceType" type="ForceType"></add>
        <add name="Position" type="Vector3"></add>>
        <add name="Direction" type="Vector3"></add>
    </niobject>
 
    <niobject name="NiParticleRotation" abstract="0" inherit="NiParticleModifier">
        <add name="Random Initial Axis" type="byte"></add>
        <add name="Initial Axis" type="Vector3"></add>
        <add name="Rotation Speed" type="float"></add>
    </niobject>
    
     <niobject name="NiParticleBomb" abstract="0" inherit="NiParticleModifier">
        <add name="Decay" type="float"></add>
        <add name="Duration" type="float"></add>
        <add name="DeltaV" type="float"></add>
        <add name="Start Time" type="float"></add>
        <add name="Decay Type" type="DecayType"></add>
        <add name="Symmetry Type" type="SymmetryType"></add>
        <add name="Position" type="Vector3"></add>
        <add name="Direction" type="Vector3"></add>
    </niobject>
 
    <niobject name="NiParticleColorModifier" abstract="0" inherit="NiParticleModifier">
        <add name="Color Data" type="Ref" template="NiColorData"></add>
    </niobject>
 
    <niobject name="NiParticleGrowFade" abstract="0" inherit="NiParticleModifier">
        <add name="Grow" type="float"></add>
        <add name="Fade" type="float"></add>
    </niobject>
    
     <!-- Particles Collider -->
    <niobject name="NiParticleCollider" abstract="1" inherit="NiParticleModifier">
        <add name="Bounce" type="float"></add>
     </niobject>
     
    <niobject name="NiPlanarCollider" abstract="0" inherit="NiParticleCollider">
        <add name="Height" type="float"></add>
        <add name="Width" type="float"></add>
        <add name="Position" type="Vector3"></add>
        <add name="X rotation" type="Vector3"></add>
        <add name="Y rotation" type="Vector3"></add>
        <add name="Plane" type="NiPlane"></add>
      </niobject>
 
    <niobject name="NiSphericalCollider" abstract="0" inherit="NiParticleCollider">
        <add name="Radius" type="float" />
        <add name="Position" type="Vector3" />
    </niobject>
    
     <!-- Particles controllers -->
     <niobject name="NiParticleSystemController" abstract="0" inherit="NiTimeController">
        <add name="Speed" type="float"></add>
        <add name="Speed Variation" type="float"></add>
        <add name="Vertical Direction" type="float"></add>
        <add name="Vertical Angle" type="float"></add>
        <add name="Horizontal Direction" type="float"></add>
        <add name="Horizontal Angle" type="float"></add>
        <add name="Initial Normal" type="Vector3"></add>
        <add name="Initial Color" type="Color4"></add>
        <add name="Size" type="float" default="1.0"></add>
        <add name="Emit Start Time" type="float"></add>
        <add name="Emit Stop Time" type="float"></add>
        <add name="Reset Particle System" type="byte"></add>
        <add name="Birth Rate" type="float"></add>
        <add name="Lifetime" type="float"></add>
        <add name="Lifetime Variation" type="float"></add>
        <add name="Use Birth Rate" type="byte"></add>
        <add name="Spawn On Death" type="byte"></add>
        <add name="Emitter Width" type="float"></add>
        <add name="Emitter Height" type="float"></add>
        <add name="Emitter Depth" type="float"></add>
        <add name="Emitter" type="Ptr" template="NiAVObject"></add>
        <add name="Num Spawn Generations" type="ushort"></add>
        <add name="Percentage Spawned" type="float"></add>
        <add name="Spawn Multiplier" type="ushort"></add>
        <add name="Spawned Speed Chaos" type="float"></add>
        <add name="Spawned Speed Direction Chaos" type="float"></add>
         <add name="Num Particles" type="ushort"></add>
        <add name="Num Valid" type="ushort"></add>
        <add name="Particles" type="Particle" arr1="Num Particles"></add>
        <add name="Emitter Controller" type="Ref" template="NiTimeController"></add>
        <add name="Particle Modifier" type="Ref" template="NiParticleModifier"></add>
        <add name="Particle Colliders" type="Ref" template="NiParticleCollider"></add>
        <add name="Trailer" type="byte"></add>
    </niobject>
    
     <niobject name="NiBSPArrayController" abstract="0" inherit="NiParticleSystemController">
    </niobject>
    
     <!-- NIF Objects-->
     <!-- NiObject -->
    
     <!-- skinning-->
    
     <niobject name="NiSkinPartition" abstract="0" inherit="NiObject">
        <add name="Num Partitions" type="uint"></add>
        <add name="Partitions" type="Partition" arr1="Num Partitions"></add>
    </niobject>         
    
     <niobject name="NiSkinData" abstract="0" inherit="NiObject">
        <add name="Skin Transform" type="NiTransform"></add>
        <add name="Num Bones" type="uint"></add>
        <add name="Skin Partition" type="Ref" template="NiSkinPartition"></add>
        <add name="Bone List" type="BoneData" arr1="Num Bones"></add>
    </niobject>
    
     <niobject name="NiSkinInstance" abstract="0" inherit="NiObject">
        <add name="Data" type="Ref" template="NiSkinData"></add>
        <add name="Skeleton Root" type="Ptr" template="NiNode"></add>
        <add name="Num Bones" type="uint"></add>
        <add name="Bones" type="Ptr" template="NiNode" arr1="Num Bones"></add>
    </niobject>    
    
     <!-- texture-->
     <niobject name="NiPalette" abstract="0" inherit="NiObject">
        <add name="Unknown Byte" type="byte"></add>
        <add name="Num Entries" type="uint" default="256"></add>
        <add name="Palette" type="ByteColor4" arr1="256"></add>
    </niobject>
    
     <niobject name="NiPixelData"  abstract="0" inherit="NiObject">
        <add name="Pixel Format" type="NiPixelFormat"></add>
        <add name="Palette" type="Ref" template="NiPalette"></add>
        <add name="Num Mipmaps" type="uint"></add>
        <add name="Bytes Per Pixel" type="uint"></add>
        <add name="Mipmaps" type="MipMap" arr1="Num Mipmaps"></add>
        <add name="Num Pixels" type="uint"></add>
        <add name="Pixel Data" type="byte" binary="1" arr1="Num Pixels"></add>
    </niobject>
    
     <!-- alphaAccumulator -->
     <niobject name="NiAccumulator" abstract="1" inherit="NiObject">
     </niobject>
    
    <niobject name="NiClusterAccumulator" abstract="0" inherit="NiAccumulator">
     </niobject>
    
    <niobject name="NiAlphaAccumulator" abstract="0" inherit="NiAccumulator">
     </niobject>
    
     <!-- texture thing no reson to use-->
     <niobject name="NiBltSource" abstract="0" inherit="NiObject">
        <add name="Use External" type="byte" default="1"></add>
        <add name="File Name" type="FilePath" cond="Use External"></add>
        <add name="Has Pixel Data" type="byte" default="1" cond="Use External == 0"></add>
         <add name="Pixel Data" type="Ref" template="NiPixelData" cond="Has Pixel Data"></add>
    </niobject>
    
     <!-- data -->    
     <niobject name="NiMorphData"  abstract="0" inherit="NiObject">
        <add name="Num Morphs" type="uint"></add>
        <add name="Num Vertices" type="uint"></add>
        <add name="Relative Targets" type="byte" default="1"></add>
        <add name="Morphs" type="Morph" arg="Num Vertices" arr1="Num Morphs"></add>
    </niobject>
    
     <niobject name="NiColorData" abstract="0" inherit="NiObject">
        <add name="Data" type="KeyGroup" template="Color4"></add>
    </niobject>
    
     <niobject name="NiFloatData" abstract="0" inherit="NiObject">
        <add name="Data" type="KeyGroup" template="float"></add>
    </niobject>
    
     <niobject name="NiPosData" abstract="0" inherit="NiObject">
        <add name="Data" type="KeyGroup" template="Vector3"></add>
    </niobject>    
    
     <niobject name="NiUVData" abstract="0" inherit="NiObject">
        <add name="UV Groups" type="KeyGroup" template="float" arr1="4"></add>
    </niobject>
 
    <niobject name="NiVisData" abstract="0" inherit="NiObject">
        <add name="Num Keys" type="uint"></add>
        <add name="Keys" type="Key" arg="1" template="byte" arr1="Num Keys"></add>
    </niobject>
 
     <niobject name="NiKeyframeData" abstract="0" inherit="NiObject">
     <add name="Num Rotation Keys" type="uint"></add>
        <add name="Rotation Type" type="KeyType" default="1" cond="Num Rotation Keys != 0"></add>
        <add name="Quaternion Keys" type="QuatKey" arg="Rotation Type" template="Quaternion" arr1="Num Rotation Keys" cond="Rotation Type != 4"></add>
        <add name="Axis Order" type="AxisOrder" cond="Rotation Type == 4"></add>
        <add name="XYZ Rotations" type="KeyGroup" template="float" arr1="3" cond="Rotation Type == 4"></add>
        <add name="Translations" type="KeyGroup" template="Vector3"></add>
        <add name="Scales" type="KeyGroup" template="float"></add>
    </niobject>
    
     <!-- NIF Objects-->
     <!-- Controllers -->    
     <niobject name="NiFloatController" abstract="1" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiFloatData"></add>
    </niobject>
    
     <!-- Controller not for using should be -->
     <niobject name="NiKeyframeManager" abstract="0" inherit="NiTimeController">
        <add name="Num Sequences" type="uint"></add>
        <add name="Sequences" type="NiSequenceMW" arr1="Num Sequences"></add>    
    </niobject>    
    
     <!-- Controllers morph -->
     <niobject name="NiMorpherController" abstract="1" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiMorphData"></add>
    </niobject>    
 
     <niobject name="NiGeomMorpherController" abstract="0" inherit="NiMorpherController">
        <add name="Always Update" type="byte"></add>
    </niobject>    
    
     <!-- Controllers float -->
     <niobject name="NiRollController" abstract="0" inherit="NiFloatController">
    </niobject>
    
     <niobject name="NiAlphaController" abstract="0" inherit="NiFloatController">
    </niobject>
    
     <!-- Controllers time -->
    <niobject name="NiKeyframeController" abstract="0" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiKeyframeData"></add>
    </niobject>
 
    <niobject name="NiFlipController" abstract="0" inherit="NiTimeController">
        <add name="Affected Map" type="TexType"></add>
        <add name="Flip Start Time" type="float"></add>
        <add name="Seconds Per Frame" type="float"></add>
        <add name="Num Textures" type="uint"></add>
        <add name="Textures" type="Ref" template="NiTexture" arr1="Num Textures"></add>
    </niobject>
 
    <niobject name="NiLookAtController" abstract="0" inherit="NiTimeController">
        <add name="Look At" type="Ref" template="NiAVObject"></add>
    </niobject>
 
    <niobject name="NiPathController" abstract="0" inherit="NiTimeController">
        <add name="Bank Dir" type="int" default="1"></add>
        <add name="Max Bank Angle" type="float"></add>
        <add name="Smoothing" type="float"></add>
        <add name="Follow Axis" type="short"></add>
        <add name="Path Data" type="Ref" template="NiPosData"></add>
        <add name="Percent Data" type="Ref" template="NiFloatData"></add>
    </niobject>
    
     <niobject name="NiUVController" abstract="0" inherit="NiTimeController">
        <add name="Texture Set" type="ushort"></add>
        <add name="Data" type="Ref" template="NiUVData"></add>
    </niobject>
    
    <niobject name="NiVisController" abstract="0" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiVisData"></add>
    </niobject>
    
    <niobject name="NiMaterialColorController" abstract="0" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiPosData"></add>
    </niobject>
 
    <niobject name="NiLightColorController"  abstract="0" inherit="NiTimeController">
        <add name="Data" type="Ref" template="NiPosData"></add>
    </niobject>
    
     <!-- NIF Objects-->
     <!-- NiDynamicEffect -->
    
     <niobject name="NiLight" abstract="1" inherit="NiDynamicEffect">
        <add name="Dimmer" type="float" default="1.0"></add>
        <add name="Ambient Color" type="Color3" default="#FFFFFF"></add>
        <add name="Diffuse Color" type="Color3" default="#0000000"></add>
        <add name="Specular Color" type="Color3" default="#0000000"></add>
    </niobject>
    
     <niobject name="NiTextureEffect" abstract="0" inherit="NiDynamicEffect">
        <add name="Model Projection Matrix" type="Matrix33REF"></add>
        <add name="Model Projection Transform" type="Vector3"></add>
        <add name="Texture Filtering" type="TexFilterMode" default="FILTER_TRILERP"></add>
        <add name="Texture Clamping" type="TexClampMode" default="WRAP_S_WRAP_T"></add>
        <add name="Texture Type" default="EFFECT_ENVIRONMENT_MAP" type="EffectType"></add>
        <add name="Coordinate Generation Type" default="CG_SPHERE_MAP" type="CoordGenType"></add>
        <add name="Source Texture" type="Ref" template="NiSourceTexture" ver1="4.0.0.0"></add>
        <add name="Clipping Plane Enabled" type="byte"></add>
        <add name="Clipping Plane" type="NiPlaneREF"></add>
        <add name="PS2 L" type="short" default="0" ver2="10.2.0.0"></add>
        <add name="PS2 K" type="short" default="-75" ver2="10.2.0.0"></add>
        <add name="NA" type="ushort"></add>
    </niobject>
    
     <niobject name="NiAmbientLight" abstract="0" inherit="NiLight">
    </niobject>
    
     <niobject name="NiDirectionalLight" abstract="0" inherit="NiLight">
    </niobject>
    
    <niobject name="NiPointLight" abstract="0" inherit="NiLight">
        <add name="Constant Attenuation" type="float" default="1.0"></add>
        <add name="Linear Attenuation" type="float"  default="0.0"></add>
        <add name="Quadratic Attenuation" type="float"  default="0.0"></add>
    </niobject>    
    
    <niobject name="NiSpotLight" abstract="0" inherit="NiPointLight">
        <add name="Outer Spot Angle" type="float" default="10.0"></add>
        <add name="Exponent" type="float" default="150.0"></add>
    </niobject>
    
     <!-- END -->
 
</niftoolsxml>