Files
gtav-src/tools_ng/dcc/current/max2012/plugcfg/SceneXml.xml
T
2025-09-29 00:52:08 +02:00

507 lines
13 KiB
XML
Executable File

<?xml version="1.0" ?>
<!--
scenexml.xml
3dsmax SceneXml Exporter Configuration File
David Muir <david.muir@rockstarnorth.com>
10 December 2007
This configuration file determines which 3dsmax scene nodes are exported,
and how they are exported to XML.
The properties defined attempt to read the same name property from the node
by default. The following are special properties which are handled uniquely
in the SceneXml exporter:
- "name"
Object's name.
- "attributes"
Defined to export non-default value MaxDataStore attributes to the
XML output file.
- "transform"
Defined to export non-default position and rotation to the XML
output file (world-space).
- "materials"
Defined to export materials meta-data to the XML output file.
- "paramblocks"
3dsmax ParamBlock2 definitions (some custom objects still use these)
- "boundingbox"
3dsmax bounding box (world-space).
- "user"
3dsmax user properties.
- "user_properties"
3dsmax user defined properties
- "subobjects"
Subobject properties (be careful about usage).
- "lodhierarchy"
Export Rockstar North LOD hierarchy for object (parent and children)
if applicable.
- "
All node's class and superclass properties should be in lowercase with
spaces converted to "_" characters. The SceneXml plugin automatically
handles converting class names to this format so comparisons will work.
Generic type strings must be one of:
string, int, bool, float
-->
<scenexml>
<!--
Object node name in exported XML file. Having all nodes exported as
the same top-level XML node name makes writing parses easier and
more maintainable, as they can just ignore classes they don't
understand.
-->
<object export_as="object" />
<!--
Material table configuration.
-->
<material export="true" />
<!--
Superclass Definitions
Specify superclass friendly names and their ID export_as defined in the 3dsmax
SDK headers. The friendly names are matched against any superclass
nodes defined below.
Identifiers should be in decimal notation.
-->
<superclasses>
<superclass id="2" name="gen_derivob" />
<superclass id="3" name="derivob" />
<superclass id="16" name="geomobject" />
<superclass id="32" name="camera" />
<superclass id="48" name="light" />
<superclass id="64" name="shape" />
<superclass id="80" name="helper" />
</superclasses>
<!--
Class Nodes
Specify class nodes below this comment. These are used to catch
specific object classes in 3dsmax.
-->
<!--
Export editable_mesh nodes
-->
<node class="editable_mesh">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<!-- <property name="paramblocks" /> -->
<property name="materials" />
<property name="lodhierarchy" />
<property name="animation_props">
<keys name="active" />
<keys name="visibility" />
</property>
<property name="polycount" />
</properties>
</node>
<!--
Export editable_poly nodes
-->
<node class="editable_poly">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<!-- <property name="paramblocks" /> -->
<property name="materials" />
<property name="lodhierarchy" />
<property name="animation_props">
<keys name="active" />
<keys name="visibility" />
</property>
<property name="polycount" />
</properties>
</node>
<!--
Editable_patch nodes - These aren't actually supported for export, but
adding in here so that Scene XML doesn't export an 'undefined' node.
-->
<node class="editable_patch">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
</properties>
</node>
<!--
3dsmax 2010 Container nodes
-->
<node class="container">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
</properties>
</node>
<!--
Export Gta ProcObj nodes
-->
<node class="gta_procobj">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="paramblocks" />
</properties>
</node>
<!--
Export Gta Milo Tri
-->
<node class="gta_milotri">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
<property name="boundingbox" />
</properties>
</node>
<!--
3dsmax 2011 Stated Anim proxy nodes
-->
<node class="statedanimproxy">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
</properties>
</node>
<!--
VisbilityBounds
-->
<node class="rsvisibilitybound">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
</properties>
</node>
<!--
RsOcclusionBox
-->
<node class="rsocclusionbox">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="paramblocks" />
</properties>
</node>
<!--
RsStreamingExtentsOverrideBox
-->
<node class="rsstreamingextentsoverridebox">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="paramblocks" />
</properties>
</node>
<!--
Export XRef nodes
From ixrefobj.h:
#define IID_XREF_OBJECT8 Interface_ID(0x470145ad, 0x3daa64e1)
Needs to be converted to decimal for TinyXML... even has problems with
Hex-strings. Erk.
Note: This is the Interface_ID rather than the Class_ID! Can't find
a way to fetch this at run-time.
-->
<node class="xref_object" ida="1191265709" idb="1034577121">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="activeFileName" export_as="reffile" type="filename" />
<property name="activeObjName" export_as="refname" type="string" />
<property name="lodhierarchy" />
</properties>
</node>
<!--
Export RSref nodes
-->
<node class="rsrefobject">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="lodhierarchy" />
</properties>
</node>
<!--
Export RsRefInternal nodes
-->
<node class="rsinternalref">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="lodhierarchy" />
</properties>
</node>
<!--
Export RSref nodes
-->
<node class="rscontainerlodref">
<properties>
<property name="name" />
<property name="paramblocks" />
<property name="lodhierarchy" />
</properties>
</node>
<!--
Export InternalRef nodes
-->
<node class="internalref" ida="0x62a94c64" idb="0x3635185">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="materials" />
<property name="subobjects" />
<property name="lodhierarchy" />
</properties>
</node>
<!--
Export GtaBlock nodes
-->
<node class="gta_block" ida="571614280" idb="1621251351">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="paramblocks" />
</properties>
</node>
<!--
Export GtaTimeCycle nodes
-->
<node class="gta_timecycle" ida="943292105" idb="1509126041">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="paramblocks" />
</properties>
</node>
<!--
Collision nodes
-->
<node class="col_box">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="user_properties" />
<property name="polycount" />
</properties>
</node>
<node class="col_sphere">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="polycount" />
<property name="user_properties" />
</properties>
</node>
<node class="col_mesh">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="polycount" />
<property name="user_properties" />
</properties>
</node>
<node class="col_plane">
<properties>
<property name="name" />
<property name="paramblocks" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="polycount" />
<property name="user_properties" />
</properties>
</node>
<!--
Export bone nodes
-->
<node class="bone">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
<property name="paramblocks" />
<property name="animation_props">
<keys name="active" />
<keys name="visibility" />
</property>
<property name="user_properties" />
</properties>
</node>
<!--
Don't export data for these helper-classes, they're only used by our Max tools:
-->
<node class="_rslodcombinerdata_">
<properties>
<property name="name" />
</properties>
</node>
<node class="_rsrefdatastorenode_">
<properties>
<property name="name" />
</properties>
</node>
<node class="_rsgenericdatanode_">
<properties>
<property name="name" />
</properties>
</node>
<!--
Superclass Nodes
Specify superclass nodes below this comment. These are used export_as catch
all cases so we don't have to micro-manage this file when new custom
objects (e.g. Helpers) are added into our maps.
-->
<!--
Export helper nodes
-->
<node superclass="helper">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="subobjects" />
<property name="references" />
<property name="lodhierarchy" />
<property name="animation_props">
<keys name="active" />
<keys name="visibility" />
</property>
<property name="user_properties" />
</properties>
</node>
<!--
Export light nodes
We have some additional custom light properties that are required for
the 2DFX light IDE file generation and we can't seem to fetch them
using the user property.
-->
<node superclass="light">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="refTextures" />
</properties>
</node>
<!--
Export Photometric Light nodes
We don't export the parameter blocks because these crash the plugin.
-->
<node class="free_light">
<properties>
<property name="name" />
<property name="transform" />
<property name="attributes" />
<property name="platformAttributes" />
<property name="paramblocks" />
<property name="materials" />
<property name="refTextures" />
</properties>
</node>
<!--
Export shape nodes
-->
<node superclass="shape">
<properties>
<property name="name" />
<property name="transform" />
<property name="boundingbox" />
<property name="attributes" />
<property name="paramblocks" />
<property name="materials" />
<property name="lodhierarchy" />
</properties>
</node>
</scenexml>
<!-- End of scenexml.xml -->