XML:DOOR: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
m (remaining questions)
Line 151: Line 151:
  onisplit -create output_path path_to/DOOR*.xml
  onisplit -create output_path path_to/DOOR*.xml
  onisplit -extract:dae output_path path_to/OBAN*.oni
  onisplit -extract:dae output_path path_to/OBAN*.oni
Then in a 3D editor, put the geometries under the animated NULL object.
Next you might want to do the following:
* set the geometries' local rotation to X = 0
* translate the geometries' center to their lowest point
* translate the geometries in object mode onto the NULL
[...]
Remaining question:
; Does Onisplit compensate ZAxisUp while converting OBAN*.oni to *.dae?




==door animation import==
==door animation import==
ZAxisUp must be set in OBAN.
[...]
[...]


Remaining question:
;ZAxisUp handling
: How is ZAxisUp handled best in a 3D editor assuming Onisplit will compensate its effect?




Line 161: Line 182:
Before importing doors via "[[XML:ONLV#The_master_xml_file|master file]]" you must place the door class and its TXMP(s) inside the "shared" folder.
Before importing doors via "[[XML:ONLV#The_master_xml_file|master file]]" you must place the door class and its TXMP(s) inside the "shared" folder.


After level creation, the new door class and its animation must be placed in level 0/X.
After level creation, the new door class and its animation must be placed in level 0.
 


  '''in shared folder'''
  '''in shared folder'''
  * DOOR file
  * DOOR file
  * TXMP file (one for each embedded M3GM instance)
  * TXMP file(s) (max. one for each embedded M3GM instance)
   
   
  '''in level 0'''
  '''in level 0'''
Line 174: Line 194:
[...]
[...]


;Remaining question:
: Does reconverting an original DOOR change it in any way so that e.g. its OBAN is also required in the shared folder?




;Notes about original doors:
;Notes about original doors:
: In original game levels there are files like this "M3GMdoor_1_0.oni". That's an animated door part. (Doors consist of an animated and a static part.)
: In original game levels there are files like this "M3GMdoor_1_0.oni". That's an animated door part. (Doors consist of an animated and a static part.)
: But onisplit will store animated door parts inside ONLV so we don't need extra M3GMs. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 18:41, 15 February 2014 (CET)
: But onisplit will store animated door parts inside ONLV so we don't need extra M3GMs. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 18:41, 15 February 2014 (CET)

Revision as of 09:11, 16 February 2014

DOOR : Door
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

CRSA << Other file types >> DPge

switch to OBD page

general information

  • The xml code on this page was extracted with onisplit v0.9.96.0
  • DOOR files are stored globally (AE/GameDataFolder/level0_Final)
  • DOOR files are used by BINACJBODOOR <Class>


file structure

DOOR
  |
  +-- OFGA
        |
        +-- M3GM (holds <Texture> TXMP link to external file)
              |
              +-- PNTA <Points>
              +-- VCRA <VertexNormals>
              +-- VCRA <FaceNormals>
              +-- TXCA <TextureCoordinates>
              +-- IDXA <TriangleStrips>
              +-- IDXA <FaceNormalIndices>
       


XML tags

DOOR

tag type description
<Geometries> - contains 2 <Link> tags but only one is used (is this correct for all DOOR files?)
<Link> link OFGA instance number (#N)
<Animation> link OBANfile.oni (file suffix not used)
<AISoundAttenuation> float passed sound "attenuation", exact formula unknown
<AISoundAllow> flag AI sound types which are allowed to pass:
All
Combat
Gunfire
None
<AISoundType> flag AI sound types:
Unimportant
Interesting
Danger
Melee
Gunfire
None
<AISoundDistance> float AI sound volume ?
<OpenSound> char[32] OSBDfile.imp.oni (file prefix and suffix not used), 32 letters allowed
<CloseSound> char[32] OSBDfile.imp.oni (file prefix and suffix not used), 32 letters allowed


OFGA

Read on HERE.


sample code

DOORAIRglass01.xml

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <DOOR id="0">
       <Geometries>
           <Link>#1</Link>
           <Link></Link>
       </Geometries>
       <Animation>OBANAIRglass01_anim</Animation>
       <AISoundAttenuation>0.5</AISoundAttenuation>
       <AISoundAllow>Gunfire</AISoundAllow>
       <AISoundType>None</AISoundType>
       <AISoundDistance>100</AISoundDistance>
       <OpenSound>door2_shrt</OpenSound>
       <CloseSound>door2_shrt</CloseSound>
   </DOOR>
   <OFGA id="1">
       <EnvParticle></EnvParticle>
       <Elements>
           <OFGAElement>
               <GunkFlags></GunkFlags>
               <Geometry>AIRglass01_3.dae</Geometry>
           </OFGAElement>
           <OFGAElement>
               <GunkFlags></GunkFlags>
               <Geometry>AIRglass01_4.dae</Geometry>
           </OFGAElement>
           <OFGAElement>
               <GunkFlags></GunkFlags>
               <Geometry>AIRglass01_5.dae</Geometry>
           </OFGAElement>
       </Elements>
   </OFGA>
</Oni>


door geometry export

onisplit -extract:xml output_path path_to/DOOR*.oni

This will extract some meta data in an xml file and the 3D content is stored in dae file(s).

DOOR and TXMP files must be in the same folder.


door geometry import

onisplit -create output_path path_to/DOOR*.xml

The 3D content can probably also be referenced with absolute file paths but to keep things simple the dae files should be in the same folder.

A simple reference (relative path) can be seen in the sample code at <Geometry>.

Of course TXMP(s) are required for the new 3D content.


door animation export

Actually it would be ...

onisplit -extract:dae output_path path_to/OBANfile.oni -geom:M3GMfile.oni

... but since we don't use standalone M3GM for doors anymore, use this instead:

onisplit -create output_path path_to/DOOR*.xml
onisplit -extract:dae output_path path_to/OBAN*.oni

Then in a 3D editor, put the geometries under the animated NULL object.

Next you might want to do the following:

  • set the geometries' local rotation to X = 0
  • translate the geometries' center to their lowest point
  • translate the geometries in object mode onto the NULL

[...]


Remaining question:

Does Onisplit compensate ZAxisUp while converting OBAN*.oni to *.dae?


door animation import

ZAxisUp must be set in OBAN.

[...]


Remaining question:

ZAxisUp handling
How is ZAxisUp handled best in a 3D editor assuming Onisplit will compensate its effect?


using a new door class

Before importing doors via "master file" you must place the door class and its TXMP(s) inside the "shared" folder.

After level creation, the new door class and its animation must be placed in level 0.

in shared folder
* DOOR file
* TXMP file(s) (max. one for each embedded M3GM instance)

in level 0
* DOOR file
* OBAN file

[...]

Remaining question
Does reconverting an original DOOR change it in any way so that e.g. its OBAN is also required in the shared folder?


Notes about original doors
In original game levels there are files like this "M3GMdoor_1_0.oni". That's an animated door part. (Doors consist of an animated and a static part.)
But onisplit will store animated door parts inside ONLV so we don't need extra M3GMs. --paradox-01 (talk) 18:41, 15 February 2014 (CET)