The Forum is up for sale: XeNTaX Forum looking for new owner

Tales of Zestiria

The Original Forum. Game archives, full of resources. How to open them? Get help here.
chiri
ultra-n00b
Posts: 3
Joined: Tue Apr 26, 2016 5:58 pm
Has thanked: 2 times
Been thanked: 4 times

Tales of Zestiria

Post by chiri »

Hi

After some hacking I managed to rip static objects directly from the model files. But I'm struggling with the animated model files: The index buffer and texture coordinate data is stored separately from the vertex data. The vertex data itself is stored directly in a hierarchical bone structure, which is too complicated for me to analyze at the moment.
The attached Edna model was ripped using NinjaRipper, but what I'm after is the bone animatable raw vertex data.

Here is what I got so far:
  • Extract the "TLFILE.TLDAT" and "FILEHEADER.TOFHDB" containers using quickbms with the "tales_of_xillia.bms" profile.
  • Texture descriptions are then exported in "TOTEXB_D\*.dpd" and the textures itself in "TOTEXP_P\*.dat".
  • Model animations are stored in "TOMDLB_D\*.dpd" and static model data is stored in "TOMDLP_P\*.dc5".
  • Run the attached code to extract DirectX DDS textures from the TOTEXP_P folder. Example: "CHR_EDN_TEN_100_CHEST0_C.dds", "CHR_EDN_TEN_100_HAIRBAND0_C.dds" and so on.
  • Run the attached code to extract OBJ model files from static models in the TOMDLP_P folder. Example: "ATT_106_FLO_00.obj"
  • Animation data is stored in ".toanmb"-files.
Any help parsing the animation data please?
You do not have the required permissions to view the files attached to this post.
chiri
ultra-n00b
Posts: 3
Joined: Tue Apr 26, 2016 5:58 pm
Has thanked: 2 times
Been thanked: 4 times

Re: Tales of Zestiria

Post by chiri »

I can only attach one file per post. So here's the code to extract the textures and model data.
You do not have the required permissions to view the files attached to this post.
chiri
ultra-n00b
Posts: 3
Joined: Tue Apr 26, 2016 5:58 pm
Has thanked: 2 times
Been thanked: 4 times

Re: Tales of Zestiria

Post by chiri »

And here is an example of the Edna bone animation model containing the vertex data. The nodes are named like "DB_XNECKRIBBON1_1_R", "DB_HOOD1_1_BR", "DB_HOOD1_1_BL" and so on.

My goal is to modify the vertex data and store it back into the game for a better gaming experience.
You do not have the required permissions to view the files attached to this post.
rballad
n00b
Posts: 12
Joined: Mon Aug 11, 2014 2:40 am
Has thanked: 3 times

Re: Tales of Zestiria

Post by rballad »

how to use the program?
jusete
ultra-n00b
Posts: 7
Joined: Sun Oct 19, 2014 1:00 pm

Re: Tales of Zestiria

Post by jusete »

Hey friend, How I can extract the models? I extracted the package with quickBms but I don´t know how to figure out the obj models
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

at "CHR_EDN_TEN_100_CHEST_MI.toanmb"
offset 0xC8

Code: Select all

group-01 neck ribbon r      bone 0->1
                      neck ribbon l
        group-00  hood x2                bone 2->7
                      cloth x4
offset 0x108

Code: Select all

"bone name " how many words +3
         "DB_XNECKRIBBON1_1_R" words= 19 , 0x30-0x20=0x10=16
         ....                                                  0x40-0x30=0x10
         "DB_HOOD1_1_BR"           words= 13 , 0x4a-0x40=0xa =10
         "DB_CLOTH1_1_BR "(space)        words=15  ,0x56-0x4a=12
         "DB_CLOTH1_1_R"            words=13    0x60-0x56=      =10
         "DB_HOOD1_1_BL"            words=13   0x6a-0x60=       =10
         "DB_CLOTH1_1_BL "(space)        words=15  ,0x76-0x6a  =12
=========================
in other words,
from offset 0x108
move 0x20 ##two line down
get the bone name start address ## bone name="DB_XNECKRIBBON1_1_R"

from offset 0x10B
move 0x30 ##three line down
get the 2nd bone name start address ## bone name = "DB_XNECKRIBBON1_1_L"
....
frome offset 0x124
move 0x76
get 0x19A ##bone name="DB_CLOTH1_1_L"
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

FROM offset 0x1ac TO 0x5ac
0x5AC - 0x1AC = 0x400=1024
8bone 1024/8= 128
x,y,z,w 4 float number 128/16=8 key frame
#####w 0 or 1 ,appear many times

but here ,it would be posible 4x4 matrix

Code: Select all

{A1 A2 A3  0
 B1 B2 B3   0
 C1 C2 C3   0
 D1 D2 D3  1}

it looks like a ”no scale(size)transform “ 4x4 matrix

and then compare 0x1ac and after 0x10x4linex8bone offset
that is 0x3ac
their matrix
= = only guess
A1
{0.75} <==> 0.75
0.75 <==> 0.75
-0.037 <==> -0.037
0.184 <==> 0.184
0.365 <==> 0.365
-0.0375 <==> -0.0375
0.184 <==> 0.184
0.365 <==> 0.365

find it that A1 stay the same value, A2 ,A3 changes
continue find it that
A1
B2
C3
stay the same value
so taht ,this matrix possible have "move transform" only
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

Code: Select all

{A1 
     B2
          C3
               1}
stay the same value
does this anime data only have two key frame?
or above matrix is bone matrix (70% possibility ,consider order :bone-mesh-animetion)
look down ,
offset 0x5b0

Code: Select all

LINE:6A                  22
     ......
       
offset:0x61c
8 (obejects?)

offset: 0x628

Code: Select all

float  0      0    0.1   0.1
        0.5   0     1       1
        5      π     π       π    ## π=3.14159...
        0.17  0    1       -6.6

= = in fact ,when i saw "0 0 0.1 0.1 0.5 0 1 1" and then number>1 .
i guess the numbers(which>1) would be  <x,y,z> 

so from offset 0x62c skip 0x20 
           ot offset 0x64c read 3 floats as <x,y,z> (which first one is x=y=z=π)
from 0x628 to 0x693 as a part ,0x694-0x628 =0x6c      

it is

Code: Select all

index:1 int
        ??     : 2 lines skip 0x20
        <x,y,z>??? :  3 float     like (1,0.5)*π 
        ....
this types parts appear 8 times
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

ok , look back to 0x1a0
print (C1 C2 C3) #IF here is bone matrix ,(C1, C2 ,C3)is bone position (x,y,z)

Code: Select all

       X            Y               Z
1st: -0.757      120           3.38                   left
2nd  0.757       120          3.38                   right

3rd  -5.5         112           6.49                  hood b right

4th   -4.4        97             2.63                  cloth b right
5th   -9.6        102           -3.02                 cloth right

6th   5.5         112           6.49                  hood b left

7th   4.4         97            2.63                   cloth b left
8th   9.6         102          -3.02                  cloth left

BINGO!!

and then 9th-16th is what?
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

= =CAN NOT FIND vertex_index to build face
CAN NOT FIND X Y Z W quaternion to build animetion
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

= = animetion data isobviously in "TOANMB"and "TOANMSB"
“MDL” 〉〉model ..bone+mesh+weight+material ONLY
You do not have the required permissions to view the files attached to this post.
ChrisX930
veteran
Posts: 154
Joined: Sun Feb 23, 2014 4:10 pm
Has thanked: 4 times
Been thanked: 3 times

Re: Tales of Zestiria

Post by ChrisX930 »

Now...
is there a way to import the models (probably with animations) into 3dsmax or similar yet?
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4231
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1139 times
Been thanked: 2222 times

Re: Tales of Zestiria

Post by shakotay2 »

Most confusing thread I've ever read. :D

1. it doesn't make sense to care for animation data as long as you don't have the skeleton, imho
2. give the .toanmb file some structure (search for "EDN_" for example)

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
0B20   30 80 00 00 CA 02 00 00  3A 01 00 00 90 00 00 00 
                 0x2CA -> 714 (x28)

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
94F0   88 AD 00 00 49 00 00 00  5B 00 00 00 23 00 00 00 
                 0x0049 -> 73 (x28)
At 0x9504 and 0x11C1C there's promising point clouds:
charEdnTen100ChestMi.jpg
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

this a file from DLC (story of alisha) in "DATADLC\008\EXTRA\WIN\TOMDLP_P"
which player angrily call it "真の仲间"


file:
https://mega.nz/#!VkBHWJzJ!WqHpQl1I__hV ... OraNgEyINo
You do not have the required permissions to view the files attached to this post.
dian333
beginner
Posts: 36
Joined: Mon Sep 15, 2014 11:59 pm
Has thanked: 1 time
Been thanked: 9 times

Re: Tales of Zestiria

Post by dian333 »

in “CHR_EDN_TEN_100_CHEST_MI.toanmb”

Code: Select all

offset 0xb20:    {CA 02 00 00} = int 714                  this part vertex number
                                                                         the part is offset 0xb34 - 0x594C
                                                                         FVF size = 28
                                                                         (0x594C-0xb34)/28= 714
as the name "HAND_0_L_EDN......"
You do not have the required permissions to view the files attached to this post.
Post Reply