|
|
(14 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| __TOC__
| |
|
| |
| ==XML section==
| |
| {{Template:XMLModdingHints}}
| |
| {| border=0 cellspacing=20 cellpadding=0 align=center
| |
| <!--|The xml code on this page is compatible with onisplit '''v????'''-->
| |
| |}
| |
|
| |
| '''general information'''
| |
| * TRBS files are stored ''globally'' (in edition/GameDataFolder/level0_Final)
| |
| * these files are used by ONCC
| |
| * they contain 5 models differing in ("LOD") level of detail (triangle number)
| |
|
| |
|
| |
| '''extraction'''
| |
| onisplit -extract:xml ''output_folder input_folder''/TRBS''name''.oni
| |
|
| |
|
| |
| '''creation'''
| |
| onisplit -create ''output_folder input_folder''/TRBS''name''.xml
| |
|
| |
|
| |
| '''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> <nowiki><!-- 300 triangles --></nowiki>
| |
| <Link>TRBSkonoko_body_high_TRCM2.dae</Link> <nowiki><!-- 842 triangles --></nowiki>
| |
| <Link>TRBSkonoko_body_high_TRCM3.dae</Link> <nowiki><!-- 1250 triangles --></nowiki>
| |
| <Link>TRBSkonoko_body_high_TRCM4.dae</Link> <nowiki><!-- 2038 triangles --></nowiki>
| |
| <Link>TRBSkonoko_body_high_TRCM5.dae</Link> <nowiki><!-- 3294 triangles --></nowiki>
| |
| </Elements>
| |
| </TRBS>
| |
| </Oni>
| |
|
| |
|
| |
| ===custom TRIA===
| |
| When extracting a TRBS with onisplit v0.9.41.0 the [[TRIA#Investigation|TRIA]] instance gets exposed. It can be modified to change the hierarchy of body parts.
| |
|
| |
| Onisplit can create the TRIA instance on its own. The extracted xml code looks a bit different but ingame the model appears to have the same hierarchy.
| |
|
| |
| A character with non-standard TRIA needs a complete set of new animations, those animations must be created based on that new TRIA.
| |
|
| |
| Head animations: normally such overlay animation have "Head" as "<UsedBones>", if your new model's head isn't the 11th bone you need to change it.
| |
|
| |
| {| class="wikitable" width=100%
| |
| | '''standard TRIA'''
| |
| | '''hexhound TRIA'''
| |
| | '''hexhound TRIA'''
| |
| |-
| |
| | original
| |
| | self-made
| |
| | onisplit-generated (v0.9.68.0)
| |
| |-
| |
| |
| |
| <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>14</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>11</Parent>
| |
| <Child>13</Child>
| |
| <Sibling>0</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>12</Parent>
| |
| <Child>0</Child>
| |
| <Sibling>0</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>10</Parent>
| |
| <Child>15</Child>
| |
| <Sibling>17</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>14</Parent>
| |
| <Child>16</Child>
| |
| <Sibling>0</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>15</Parent>
| |
| <Child>0</Child>
| |
| <Sibling>0</Sibling>
| |
| </TRIAElement>
| |
| <TRIAElement>
| |
| <Parent>10</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>
| |
| |}
| |
|
| |
|
| |
| ==Old talk== | | ==Old talk== |
| ===New 19-bone TRIA=== | | ===New 19-bone TRIA=== |
| Basically, a 4-legged (19-bone) character would be playable if we create enough new TRAM files. A simple test can be seen here: [http://dl.dropbox.com/u/139715/OniGalore/talk/simple_hex_model_walk_test.wmv vid] + [http://dl.dropbox.com/u/139715/OniGalore/talk/hex.h-test.zip files]. | | Basically, a 4-legged (19-bone) character would be playable if we create enough new TRAM files. |
|
| |
|
| An open question is how we force the head to be the 11th part when we use the auto-TRIA-creation of onisplit v0.9.52.0. I dont't know whether head view animation are hardcoded or stored inside the TRAC/TRSC. | | An open question is how we force the head to be the 11th part when we use the auto-TRIA-creation of onisplit v0.9.52.0. I dont't know whether head view animation are hardcoded or stored inside the TRAC/TRSC. |
|
| |
|
| If you test the given files you can notice that the mouse axis are wrong. This might ceome from the mistake in the dae file. Haven't checked yet. --dox | | If you test the given files you can notice that the mouse axis are wrong. This might ceome from the mistake in the dae file. Haven't checked yet. --[[User:Paradox-01|Paradox-01]] 14:47, 15 May 2011 |
| | |
| :If by "head view animation" you mean aiming and looking around, then that information is in those special overlay TRAMs that are paired with a [[TRAS]] aiming screen (in that case, the keyframes of the TRAM do not correspond to a timeline, but rather to several looking/aiming directions: thus the pose for a generic direction is interpolated from several key poses). I may be out of touch, but I don't remember bone number 11 (or is it 0x0A?) as being hardcoded, i.e., there is nothing special about the head AFAIK; however, weapons are hard-coded to be attached to the right (or left) wrist, i.e., they have the same parent as bone number 0x12 or 0x0E. Hope that helps (then again, no, what I ''really'' hope for is a game-ready Iron Demon ^_^ ) --[[User:Geyser|geyser]] 23:34, 22 May 2011 (UTC) | | :If by "head view animation" you mean aiming and looking around, then that information is in those special overlay TRAMs that are paired with a [[TRAS]] aiming screen (in that case, the keyframes of the TRAM do not correspond to a timeline, but rather to several looking/aiming directions: thus the pose for a generic direction is interpolated from several key poses). I may be out of touch, but I don't remember bone number 11 (or is it 0x0A?) as being hardcoded, i.e., there is nothing special about the head AFAIK; however, weapons are hard-coded to be attached to the right (or left) wrist, i.e., they have the same parent as bone number 0x12 or 0x0E. Hope that helps (then again, no, what I ''really'' hope for is a game-ready Iron Demon ^_^ ) --[[User:Geyser|geyser]] 23:34, 22 May 2011 (UTC) |
|
| |
|
|
| |
|
| ===How about more body parts?=== | | ===How about more body parts?=== |
| [http://www.youtube.com/watch?v=1UuesYUvyAk HERE's] a quick and dirty test. (Done on PC.)
| | Here's a quick and dirty test (<nowiki>https://www.youtube.com/watch?v=1UuesYUvyAk</nowiki>, dead link). (Done on PC.) |
| | |
| | So far Oni allows 19 body parts. The vid shows a character with 20 parts. He was roughly put together (via xml) and is made of heads... (Duuno why he hasn't textures.). |
|
| |
|
| So far Oni allows 19 body parts. The vid shows a character with 20 parts. He was roughly put together (via xml) and is made of heads... (Duuno why he hasn't textures.) You can access the used files [http://dl.dropbox.com/u/139715/OniGalore/talk/20_body_parts.rar HERE].
| | [[Image:TRBS_hit_on_20th_bone.jpg|thumb]] |
| | [[Image:TRBS_gun_fire_on_20th_bone.jpg|thumb]] |
|
| |
|
| {| border=0 cellspacing=20 cellpadding=0 align=right
| |
| |
| |
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/onisplit_stuff/screen_shot00080.jpg http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/onisplit_stuff/screen_shot00080_TN.jpg]
| |
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/onisplit_stuff/screen_shot00085.jpg http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/onisplit_stuff/screen_shot00085_TN.jpg]
| |
| |}
| |
| There are some known and unknown problems. At least he made it into the game. ^_^ As we see in the vid the 20th body part has collision data and becomes recognized by AI as a obstacle. It also reacts on incoming attacks and has self-imunity (you cannot hurt yourself by weapon and melee). | | There are some known and unknown problems. At least he made it into the game. ^_^ As we see in the vid the 20th body part has collision data and becomes recognized by AI as a obstacle. It also reacts on incoming attacks and has self-imunity (you cannot hurt yourself by weapon and melee). |
|
| |
|
| TRAM files with 20 bones are possible (via old xml method) but they refuse to become incorporated into the raw file archive. (onisplit will even stop you at the oni-file creation if you use the newer conversion method (dae and xml). | | TRAM files with 20 bones are possible (via old xml method) but they refuse to become incorporated into the raw file archive. (onisplit will even stop you at the oni-file creation if you use the newer conversion method (dae and xml). |
| On a side note: the aiming animation was affecting the new part. Why? I dunno.
| |
|
| |
| Sure more tests are needed. :/
| |
|
| |
|
| |
| '''Thought on Oni / Onisplit modifications'''
| |
|
| |
| Maybe this whole 19+ thing requires engine modding too but that's what I think what should be tried before.
| |
|
| |
| :* changing limit variable from 19 to 32
| |
| :: for ONCC's CBPM (materials) and CBPI (HitImpacts, BlockedImpacts, KilledImpacts) (unsure if this work)
| |
| :: for TRBS (dae-to-oni import) (this should work because the old xml way does already)
| |
|
| |
|
| :* allow import of up-to-32-bones-TRAM.dae files ([[OBD:TRAM/raw0x34#Compression_size_6|???]])
| | Probably this whole thing falls under the rubric "too difficult to achieve". --[[User:Paradox-01|Paradox-01]] 16:18, 14 May 2011 |
| :* allow creation of raw archives with such TRAMs | |
|
| |
|
| http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/onisplit_stuff/no_raw_file_for_20-bones-TRAM.png
| | {{OBD}} |