Difference between revisions of "File tree"

From Mm2kiwi
Jump to: navigation, search
(Particle effect definition)
m (Sky dome definition)
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
__NOTOC__
 
The AR files of MM2 make up a common file tree, the files are extracted to a, shared, virtual file system when needed. The structure of this file system is as follows:
 
The AR files of MM2 make up a common file tree, the files are extracted to a, shared, virtual file system when needed. The structure of this file system is as follows:
 
==Structure==
 
==Structure==
Line 24: Line 25:
 
         skeleton, the entire model will move.
 
         skeleton, the entire model will move.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.csv
 
       <li class="FolderTree-File-JS">*.csv
Line 38: Line 39:
 
         pedestrian might make a transition from one state to another.
 
         pedestrian might make a transition from one state to another.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.rays
 
       <li class="FolderTree-File-JS">*.rays
Line 46: Line 47:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.shaders
 
       <li class="FolderTree-File-JS">*.shaders
Line 57: Line 58:
 
         format.
 
         format.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.skel
 
       <li class="FolderTree-File-JS">*.skel
Line 69: Line 70:
 
         a tree structure.  
 
         a tree structure.  
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.mod
 
       <li class="FolderTree-File-JS">*.mod
Line 79: Line 80:
 
         material attributes and the surfaces of the model.
 
         material attributes and the surfaces of the model.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 88: Line 89:
 
===Audio files===
 
===Audio files===
 
       <p>
 
       <p>
TODO!
 
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
     </ul>
 
     </ul>
Line 96: Line 96:
 
     <li class="FolderTree-Open">bound
 
     <li class="FolderTree-Open">bound
 
     <div class="FolderTree-Content">
 
     <div class="FolderTree-Content">
 +
 
===Object boundaries===
 
===Object boundaries===
 
       <p>
 
       <p>
 +
MM2 use three file types for collision detection and material properties on regular PKG objects, [[BND]], [[BBND]] and [[TER]].
 +
 +
It is not clear when to pick .bbnd/.ter over .bnd, but some indications imply that objects placed with INST typically uses the binary formats.
 
       </p>
 
       </p>
 
     </div>
 
     </div>
 
     <ul>
 
     <ul>
 +
      <li class="FolderTree-File-JS">*.bnd
 +
      <div class="FolderTree-Content">
 +
====ASCII bound====
 +
        <p>
 +
        Simple, ASCII-based file format defined [[BND|here]].
 +
        </p>
 +
      </div><table></table>
 +
      </li>
 
       <li class="FolderTree-File-JS">*.bbnd
 
       <li class="FolderTree-File-JS">*.bbnd
 
       <div class="FolderTree-Content">
 
       <div class="FolderTree-Content">
 
====Binary bound====
 
====Binary bound====
 
         <p>
 
         <p>
 +
        Binary version of the ASCII-based format, defined [[BBND|here]].
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
       <li class="FolderTree-File-JS">*.bnd
+
       <li class="FolderTree-File-JS">*.ter
 
       <div class="FolderTree-Content">
 
       <div class="FolderTree-Content">
====Ascii bound====
+
====Terrain bound====
 
         <p>
 
         <p>
 +
        Unknown format, defined [[TER|here]].
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 119: Line 133:
 
     <li class="FolderTree-Open">city
 
     <li class="FolderTree-Open">city
 
     <div class="FolderTree-Content">
 
     <div class="FolderTree-Content">
 +
 
===City definitions===
 
===City definitions===
 
       <p>
 
       <p>
 
Each MM2 city has a number of files defining the actual city, its geometry, monuments, traffic flows and so on. Many of the files that controls these things are stored in the ''city'' folder.
 
Each MM2 city has a number of files defining the actual city, its geometry, monuments, traffic flows and so on. Many of the files that controls these things are stored in the ''city'' folder.
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
       <li class="FolderTree-Open"><cityname>
 
       <li class="FolderTree-Open"><cityname>
Line 134: Line 149:
 
             <p>
 
             <p>
 
             </p>
 
             </p>
           </div>
+
           </div><table></table>
 
           </li>
 
           </li>
 
         </ul>
 
         </ul>
Line 146: Line 161:
 
           are placed using [[Pathset|pathset]] files.
 
           are placed using [[Pathset|pathset]] files.
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">props.pathset
 
         <li class="FolderTree-File-JS">props.pathset
Line 156: Line 171:
 
           city. Props are placed using [[Pathset|pathset]] files.
 
           city. Props are placed using [[Pathset|pathset]] files.
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">propdefs.csv
 
         <li class="FolderTree-File-JS">propdefs.csv
Line 168: Line 183:
 
           line.
 
           line.
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">proprules.csv
 
         <li class="FolderTree-File-JS">proprules.csv
Line 180: Line 195:
 
           from this file for each road.  
 
           from this file for each road.  
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 190: Line 205:
 
         This file controls what ambients are present in this city.
 
         This file controls what ambients are present in this city.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.bai
 
       <li class="FolderTree-File-JS"><cityname>.bai
Line 199: Line 214:
 
         city. See [[BAI]] for details.
 
         city. See [[BAI]] for details.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.cpvs
 
       <li class="FolderTree-File-JS"><cityname>.cpvs
Line 209: Line 224:
 
         the pre-calculated PVS tree. See [[CPVS]] for details.
 
         the pre-calculated PVS tree. See [[CPVS]] for details.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.inst
 
       <li class="FolderTree-File-JS"><cityname>.inst
Line 220: Line 235:
 
         will not move for anything.
 
         will not move for anything.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.ldef
 
       <li class="FolderTree-File-JS">*.ldef
Line 227: Line 242:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.lmap
 
       <li class="FolderTree-File-JS"><cityname>.lmap
Line 234: Line 249:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.lt*
 
       <li class="FolderTree-File-JS"><cityname>.lt*
Line 241: Line 256:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">materials.csv
 
       <li class="FolderTree-File-JS">materials.csv
Line 250: Line 265:
 
         with which image map.
 
         with which image map.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">materials.mtl
 
       <li class="FolderTree-File-JS">materials.mtl
Line 259: Line 274:
 
         particle effecs that apply to a particular type of surface.
 
         particle effecs that apply to a particular type of surface.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.psdl
 
       <li class="FolderTree-File-JS"><cityname>.psdl
Line 268: Line 283:
 
         All roads and most buildings are defined with this file.
 
         All roads and most buildings are defined with this file.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.sky
 
       <li class="FolderTree-File-JS"><cityname>.sky
Line 274: Line 289:
 
====Sky dome definition====
 
====Sky dome definition====
 
         <p>
 
         <p>
         Defines the name of the sky dome object and to position of
+
         Defines the name of the sky dome object and the position for
 
         the center of this dome relative to the [[PSDL]].
 
         the center of this dome relative to the [[PSDL]].
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.water
 
       <li class="FolderTree-File-JS"><cityname>.water
 
       <div class="FolderTree-Content">
 
       <div class="FolderTree-Content">
 +
 
====Water of death definition====
 
====Water of death definition====
 
         <p>
 
         <p>
         Defines the heghit of deadly water - if a vehicle goes below  
+
         Defines the height of deadly water - if a vehicle goes below  
 
         this height it sleeps with the fishes. Possibly a list of  
 
         this height it sleeps with the fishes. Possibly a list of  
 
         [[PSDL]] block ids can be listed for blocks that define  
 
         [[PSDL]] block ids can be listed for blocks that define  
 
         deadly water at any height.  
 
         deadly water at any height.  
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 297: Line 313:
 
===Object definitions===
 
===Object definitions===
 
       <p>
 
       <p>
 +
      The geometry of generic 3D objects are defined by PKG files. These are used for many things, from player vehicles to statues and complex facades.
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
       <li class="FolderTree-File-JS">*.mtx
+
       <li class="FolderTree-File-JS">*.pkg
 
       <div class="FolderTree-Content">
 
       <div class="FolderTree-Content">
====Object matrix====
+
====Object geometry====
 
         <p>
 
         <p>
 +
        Actual geometry is defined in these files, definition can be found [[PKG|here]].
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
       <li class="FolderTree-File-JS">*.pkg
+
       <li class="FolderTree-File-JS">*.mtx
 
       <div class="FolderTree-Content">
 
       <div class="FolderTree-Content">
====Object geometry====
+
====Object matrix====
 
         <p>
 
         <p>
 +
        Defines a transformation matrix for ''local'' parts of a [[PKG]]. Format is defined [[MTX|here]].
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 318: Line 337:
 
     <li class="FolderTree-Open">jpg
 
     <li class="FolderTree-Open">jpg
 
     <div class="FolderTree-Content">
 
     <div class="FolderTree-Content">
 +
 
===Game interface graphics===
 
===Game interface graphics===
 
       <p>
 
       <p>
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     </li>
 
     </li>
 
     <li class="FolderTree-Open">texture
 
     <li class="FolderTree-Open">texture
Line 328: Line 348:
 
       <p>
 
       <p>
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
       <li class="FolderTree-File-JS">*.tex
 
       <li class="FolderTree-File-JS">*.tex
Line 334: Line 354:
 
====Custom image map file====
 
====Custom image map file====
 
         <p>
 
         <p>
 +
        The [[TEX]] file format is a format for storing bit mapped images. This format is made by Angel Studios for their games.
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">*.tga
 
       <li class="FolderTree-File-JS">*.tga
Line 342: Line 363:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 351: Line 372:
 
       <p>
 
       <p>
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
       <li class="FolderTree-Open"><cityname>
 
       <li class="FolderTree-Open"><cityname>
Line 357: Line 378:
 
         <li class="FolderTree-File-JS">*.aimap
 
         <li class="FolderTree-File-JS">*.aimap
 
         <div class="FolderTree-Content">
 
         <div class="FolderTree-Content">
====Ambient control file====
+
====Ambient control file (Amateur)====
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">*.aimap_p
 
         <li class="FolderTree-File-JS">*.aimap_p
 
         <div class="FolderTree-Content">
 
         <div class="FolderTree-Content">
====Ambient control file?====
+
====Ambient control file (Professional)====
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><racename>waypoints.csv
 
         <li class="FolderTree-File-JS"><racename>waypoints.csv
Line 374: Line 395:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><racename>data.csv
 
         <li class="FolderTree-File-JS"><racename>data.csv
Line 381: Line 402:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><eventname>.csv
 
         <li class="FolderTree-File-JS"><eventname>.csv
Line 388: Line 409:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">mm[blitz|circuit|crash|race]data.csv
 
         <li class="FolderTree-File-JS">mm[blitz|circuit|crash|race]data.csv
Line 395: Line 416:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS">multicopwaypoints.csv
 
         <li class="FolderTree-File-JS">multicopwaypoints.csv
Line 402: Line 423:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><cityname>_rewards.csv
 
         <li class="FolderTree-File-JS"><cityname>_rewards.csv
Line 409: Line 430:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><racename>-[a|p]-<n>.opp
 
         <li class="FolderTree-File-JS"><racename>-[a|p]-<n>.opp
Line 416: Line 437:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><racename>.pathset
 
         <li class="FolderTree-File-JS"><racename>.pathset
Line 423: Line 444:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 431: Line 452:
 
     <li class="FolderTree-Open">scene
 
     <li class="FolderTree-Open">scene
 
     <div class="FolderTree-Content">
 
     <div class="FolderTree-Content">
 +
 
===Scene?===
 
===Scene?===
 
       <p>
 
       <p>
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
       <li class="FolderTree-File-JS">modtypes.ini
 
       <li class="FolderTree-File-JS">modtypes.ini
Line 441: Line 463:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>
Line 450: Line 472:
 
       <p>
 
       <p>
 
       </p>
 
       </p>
     </div>
+
     </div><table></table>
 
     <ul>
 
     <ul>
 
       <li class="FolderTree-Open">banger
 
       <li class="FolderTree-Open">banger
 
       <ul>
 
       <ul>
         <li class="FolderTree-File-JS"><objectname>.dgBangerData
+
         <li class="FolderTree-File-JS"><objectname>[_BREAK##].dgBangerData
 
         <div class="FolderTree-Content">
 
         <div class="FolderTree-Content">
 
====Object collision properties====
 
====Object collision properties====
Line 461: Line 483:
 
           collided with something. The format is described [[dgBangerData|here]].
 
           collided with something. The format is described [[dgBangerData|here]].
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 473: Line 495:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>_[NEAR|FAR].camTrackCS
 
         <li class="FolderTree-File-JS"><vehiclename>_[NEAR|FAR].camTrackCS
Line 480: Line 502:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 492: Line 514:
 
           Particle effects are used in weather, vehicle effects and collisions. The format is described [[asBirthRule|here]].
 
           Particle effects are used in weather, vehicle effects and collisions. The format is described [[asBirthRule|here]].
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 504: Line 526:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.asNode
 
         <li class="FolderTree-File-JS"><vehiclename>.asNode
 
         <div class="FolderTree-Content">
 
         <div class="FolderTree-Content">
====??====
+
====Joystick/Wheel settings====
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.dgTrailerJoint
 
         <li class="FolderTree-File-JS"><vehiclename>.dgTrailerJoint
Line 518: Line 540:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.vehCarDamage
 
         <li class="FolderTree-File-JS"><vehiclename>.vehCarDamage
Line 525: Line 547:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>[_opp].vehCarSim
 
         <li class="FolderTree-File-JS"><vehiclename>[_opp].vehCarSim
Line 532: Line 554:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.vehGyro
 
         <li class="FolderTree-File-JS"><vehiclename>.vehGyro
Line 539: Line 561:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.vehStuck
 
         <li class="FolderTree-File-JS"><vehiclename>.vehStuck
Line 546: Line 568:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
         <li class="FolderTree-File-JS"><vehiclename>.vehTrailer
 
         <li class="FolderTree-File-JS"><vehiclename>.vehTrailer
Line 553: Line 575:
 
           <p>
 
           <p>
 
           </p>
 
           </p>
         </div>
+
         </div><table></table>
 
         </li>
 
         </li>
 
       </ul>
 
       </ul>
Line 562: Line 584:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>.asNode
 
       <li class="FolderTree-File-JS"><vehiclename>.asNode
Line 569: Line 591:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>_dash.asNode
 
       <li class="FolderTree-File-JS"><vehiclename>_dash.asNode
Line 576: Line 598:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.cinfo
 
       <li class="FolderTree-File-JS"><cityname>.cinfo
Line 583: Line 605:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>.dgTrailerJoint
 
       <li class="FolderTree-File-JS"><vehiclename>.dgTrailerJoint
Line 590: Line 612:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>.info
 
       <li class="FolderTree-File-JS"><vehiclename>.info
Line 597: Line 619:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">menu.csv
 
       <li class="FolderTree-File-JS">menu.csv
Line 604: Line 626:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS">widget.csv
 
       <li class="FolderTree-File-JS">widget.csv
Line 611: Line 633:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><cityname>.mmHudMap
 
       <li class="FolderTree-File-JS"><cityname>.mmHudMap
Line 618: Line 640:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>.mmMirror
 
       <li class="FolderTree-File-JS"><vehiclename>.mmMirror
Line 625: Line 647:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><texturenamestem>.movie
 
       <li class="FolderTree-File-JS"><texturenamestem>.movie
Line 632: Line 654:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
       <li class="FolderTree-File-JS"><vehiclename>.vehTrailer
 
       <li class="FolderTree-File-JS"><vehiclename>.vehTrailer
Line 639: Line 661:
 
         <p>
 
         <p>
 
         </p>
 
         </p>
       </div>
+
       </div><table></table>
 
       </li>
 
       </li>
 
     </ul>
 
     </ul>

Latest revision as of 17:09, 23 August 2016

The AR files of MM2 make up a common file tree, the files are extracted to a, shared, virtual file system when needed. The structure of this file system is as follows:

Structure

  • root
    • anim

      Animated objects

      The anim folder holds definitions of the animated objects of MM2. These are the pedestrians.

      • *.anim

        Animation sequence

        Each animation sequence, associated with a state, is made up by a number of key frames. Each key frame has several parameters that should be applied to each bone in the skeleton. By moving the skeleton, the entire model will move.

      • *.csv

        Animation state model

        The animation of a pedestrian is based on a state model. A pedestrian is always in a specific state and each state is connected to an animation sequence. For example, if the pedestrian is in the state "WALK", the animation named pedanim_womwalk.anim is looping over and over again. When something happens, the pedestrian might make a transition from one state to another.

      • *.rays

        Unknown: rays

      • *.shaders

        Shader definitions

        The shaders are defined in exactly the same way as for PKG objects. The pedmodel_*.shaders files follow the specification of the PKGFileData in the PKG file format.

      • *.skel

        Skeleton

        All the parts of a pedestrian model are bound to a skeleton. A skeleton is constructed by a number of bones that are attached with joints. In MM2 the skeletons are defined using a tree structure.

      • *.mod

        Geometry model

        The pedmodel_*.mod files define the actual 3D model of a pedestrian. It defines vertices, some material attributes and the surfaces of the model.

    • aud

      Audio files

    • bound

      Object boundaries

      MM2 use three file types for collision detection and material properties on regular PKG objects, BND, BBND and TER. It is not clear when to pick .bbnd/.ter over .bnd, but some indications imply that objects placed with INST typically uses the binary formats.

      • *.bnd

        ASCII bound

        Simple, ASCII-based file format defined here.

      • *.bbnd

        Binary bound

        Binary version of the ASCII-based format, defined here.

      • *.ter

        Terrain bound

        Unknown format, defined here.

    • city

      City definitions

      Each MM2 city has a number of files defining the actual city, its geometry, monuments, traffic flows and so on. Many of the files that controls these things are stored in the city folder.

      • <cityname>
        • audio_pathsets
          • *.pathset

            Local city sound placement

        • decals.pathset

          Decal placements

          Decals are flat images that can be placed on the ground and on facades to increase the visual detail level. Decals are placed using pathset files.

        • props.pathset

          Prop placements

          Props are, typically, small 3D objects like road cones, park benches and similar that can be placed around the city. Props are placed using pathset files.

        • propdefs.csv

          Roadside prop definitions

          The roads defined by the PSDL file can be automatically be filled with props. This file defines repetiton controls for certain props. The proprules file controls which of these props are to be placed next in line.

        • proprules.csv

          Roadside prop rules

          The roads defined by the PSDL file can be automatically be filled with props. This file defines the sequencing of the prop definitions defined in the propdefs file. The PSDL file selects a proprule index from this file for each road.

      • <cityname>.aimap

        Ambient control file

        This file controls what ambients are present in this city.

      • <cityname>.bai

        Ambient path file

        This file defines where and how the ambients may move in the city. See BAI for details.

      • <cityname>.cpvs

        Potentially visible set definition

        MM2 uses a PVS, or potentially visible set, algorithm to speed up rendering of each game frame. These files contain the pre-calculated PVS tree. See CPVS for details.

      • <cityname>.inst

        Stationary objects

        For stationary objects that require more detail than the PSDL file can provide, the INST file can be used to place PKG objects throughout the city. These objects will not move for anything.

      • *.ldef

        LDEF

      • <cityname>.lmap

        Light map definition

      • <cityname>.lt*

        LT

      • materials.csv

        Material mappings

        This file simply lists what material should be used together with which image map.

      • materials.mtl

        Material definitions

        Defines material properties such as friction and possible particle effecs that apply to a particular type of surface.

      • <cityname>.psdl

        City geometry

        The PSDL file defines the major geometry of the city. All roads and most buildings are defined with this file.

      • <cityname>.sky

        Sky dome definition

        Defines the name of the sky dome object and the position for the center of this dome relative to the PSDL.

      • <cityname>.water

        Water of death definition

        Defines the height of deadly water - if a vehicle goes below this height it sleeps with the fishes. Possibly a list of PSDL block ids can be listed for blocks that define deadly water at any height.

    • geometry

      Object definitions

      The geometry of generic 3D objects are defined by PKG files. These are used for many things, from player vehicles to statues and complex facades.

      • *.pkg

        Object geometry

        Actual geometry is defined in these files, definition can be found here.

      • *.mtx

        Object matrix

        Defines a transformation matrix for local parts of a PKG. Format is defined here.

    • jpg

      Game interface graphics

    • texture

      Game image maps

      • *.tex

        Custom image map file

        The TEX file format is a format for storing bit mapped images. This format is made by Angel Studios for their games.

      • *.tga

        Targa image map file

    • race

      Race definitions

      • <cityname>
        • *.aimap

          Ambient control file (Amateur)

        • *.aimap_p

          Ambient control file (Professional)

        • <racename>waypoints.csv

          Race waypoint positioning

        • <racename>data.csv

          Race waypoint positioning

        • <eventname>.csv

          Event definition

        • mm[blitz|circuit|crash|race]data.csv

          Race progression definitions

        • multicopwaypoints.csv

          Cops and robbers locations

        • <cityname>_rewards.csv

          Race reward definitions

        • <racename>-[a|p]-<n>.opp

          Opponent definitions

        • <racename>.pathset

          Race props

    • scene

      Scene?

      • modtypes.ini

        Mod types?

    • tune

      Tuning information

      • banger
        • <objectname>[_BREAK##].dgBangerData

          Object collision properties

          Defines properties controlling PKG objects that has collided with something. The format is described here.

      • camera
        • <vehiclename>[_dash].camPovCS

          Camera definitions

        • <vehiclename>_[NEAR|FAR].camTrackCS

          Camera tracking definitions

      • effects
        • <effectname>.asBirthRule

          Particle effect definition

          Particle effects are used in weather, vehicle effects and collisions. The format is described here.

      • vehicle
        • <vehiclename>.aiVehicleData

          Ambient vehicle data

        • <vehiclename>.asNode

          Joystick/Wheel settings

        • <vehiclename>.dgTrailerJoint

          Trailer joint information

        • <vehiclename>.vehCarDamage

          Vehicle damage control

        • <vehiclename>[_opp].vehCarSim

          Vehicle tuning

        • <vehiclename>.vehGyro

          Vehicle stability

        • <vehiclename>.vehStuck

          Vehicle instability

        • <vehiclename>.vehTrailer

          Vehicle trailer information

      • [rain|snow].asBirthRule

        Weather particle effect

      • <vehiclename>.asNode

        Vehicle control settings

      • <vehiclename>_dash.asNode

        Vehicle dashboard settings

      • <cityname>.cinfo

        City definitions

      • <vehiclename>.dgTrailerJoint

        Trailer joint settings

      • <vehiclename>.info

        Vehicle information

      • menu.csv

        Game interface menu options

      • widget.csv

        Game interface widgets

      • <cityname>.mmHudMap

        Hudmap definitions

      • <vehiclename>.mmMirror

        Vehicle rear view mirror definition

      • <texturenamestem>.movie

        Animated image sequence definition

      • <vehiclename>.vehTrailer

        Vehicle trailer information