XML:TRBS: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (typo)
mNo edit summary
Line 1: Line 1:
{{XML_File_Header | type=TRBS | prev=TRAS | next=TRGE | name=Totoro Body Set }}
{{XML_File_Header | type=TRBS | prev=TRAS | next=TRGE | name=Totoro Body Set }}


'''general information'''
===General information===
* TRBS files are stored ''globally'' (in AE/AEInstaller/vanilla/level0_Final.dat)
* TRBS files are stored ''globally'' (in AE/AEInstaller/vanilla/level0_Final.dat)
* these files are used by ONCC
* these files are used by ONCC
Line 7: Line 7:




'''file structure'''
===File structure===


  TRBS
  TRBS
Line 31: Line 31:




'''extraction (LOD)'''
===Extraction (LOD)===


This is more powerful method because it extracts the full range of models (LODs).
This is more powerful method because it extracts the full range of models (LODs).
Line 37: Line 37:




'''extraction (no LOD)'''
===Extraction (no LOD)===


With the old extraction you can chose between a TRBS and an ONCC file. Note that this only extracts the model with the highest poly count.
With the old extraction you can chose between a TRBS and an ONCC file. Note that this only extracts the model with the highest poly count.
Line 44: Line 44:




'''creation (new)'''
===Creation (new)===
  onisplit -create ''output_folder input_folder''/TRBS''name''.xml
  onisplit -create ''output_folder input_folder''/TRBS''name''.xml
* this creates a TRBS file with up to 5 different LOD.
* this creates a TRBS file with up to 5 different LOD.




'''example'''
'''Example'''
 
TRBSkonoko_body_high.xml (extracted with onisplit v0.9.68.0)
TRBSkonoko_body_high.xml (extracted with onisplit v0.9.68.0)
  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
Line 66: Line 65:




'''creation (old)'''
===Creation (old)===
  onisplit -create:trbs output_folder [-cel] [-normals] input_folder/TRBSname.dae
  onisplit -create:trbs output_folder [-cel] [-normals] input_folder/TRBSname.dae
* this creates a TRBS file whereby the models have the same LOD; that's not so good for the memory but useful enough for testing a character ingame
* this creates a TRBS file whereby the models have the same LOD; that's not so good for the memory but useful enough for testing a character ingame
* the arguments [[Importing_character_models#Cel-shading|"cel"]] and "normals" are optional
* the arguments [[Importing_character_models#Cel-shading|"cel"]] and "normals" are optional
===Standard TRIA===
[[File:XSI_ModTool_TRIA.png]]




===custom TRIA===
===Custom TRIA===
Onisplit creates the [[TRIA#Investigation|TRIA]] instance on its own.
Onisplit creates the [[TRIA#Investigation|TRIA]] instance on its own.


Line 97: Line 99:




===example===
'''Example'''
{| class="wikitable" width=100%
{| class="wikitable" width=100%
| '''standard TRIA'''
| '''standard TRIA'''

Revision as of 17:48, 2 August 2020

TRBS : Totoro Body Set
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

TRAS << Other file types >> TRGE

switch to OBD page

General information

  • TRBS files are stored globally (in AE/AEInstaller/vanilla/level0_Final.dat)
  • these files are used by ONCC
  • they contain 5 models differing in ("LOD") level of detail (triangle number)


File structure

TRBS
  |
  +-- TRCM
  +-- TRCM
  +-- TRCM
  +-- TRCM
  +-- TRCM (same for all TRCM)
        |
        +-- TRGA
        |     |
        |     +-- M3GM
        |           |
        |           +-- PNTA
        |           +-- VCRA
        |           +-- TXCA
        |           +-- IDXA
        |           +-- IDXA
        |           +-- texture link (empty because of TRMA usage)
        +-- TRTA
        +-- TRIA


Extraction (LOD)

This is more powerful method because it extracts the full range of models (LODs).

onisplit -extract:xml output_folder input_folder/TRBSname.oni


Extraction (no LOD)

With the old extraction you can chose between a TRBS and an ONCC file. Note that this only extracts the model with the highest poly count.

onisplit -extract:dae output_folder input_folder/TRBSname.oni
onisplit -extract:dae output_folder input_folder/ONCCname.oni


Creation (new)

onisplit -create output_folder input_folder/TRBSname.xml
  • this creates a TRBS file with up to 5 different LOD.


Example TRBSkonoko_body_high.xml (extracted with onisplit v0.9.68.0)

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <TRBS id="0">
       <Elements>
           <Link>TRBSkonoko_body_high_TRCM1.dae</Link> <!-- 300 triangles -->
           <Link>TRBSkonoko_body_high_TRCM2.dae</Link> <!-- 842 triangles -->
           <Link>TRBSkonoko_body_high_TRCM3.dae</Link> <!-- 1250 triangles -->
           <Link>TRBSkonoko_body_high_TRCM4.dae</Link> <!-- 2038 triangles -->
           <Link>TRBSkonoko_body_high_TRCM5.dae</Link> <!-- 3294 triangles -->
       </Elements>
   </TRBS>
</Oni>


Creation (old)

onisplit -create:trbs output_folder [-cel] [-normals] input_folder/TRBSname.dae
  • this creates a TRBS file whereby the models have the same LOD; that's not so good for the memory but useful enough for testing a character ingame
  • the arguments "cel" and "normals" are optional

Standard TRIA

File:XSI ModTool TRIA.png


Custom TRIA

Onisplit creates the TRIA instance on its own.

When extracting a TRBS with onisplit v0.9.41.0 the TRIA instance gets exposed. Then it can be modified by hand to change the hierarchy of body parts.

In the table you can see examples of TRIA instances: one from Konoko and one from a more or less hypothetical hex-hound.

Onisplit v0.9.58.0 and lower needs a dae file where the body part names are strictly correct but the order doesn't matter. The result will be always a standard TRIA.
Onisplit v0.9.68.0 and higher(?) tolerates unusual body part names but it takes the order serious to build the hierarchy.
In other words, when building a custom hierarchy with new onisplit versions you don't need any longer to edit the TRIA instance in xml.

Note that the head could be at a different location in the order. As result the head animation would be applied to a different body part.

Normally such overlay animation have "Head" as "<UsedBones>", if your new model's head isn't the 11th part you need to change it.

A character with non-standard TRIA needs a complete set of new animations, those animations must be created based on that new TRIA.


Changing the body part order

Inside Mod Tool, the objects have an order which can be seen in the Schematics. The user can influence that order by using the Reorder Nodes Tool [I].

Taking this into account it should be possible to let Mod Tool generate a TRMA file fitting to TRBS.


Example

standard TRIA hexhound TRIA
   <Instance id="8" type="TRIA">
       <Elements>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>1</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>2</Child>
               <Sibling>4</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>1</Parent>
               <Child>3</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>2</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>5</Child>
               <Sibling>7</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>4</Parent>
               <Child>6</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>5</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>8</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>7</Parent>
               <Child>9</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>8</Parent>
               <Child>10</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>9</Parent>
               <Child>0</Child>
               <Sibling>11</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>9</Parent>
               <Child>12</Child>
               <Sibling>15</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>11</Parent>
               <Child>13</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>12</Parent>
               <Child>14</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>13</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>9</Parent>
               <Child>16</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>15</Parent>
               <Child>17</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>16</Parent>
               <Child>18</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>17</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
       </Elements>
   </Instance>
   <Instance id="4" type="TRIA">
       <Elements>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>1</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>2</Child>
               <Sibling>3</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>1</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>4</Child>
               <Sibling>5</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>3</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>6</Child>
               <Sibling>7</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>5</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>8</Child>
               <Sibling>9</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>7</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>0</Parent>
               <Child>10</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>9</Parent>
               <Child>11</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>10</Parent>
               <Child>12</Child>
               <Sibling>13</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>11</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>10</Parent>
               <Child>14</Child>
               <Sibling>16</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>13</Parent>
               <Child>15</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>14</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>10</Parent>
               <Child>17</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>16</Parent>
               <Child>18</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
           <TRIAElement>
               <Parent>17</Parent>
               <Child>0</Child>
               <Sibling>0</Sibling>
           </TRIAElement>
       </Elements>
   </Instance>