Skip to content

Instantly share code, notes, and snippets.

@Greatness7
Last active December 30, 2023 08:49
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Greatness7/82c736571fdc49ea6241e22c05719253 to your computer and use it in GitHub Desktop.
Save Greatness7/82c736571fdc49ea6241e22c05719253 to your computer and use it in GitHub Desktop.
nif.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE niftoolsxml>
<niftoolsxml version="0.0.0.0">
<!-- Supported Versions -->
<version num="4.0.0.2"></version>
<!-- Basic Types -->
<basic name="bool" count="1"></basic>
<basic name="byte" count="1"></basic>
<basic name="char" count="0"></basic>
<basic name="short" count="1"></basic>
<basic name="ushort" count="1"></basic>
<basic name="int" count="1"></basic>
<basic name="uint" count="1"></basic>
<basic name="float" count="0"></basic>
<basic name="Ptr" count="0" istemplate="1"></basic>
<basic name="Ref" count="0" istemplate="1"></basic>
<basic name="Flags" count="0"></basic>
<basic name="HeaderString" count="0"></basic>
<basic name="FileVersion" count="0"></basic>
<!-- Enumerations -->
<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"> <!-- TODO: rename to TextureMap -->
<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>
</enum>
<enum name="KeyType" storage="uint">
<!-- <option value="0" name="NOINTERP"></option> -->
<option value="1" name="LINKEY"></option>
<option value="2" name="BEZKEY"></option>
<option value="3" name="TCBKEY"></option>
<option value="4" name="EULERKEY"></option>
</enum>
<enum name="PixelFormat" storage="uint" prefix="PX">
<option value="0" name="FMT_RGB"></option>
<option value="1" name="FMT_RGBA"></option>
<option value="2" name="FMT_PAL"></option>
<option value="3" name="FMT_PALA"></option>
<option value="4" name="FMT_DXT1"></option>
<option value="5" name="FMT_DXT3"></option>
<option value="6" name="FMT_DXT5"></option>
<option value="7" name="FMT_RGB24NONINT"></option>
<option value="8" name="FMT_BUMP"></option>
<option value="9" name="FMT_BUMPLUMA"></option>
<option value="10" name="FMT_RENDERSPEC"></option>
<option value="11" name="FMT_1CH"></option>
<option value="12" name="FMT_2CH"></option>
<option value="13" name="FMT_3CH"></option>
<option value="14" name="FMT_4CH"></option>
<option value="15" name="FMT_DEPTH_STENCIL"></option>
<option value="16" name="FMT_UNKNOWN"></option>
</enum>
<enum name="PixelTiling" storage="uint" prefix="PX">
<option value="0" name="TILE_NONE"></option>
<option value="1" name="TILE_XENON"></option>
<option value="2" name="TILE_WII"></option>
<option value="3" name="TILE_NV_SWIZZLED"></option>
</enum>
<enum name="PixelLayout" storage="uint" prefix="PX">
<option value="0" name="LAY_PALETTIZED_8"></option>
<option value="1" name="LAY_HIGH_COLOR_16"></option>
<option value="2" name="LAY_TRUE_COLOR_32"></option>
<option value="3" name="LAY_COMPRESSED"></option>
<option value="4" name="LAY_BUMPMAP"></option>
<option value="5" name="LAY_PALETTIZED_4"></option>
<option value="6" name="LAY_DEFAULT"></option>
<option value="7" name="LAY_SINGLE_COLOR_8"></option>
<option value="8" name="LAY_SINGLE_COLOR_16"></option>
<option value="9" name="LAY_SINGLE_COLOR_32"></option>
<option value="10" name="LAY_DOUBLE_COLOR_32"></option>
<option value="11" name="LAY_DOUBLE_COLOR_64"></option>
<option value="12" name="LAY_FLOAT_COLOR_32"></option>
<option value="13" name="LAY_FLOAT_COLOR_64"></option>
<option value="14" name="LAY_FLOAT_COLOR_128"></option>
<option value="15" name="LAY_SINGLE_COLOR_4"></option>
<option value="16" name="LAY_DEPTH_24_X8"></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="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="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>
<option value="6" name="FILTER_ANISOTROPIC"></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="LightMode" storage="uint">
<option value="0" name="LIGHT_MODE_EMISSIVE"></option>
<option value="1" name="LIGHT_MODE_EMI_AMB_DIF"></option>
</enum>
<enum name="CycleType" storage="uint">
The animation cyle behavior.
<option value="0" name="CYCLE_LOOP"></option>
<option value="1" name="CYCLE_REVERSE"></option>
<option value="2" name="CYCLE_CLAMP"></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="StencilAction" storage="uint">
<option value="0" name="ACTION_KEEP"></option>
<option value="1" name="ACTION_ZERO"></option>
<option value="2" name="ACTION_REPLACE"></option>
<option value="3" name="ACTION_INCREMENT"></option>
<option value="4" name="ACTION_DECREMENT"></option>
<option value="5" name="ACTION_INVERT"></option>
</enum>
<enum name="StencilDrawMode" 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>
</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="TextureType" 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="BoundType" storage="uint">
<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>
<!--Compounds-->
<compound name="Header">
<add name="Header String" type="HeaderString"></add>
<add name="Version" type="FileVersion" default="0x04000002"></add>
<add name="Num Blocks" type="uint"></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="string">
<add name="Length" type="uint"></add>
<add name="Value" type="char" arr1="Length"></add>
</compound>
<compound name="Color3">
<add name="r" type="float"></add>
<add name="g" type="float"></add>
<add name="b" type="float"></add>
</compound>
<compound name="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">
<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">
<add name="String" type="SizedString"></add>
</compound>
<compound name="LODRange">
<add name="Near Extent" type="float"></add>
<add name="Far Extent" type="float"></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">
<!-- NOTE: HARDCODED NAME -->
<add name="x" type="float"></add>
<add name="y" type="float"></add>
<add name="z" type="float"></add>
</compound>
<compound name="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">
<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="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">
<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="MipMap">
<add name="Width" type="uint"></add>
<add name="Height" type="uint"></add>
<add name="Offset" type="uint"></add>
</compound>
<compound name="BoneVertData">
<add name="Index" type="ushort"></add>
<add name="Weight" type="float"></add>
</compound>
<compound name="TBC">
<add name="t" type="float"></add>
<add name="b" type="float"></add>
<add name="c" 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="QuatKey" istemplate="1">
<add name="Time" type="float"></add>
<add name="Value" type="TEMPLATE" cond="ARG != 4"></add>
<add name="TBC" type="TBC" cond="ARG == 3"></add>
</compound>
<compound name="TexCoord"> <!-- NiPoint2 -->
<add name="x" type="float"></add>
<add name="y" 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"></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>
</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">
<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="NiPlane">
<add name="Normal" type="Vector3"></add>
<add name="Constant" type="float"></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="Morph"> <!-- NiMorphData::MorphTarget -->
<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="Particles"> <!-- NiPerParticleData -->
<add name="Velocity" type="Vector3"></add>
<add name="Rotation Axis" type="Vector3"></add>
<add name="Age" type="float"></add>
<add name="Lifespan" type="float"></add>
<add name="Last Update" type="float"></add>
<add name="Generation" type="ushort"></add>
<add name="Index" type="ushort"></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="NiSphereBV">
<add name="Center" type="Vector3"></add>
<add name="Radius" type="float"></add>
</compound>
<compound name="NiBoxBV">
<add name="Center" type="Vector3"></add>
<add name="Axis" type="Vector3" arr1="3"></add>
<add name="Extent" type="Vector3"></add>
</compound>
<compound name="NiCapsuleBV">
<add name="Origin" type="Vector3"></add>
<add name="Direction" type="Vector3"></add>
<add name="Extent" type="float"></add>
<add name="Radius" type="float"></add>
</compound>
<compound name="NiLozengeBV">
<add name="Center" type="Vector3"></add>
<add name="Axis0" type="Vector3"></add>
<add name="Axis1" type="Vector3"></add>
<add name="Radius" type="float"></add>
</compound>
<compound name="NiUnionBV">
<add name="Num Bounding Volumes" type="uint"></add>
<add name="Bounding Volumes" type="NiBoundingVolume" arr1="Num Bounding Volumes"></add>
</compound>
<compound name="NiHalfSpaceBV">
<add name="Plane" type="NiPlane"></add>
<!-- <add name="Center" type="Vector3"></add> -->
</compound>
<compound name="NiBoundingVolume">
<add name="Bound Type" type="BoundType"></add>
<add name="Bound Data" type="NiSphereBV" cond="Bound Type == 0"></add>
<add name="Bound Data" type="NiBoxBV" cond="Bound Type == 1"></add>
<add name="Bound Data" type="NiCapsuleBV" cond="Bound Type == 2"></add>
<add name="Bound Data" type="NiLozengeBV" cond="Bound Type == 3"></add>
<add name="Bound Data" type="NiUnionBV" cond="Bound Type == 4"></add>
<add name="Bound Data" type="NiHalfSpaceBV" cond="Bound Type == 5"></add>
</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="NameControllerPair">
<add name="Name" type="string"></add>
<add name="Controller" type="Ptr" template="NiKeyframeController"></add>
</compound>
<compound name="NiSequence">
<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>
<!--Structs-->
<niobject name="NiObject">
</niobject>
<niobject name="NiAccumulator" inherit="NiObject">
</niobject>
<niobject name="NiClusterAccumulator" inherit="NiAccumulator">
</niobject>
<niobject name="NiAlphaAccumulator" inherit="NiAccumulator">
</niobject>
<niobject name="NiExtraData" inherit="NiObject">
<add name="Next Extra Data" type="Ref" template="NiExtraData"></add>
<add name="Bytes Remaining" type="uint"></add>
</niobject>
<niobject name="TES3ObjectExtraData" inherit="NiExtraData">
</niobject>
<niobject name="BrickNiExtraData" inherit="NiExtraData">
</niobject>
<niobject name="NiStringExtraData" inherit="NiExtraData">
<add name="String Data" type="string"></add>
</niobject>
<niobject name="NiTextKeyExtraData" 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" inherit="NiExtraData">
<add name="Num Weights" type="ushort"></add>
<add name="Weight" type="float" arr1="Num Weights"></add>
</niobject>
<niobject name="NiGeometryData" 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="NiLinesData" inherit="NiGeometryData">
<add name="Lines" type="byte" arr1="Num Vertices"></add>
</niobject>
<niobject name="NiTriBasedGeomData" inherit="NiGeometryData">
<add name="Num Triangles" type="ushort"></add>
</niobject>
<niobject name="NiParticlesData" 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="NiAutoNormalParticlesData" inherit="NiParticlesData">
</niobject>
<niobject name="NiRotatingParticlesData" inherit="NiParticlesData">
<add name="Has Rotations" type="bool"></add>
<add name="Rotations" type="Quaternion" arr1="Num Vertices" cond="Has Rotations"></add>
</niobject>
<niobject name="NiTriShapeData" 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="NiTriShapeDynamicData" inherit="NiTriShapeData">
<add name="Num Active Vertices" type="ushort"></add>
<add name="Num Active Triangles" type="ushort"></add>
</niobject>
<niobject name="NiTriStripsData" 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="NiObjectNET" inherit="NiObject">
Abstract base class for NiObjects that support names, extra data, and time controllers.
<add name="Name" type="string"></add>
<add name="Extra Data" type="Ref" template="NiExtraData"></add>
<add name="Controller" type="Ref" template="NiTimeController"></add>
</niobject>
<niobject name="NiSequenceStreamHelper" inherit="NiObjectNET">
</niobject>
<niobject name="NiTexture" inherit="NiObjectNET">
</niobject>
<niobject name="NiRenderedTexture" inherit="NiTexture">
</niobject>
<niobject name="NiRenderedCubeMap" inherit="NiRenderedTexture">
</niobject>
<niobject name="NiSourceTexture" 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="NiProperty" inherit="NiObjectNET">
<!-- flags is pushed down into subclasses -->
</niobject>
<niobject name="NiAlphaProperty" inherit="NiProperty">
<add name="Flags" type="Flags" default="237"></add>
<add name="Threshold" type="byte" default="0"></add>
</niobject>
<niobject name="NiDitherProperty" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
<niobject name="NiFogProperty" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
<add name="Fog Depth" type="float" default="1.0"></add>
<add name="Fog Color" type="Color3"></add>
</niobject>
<niobject name="NiMaterialProperty" inherit="NiProperty">
<!-- TODO: Color3 default not working -->
<add name="Flags" type="Flags" default="1"></add>
<add name="Ambient Color" type="Color3" default="1.0, 1.0, 1.0"></add>
<add name="Diffuse Color" type="Color3" default="1.0, 1.0, 1.0"></add>
<add name="Specular Color" type="Color3" default="0.0, 0.0, 0.0"></add>
<add name="Emissive Color" type="Color3" default="0.0, 0.0, 0.0"></add>
<add name="Shine" type="float" default="0.0"></add>
<add name="Alpha" type="float" default="1.0"></add>
</niobject>
<niobject name="NiRendererSpecificProperty" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
<niobject name="NiShadeProperty" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
<niobject name="NiSpecularProperty" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
<niobject name="NiStencilProperty" 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="StencilDrawMode"></add>
</niobject>
<niobject name="NiTexturingProperty" 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" 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" inherit="NiProperty">
<add name="Flags" type="Flags"></add>
</niobject>
<niobject name="NiZBufferProperty" inherit="NiProperty">
<add name="Flags" type="Flags" default="3"></add>
</niobject>
<niobject name="NiAVObject" 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 Volume" type="bool"></add>
<add name="Bounding Volume" type="NiBoundingVolume" cond="Has Bounding Volume"></add>
</niobject>
<niobject name="NiScreenPolygon" 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="NiCamera" 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" inherit="NiAVObject">
<add name="Num Affected Nodes" type="uint"></add>
<add name="Affected Nodes" type="int" arr1="Num Affected Nodes"></add>
</niobject>
<niobject name="NiTextureEffect" inherit="NiDynamicEffect">
<add name="Model Projection Matrix" type="Matrix33"></add>
<add name="Model Projection Translation" type="Vector3"></add>
<add name="Filter Mode" type="TexFilterMode"></add>
<add name="Clamp Mode" type="TexClampMode"></add>
<add name="Texture Type" type="TextureType"></add>
<add name="Coordinate Generation Type" type="CoordGenType"></add>
<add name="Source" type="Ref" template="NiSourceTexture"></add>
<add name="Clipping Plane Enabled" type="byte"></add>
<add name="Clipping Plane" type="NiPlane"></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>
</niobject>
<niobject name="NiLight" inherit="NiDynamicEffect">
<add name="Dimmer" type="float" default="1.0"></add>
<add name="Ambient Color" type="Color3" default="0.0, 0.0, 0.0"></add>
<add name="Diffuse Color" type="Color3" default="0.0, 0.0, 0.0"></add>
<add name="Specular Color" type="Color3" default="0.0, 0.0, 0.0"></add>
</niobject>
<niobject name="NiAmbientLight" inherit="NiLight">
</niobject>
<niobject name="NiDirectionalLight" inherit="NiLight">
</niobject>
<niobject name="NiPointLight" inherit="NiLight">
<add name="Constant Attenuation" type="float"></add>
<add name="Linear Attenuation" type="float"></add>
<add name="Quadratic Attenuation" type="float"></add>
</niobject>
<niobject name="NiSpotLight" inherit="NiPointLight">
<add name="Outer Spot Angle" type="float"></add>
<add name="Exponent" type="float"></add>
</niobject>
<niobject name="NiGeometry" inherit="NiAVObject">
<add name="Geometry Data" type="Ref" template="NiGeometryData"></add>
<add name="Skin Instance" type="Ref" template="NiSkinInstance"></add>
</niobject>
<niobject name="NiLines" inherit="NiGeometry">
</niobject>
<niobject name="NiTriBasedGeom" inherit="NiGeometry">
</niobject>
<niobject name="NiTriShape" inherit="NiTriBasedGeom">
</niobject>
<niobject name="NiParticles" inherit="NiTriBasedGeom">
</niobject>
<niobject name="NiAutoNormalParticles" inherit="NiParticles">
</niobject>
<niobject name="NiRotatingParticles" inherit="NiParticles">
</niobject>
<niobject name="NiTriStrips" inherit="NiTriBasedGeom">
</niobject>
<niobject name="NiNode" 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" inherit="NiNode">
</niobject>
<niobject name="BSMirroredNode" inherit="NiNode">
</niobject>
<niobject name="RootCollisionNode" inherit="NiNode">
</niobject>
<niobject name="NiBillboardNode" inherit="NiNode">
</niobject>
<niobject name="NiBSAnimationNode" inherit="NiNode">
</niobject>
<niobject name="NiBSParticleNode" inherit="NiBSAnimationNode">
</niobject>
<niobject name="NiBSAnimationManager" inherit="NiNode">
</niobject>
<niobject name="NiBSPNode" inherit="NiNode">
<add name="Model Plane" type="NiPlane"></add>
</niobject>
<niobject name="NiCollisionSwitch" inherit="NiNode">
</niobject>
<niobject name="NiSortAdjustNode" inherit="NiNode">
<add name="Sorting Mode" type="SortingMode" default="SORTING_INHERIT"></add>
<add name="Accumulator" type="Ref" template="NiAccumulator"></add>
</niobject>
<niobject name="NiSwitchNode" inherit="NiNode">
<add name="Active Index" type="uint"></add>
</niobject>
<niobject name="NiFltAnimationNode" inherit="NiSwitchNode">
<add name="Period" type="float"></add>
</niobject>
<niobject name="NiLODNode" 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="NiEmitterModifier" inherit="NiObject">
</niobject>
<niobject name="NiParticleModifier" inherit="NiObject">
<add name="Next Modifier" type="Ref" template="NiParticleModifier"></add>
<add name="Controller" type="Ptr" template="NiParticleSystemController"></add>
</niobject>
<niobject name="NiGravity" inherit="NiParticleModifier">
<add name="Decay" type="float">
How the gravitational force decays with distance. By default this value is zero, which causes no decay.
</add>
<add name="Strength" type="float">
The gravitational strength. This value is specified in units/second^2.
</add>
<add name="ForceType" type="ForceType">
Gravity of type FORCE_PLANAR operates parallel to the vector specified by 'Direction'.
Gravity of type FORCE_SPHERICAL operates spherically about the point specified by 'Position'.
</add>
<add name="Position" type="Vector3">
The position for spherical gravity.
</add>
<add name="Direction" type="Vector3">
The direction of planar gravity.
</add>
</niobject>
<niobject name="NiParticleBomb" 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="NiParticleCollider" inherit="NiParticleModifier">
<add name="Bounce" type="float"></add>
</niobject>
<niobject name="NiPlanarCollider" inherit="NiParticleCollider">
<add name="Height" type="float"></add>
<add name="Width" type="float"></add>
<add name="Position" type="Vector3"></add>
<add name="X Axis" type="Vector3"></add>
<add name="Y Axis" type="Vector3"></add>
<add name="Plane" type="NiPlane"></add>
</niobject>
<niobject name="NiSphericalCollider" inherit="NiParticleCollider">
<add name="Radius" type="float"></add>
<add name="Position" type="Vector3"></add>
</niobject>
<niobject name="NiParticleColorModifier" inherit="NiParticleModifier">
<add name="Color Data" type="Ref" template="NiColorData"></add>
</niobject>
<niobject name="NiParticleGrowFade" inherit="NiParticleModifier">
<add name="Grow Time" type="float"></add>
<add name="Fade Time" type="float"></add>
</niobject>
<niobject name="NiParticleRotation" 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="NiPixelData" 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>
<niobject name="NiBltSource" 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="NiPixelFormat" cond="Has Pixel Data"></add>
</niobject>
<niobject name="NiRenderer" inherit="NiObject">
</niobject>
<niobject name="NiDX8Renderer" inherit="NiRenderer">
</niobject>
<niobject name="NiTimeController" 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="NiFlipController" 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="NiFloatController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiFloatData"></add>
</niobject>
<niobject name="NiAlphaController" inherit="NiFloatController">
</niobject>
<niobject name="NiRollController" inherit="NiFloatController">
</niobject>
<niobject name="NiKeyframeController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiKeyframeData"></add>
</niobject>
<niobject name="NiKeyframeManager" inherit="NiTimeController">
<add name="Num Sequences" type="uint"></add>
<add name="Sequences" type="NiSequence" arr1="Num Sequences"></add>
</niobject>
<niobject name="NiLightColorController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiPosData"></add>
</niobject>
<niobject name="NiLookAtController" inherit="NiTimeController">
<add name="Look At" type="Ptr" template="NiAVObject"></add>
</niobject>
<niobject name="NiMaterialColorController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiPosData"></add>
</niobject>
<niobject name="NiMorpherController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiMorphData"></add>
</niobject>
<niobject name="NiGeomMorpherController" inherit="NiMorpherController">
<add name="Always Update" type="byte"></add>
</niobject>
<niobject name="NiParticleSystemController" inherit="NiTimeController">
A generic particle system time controller object.
<add name="Speed" type="float">
The initial speed for the newly created particles.
</add>
<add name="Speed Variation" type="float">
The speed variation of the newly created particles. The initial speed of new particles will be equally distributed over the range [Speed – SpeedVariation/2, Speed + SpeedVariation/2].
</add>
<add name="Declination Angle" type="float">
The declination angle (from the positive Z axis) for the velocity vector of newly created particles. The expected range of declination is from 0.0, which will set the velocity vector to [0,0,1], to pi, which will set the velocity vector to [0,0,-1].
</add>
<add name="Declination Variation" type="float">
The variation on the declination angle. The initial declination will be computed from the declination and declination variation in the same manner as the initial speed is computed from the speed and speed variation.
</add>
<add name="Planar Angle" type="float">
The planar angle (around the Z axis from the positive X axis) that will serve as the plane in which the declination will occur. The expected range of the planar angle is [0, 2*pi).
</add>
<add name="Planar Angle Variation" type="float">
The variation on the planar angle. The initial planar angle will be computed from the planar angle and planar angle variation in the same manner as the initial speed is computed from the speed and speed variation.
</add>
<add name="Initial Normal" type="Vector3">
The initial value of the normal given to new particles.
</add>
<add name="Initial Color" type="Color4">
The initial color values give to new particles.
</add>
<add name="Initial Size" type="float">
The initial size value given to new particles.
</add>
<add name="Emit Start Time" type="float">
The time value at which the NiParticleSystemController will start emitting particles. If this value is less than the "Start Time" variable (derived from NiTimeController), the controller will perform a run-up for the amount of time indicated by the difference.
</add>
<add name="Emit Stop Time" type="float">
The time value at which the NiParticleSystemController will stop emitting particle.
</add>
<add name="Reset Particle System" type="byte">
Indicates whether or not the NiParticleSystemController should reset the system when the controller loops. If this flag is set to true, existing particles will be eliminated when the controller loops, and any run-up indicated by the EmitStart variable will occur. Otherwise, the controller will simply continue running from the beginning of the loop, and existing particles will continue to run until they die out naturally.
</add>
<add name="Birth Rate" type="float">
The rate at which particles will be generated. (The number of particles that will be spawned per seconds)
</add>
<add name="Life Span" type="float">
The life span for each particle.
</add>
<add name="Life Span Variation" type="float">
The life span variation for each particle. The life span of each particle will be computed from the life span and life span variation in the same manner as the initial speed is computed from the speed and speed variation.
</add>
<add name="Use Birth Rate" type="byte">
Indicates whether or not the birth rate variable should be used as the actual birth rate. If this flag is set to false, the max sustainable birth rate based on the life span of the particles will be used.
</add>
<add name="Spawn On Death" type="byte">
Indicates whether or not a spawn event should occur upon particle death.
</add>
<add name="Emitter Width" type="float">
The dimensions of the volume from which new particles will be generated.
</add>
<add name="Emitter Height" type="float">
The dimensions of the volume from which new particles will be generated.
</add>
<add name="Emitter Depth" type="float">
The dimensions of the volume from which new particles will be generated.
</add>
<add name="Emitter" type="Ptr" template="NiAVObject">
The NiAVObject that will act as the emitter for the object. The emitter volume is transformed into the world coordinates of the emitter before new particles are generated. This allows the transforms of the emitter to change without affecting the transforms of all the particles in the system.
</add>
<add name="Num Spawn Generations" type="ushort">
The number of spawn generations a particle can go through.
</add>
<add name="Percentage Spawned" type="float">
The percentage of particles that will actually spawn when a spawn event occurs. Expected values are between 0.0 and 1.0.
</add>
<add name="Spawn Multiplier" type="ushort">
The number of new particles that will be generated by a spawn event.
</add>
<add name="Spawned Speed Chaos" type="float">
The change in speed that new particles generated by a spawn event will have. A value of 0.0 indicates no change in speed, a value of 1.0 indicates between a 0% and 100% increase in speed, and a value of –1.0 indicates between a 0% and 100% decrease in speed. There is not currently a way of allowing the system to randomly increase or decrease the speed of a new particle.
</add>
<add name="Spawned Direction Chaos" type="float">
The change in direction that new particles generated by a spawn event will have. A value of 0.0 indicates no change in direction, and a value of 1.0 indicates between a 0% and 100% change in direction.
</add>
<add name="Num Particles" type="ushort">
The number of initial particles..
</add>
<add name="Num Active Particles" type="ushort">
The number of active particles in the initial particles array.
</add>
<add name="Particles" type="Particles" arr1="Num Particles">
Data for the initial particles.
</add>
<add name="Emitter Modifier" type="Ref" template="NiEmitterModifier">
Modifiers that will influence the particle system.
</add>
<add name="Particle Modifier" type="Ref" template="NiParticleModifier">
Modifiers that will influence the individual particles.
</add>
<add name="Particle Collider" type="Ref" template="NiParticleCollider">
Colliders that will influence the individual particles.
</add>
<add name="Compute Dynamic Bound Per Frame" type="byte">
Indicates whether or not the controller updates the target particle system bounding volume every frame.
</add>
</niobject>
<niobject name="NiBSPArrayController" inherit="NiParticleSystemController">
</niobject>
<niobject name="NiPathController" 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" inherit="NiTimeController">
<add name="Texture Set" type="ushort"></add>
<add name="Data" type="Ref" template="NiUVData"></add>
</niobject>
<niobject name="NiUVCoordController" inherit="NiUVController">
</niobject>
<niobject name="NiVisController" inherit="NiTimeController">
<add name="Data" type="Ref" template="NiVisData"></add>
</niobject>
<niobject name="NiFloatData" inherit="NiObject">
<add name="Data" type="KeyGroup" template="float"></add>
</niobject>
<niobject name="NiColorData" inherit="NiObject">
<add name="Data" type="KeyGroup" template="Color4"></add>
</niobject>
<niobject name="NiPosData" inherit="NiObject">
<add name="Data" type="KeyGroup" template="Vector3"></add>
</niobject>
<niobject name="NiKeyframeData" 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>
<niobject name="NiMorphData" inherit="NiObject">
<!-- TODO Rename Fields -->
<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="NiPalette" inherit="NiObject">
<add name="Has Alpha" type="byte"></add>
<add name="Num Palettes" type="uint"></add>
<add name="Palette" type="ByteColor4" arr1="Num Palettes"></add>
</niobject>
<niobject name="NiSkinData" 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" 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>
<niobject name="NiSkinPartition" inherit="NiObject">
<add name="Num Partitions" type="uint"></add>
<add name="Partitions" type="Partition" arr1="Num Partitions"></add>
</niobject>
<niobject name="NiUVData" inherit="NiObject">
<!-- TODO: renaming probably breaks animations -->
<add name="U Offset Data" type="KeyGroup" template="float"></add>
<add name="V Offset Data" type="KeyGroup" template="float"></add>
<add name="U Tiling Data" type="KeyGroup" template="float"></add>
<add name="V Tiling Data" type="KeyGroup" template="float"></add>
</niobject>
<niobject name="NiVisData" inherit="NiObject">
<add name="Num Keys" type="uint"></add>
<add name="Keys" type="Key" arg="1" template="byte" arr1="Num Keys"></add>
</niobject>
</niftoolsxml>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment