Architecture:Map Object Format: Difference between revisions

From Adonthell
Jump to navigation Jump to search
Updated for new 3D shapes
m Reverted edits by Asipicabad (talk) to last revision by Ksterker
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Example Map Object Model ==
== Example Map Object Model ==


The following XML file describes a simple [[Architecture:Map Module#Map Objects and Shapes|Map Object]] that has been [[Architecture:Base Module#Data Persistance|serialized]].
The following XML structure describes a simple [[Architecture:Map Module#Map Objects and Shapes|Map Object]] that has been [[Architecture:Base Module#Data Persistence|serialized]]. Usually you will not see or edit this structure, as the [[Tools:Modeller:Contents|Modeller]] tool will take care of that.


   <?xml version="1.0"?>
   <?xml version="1.0"?>
   <Data>
   <Data>
     <list id="model">
     <list id="model">
      <string id="state">default</string>
       <list id="default">
       <list id="default">
         <list id="shape">
         <list id="shape">
Line 15: Line 14:
             <string id="p3d">[40, 40, 0]</string>
             <string id="p3d">[40, 40, 0]</string>
             <string id="p3d">[0, 40, 0]</string>
             <string id="p3d">[0, 40, 0]</string>
             <string id="p3d">[0, 0, 0]</string>
             <string id="p3d">[0, 0, 5]</string>
             <string id="p3d">[40, 0, 0]</string>
             <string id="p3d">[40, 0, 5]</string>
             <string id="p3d">[40, 40, 0]</string>
             <string id="p3d">[40, 40, 5]</string>
             <string id="p3d">[0, 40, 0]</string>
             <string id="p3d">[0, 40, 5]</string>
           </list>
           </list>
         </list>
         </list>
       </list>
       </list>
      <string id="sprite">data/gfx/map/ground/outside/grass/grass-ground.xml</string>
     </list>
     </list>
    <string id="sprite">data/gfx/map/ground/outside/grass/grass-ground.xml</string>
   </Data>
   </Data>


It is a flat ground tile of size 40x40 and zero height.
It is a flat ground tile of size 40x40 and height of 5 (tiles with no height are not allowed, as that would break collision detection).


== Parameters of a Map Object ==
== Parameters of a Map Object ==


A [[Architecture:Map Module#Map Objects and Shapes|Map Object]] has two components: the <tt>model</tt> part contains the 'physical' properties of the object, while the <tt>sprite</tt> part contains its graphical representation.  
A [[Architecture:Map Module#Map Objects and Shapes|Map Object]] has two components: the <tt>model</tt> part contains the 'physical' properties of the object (its extend in world space), while the <tt>sprite</tt> part contains its [[Architecture:Gfx Module#Sprites|graphical representation]] (i.e. its looks). One placeable can consist of multiple models, each with its own sprite.


The <tt>model</tt> is composed of one or more states that correspond to separate animations in the <tt>sprite</tt>. Associated with each state is a <tt>shape</tt>, which is composed of one or more <tt>cube</tt>s. These are defined by the position of their 8 corner points (in pixels). These positions are given relative to the bottom left corner of the corresponding animation.  
The <tt>model</tt> part of an entity is composed of one or more states that correspond to separate animations in the associated <tt>sprite</tt>. Each state is represented by a <tt>shape</tt>, which in turn is composed of one or more <tt>cube</tt>s. These are defined by the position of their 8 corner points (in pixels), relative to the bottom left corner of the corresponding animation.  


All cubes together, placed inside a bounding box, define the length (extension along the x axis), width (extension along the y axis) and height (extension along the z axis) of the map object.
All cubes of all entities together, placed inside a bounding box, define the length (extension along the x axis), width (extension along the y axis) and height (extension along the z axis) of the map object.


<!-- It should be noted that it is possible to use "degenerated" cubes, where one or more points may share the same coordinate. -->
<!-- It should be noted that it is possible to use "degenerated" cubes, where one or more points may share the same coordinate. -->
Line 40: Line 39:
[[Category:Development]]
[[Category:Development]]
[[Category:Architecture]]
[[Category:Architecture]]
[[Category:File Format]]

Latest revision as of 18:11, 27 November 2010

Example Map Object Model

The following XML structure describes a simple Map Object that has been serialized. Usually you will not see or edit this structure, as the Modeller tool will take care of that.

 <?xml version="1.0"?>
 
   <list id="model">
     <list id="default">
       <list id="shape">
         <u_int16 id="num">1</u_int16>
         <list id="cube">
           <string id="p3d">[0, 0, 0]</string>
           <string id="p3d">[40, 0, 0]</string>
           <string id="p3d">[40, 40, 0]</string>
           <string id="p3d">[0, 40, 0]</string>
           <string id="p3d">[0, 0, 5]</string>
           <string id="p3d">[40, 0, 5]</string>
           <string id="p3d">[40, 40, 5]</string>
           <string id="p3d">[0, 40, 5]</string>
         </list>
       </list>
     </list>
     <string id="sprite">data/gfx/map/ground/outside/grass/grass-ground.xml</string>
   </list>
 

It is a flat ground tile of size 40x40 and height of 5 (tiles with no height are not allowed, as that would break collision detection).

Parameters of a Map Object

A Map Object has two components: the model part contains the 'physical' properties of the object (its extend in world space), while the sprite part contains its graphical representation (i.e. its looks). One placeable can consist of multiple models, each with its own sprite.

The model part of an entity is composed of one or more states that correspond to separate animations in the associated sprite. Each state is represented by a shape, which in turn is composed of one or more cubes. These are defined by the position of their 8 corner points (in pixels), relative to the bottom left corner of the corresponding animation.

All cubes of all entities together, placed inside a bounding box, define the length (extension along the x axis), width (extension along the y axis) and height (extension along the z axis) of the map object.