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

[solved] Exporting bones & animation to FBX

Post questions about game models here, or help out others!
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

[solved] Exporting bones & animation to FBX

Post by majidemo »

Good day everyone,

This is related to this question. In that question, with the help of the answer of Mr shakotay2, I was able to extract the 3D object and exported it to a .obj and .mtl file. Now, I am working on getting the bones and animation.

DISCLOSURE

I have not done this before so I do not know much. I also haven't done any 3D programming before. And lastly, animation math breaks my brain. :D

WHAT I KNOW

In my efforts to complete this task, I have:
  • Read the book `3D Game Programming with Directx 11` by Mr Luna.
  • Read the book `Game Coding Complete` by Mike & Rez.
  • Read a lot of articles online related to `Vertex Skinning`, `Skeletal Animation`.
I am trying to understand how animation is done and coded, to be able to understand how a file could possibly be formatted.

I know the original format I used; .obj doesn't support bones and animation. So, now I'm considering using FBX.

THE GAME FORMAT

The models in the game are stored in 3 files:

- def.t16 - Texture archive, when extracted shows all the related textures of def.
- def.obj - Mesh archive, contains an array of meshes for def. Each mesh has `Faces, Vertex Indices, Vertex Normals, UV`.
- def.ani - Animation archive, all related animation for def.t16.

THE PET

From here on, I will be talking about a specific file: pet.obj and pet.ani. There are only 3 kinds of pets, and they are all birds that fly above the character:

In-game Animation (All 3 pets):

Image

Notice that all 3 pets have the exact same animation. They also animate-in and animate-out when equipped and unequipped. So I'm thinking there are 3 animation for each pet. In, Out and Fly. (although In and Out could simply be a spiral rotate on the mesh)

Model & Texture (For 1st Pet or index 0):

Image

You can download the pet files here. (I included export scripts in .py)

PET.OBJ

I have mapped most of the structures on pet.obj but there is a few more data that I'm guessing is the bind pose bone structure.

The structure for pet.obj that I have mapped so far:

Code: Select all

    
struct PetFace {
    uint16 x 
    uint16 y 
    uint16 z 
}
    
struct PetVertex {
    float   x
    float   y
    float   z
    float   unknown // bone weight??
    uint32  unknown // face/vertex index??
    float   normal_x
    float   normal_y
    float   normal_z
    float   u 
    float   v 
 }
    
struct PetModel {
    byte[14]            header??
    byte[9124]          unknown // bind pose bones??
    	
    uint32                  face_count
    uint32                  face_count  
    uint32                  vertex_count
    uint32                  vertex_count 
    byte[12]                unknown // ??
    uint16                  texture_index
    byte[320]               unknown // ?? some floats
    PetFace[face_count]     faces
    PetVertex[vertex_count] vertices     
}
    
struct PetObjArchive {
    uint32               number_of_models
    uint16               unknown
    PetModel[length] models 
}
The data I have mapped is enough to export a full model with texture.
  • Is there any type of data I should expect for the unknown bytes? vertex weights or bind pose bones maybe?
  • What kind of structure does bones generally have?
PET.ANI

I don't really know what this file contains but I think it contains Animation data. Here is my understanding of the file:

Code: Select all

    struct AniMatrix {
    	float unknown1
    	float unknown2
    	float unknown3
    	float unknown4
    	float unknown5
    	float unknown6
    	float unknown7
    	float unknown8
    	float unknown9
    	float unknown10
    	float unknown11
    	float unknown12
    }
    
    struct AniData {
       uint16 unknown  // always 4, only shows every 4 entry
    	uint16 unknownX
    	uint16 unknownY	
    	
    	AniMatrix[unknownX*unknownY] animation_matrices (?)
    }
    
    struct PetAniArchive {
    	uint32 	number_of_animations? (not sure)
    	
    	AniData[number_of_animations*4] animation_data
    }
Of-course this is just a guess. Here is the first few bytes of the pet.ani file and how I got to guess the structure above:

Code: Select all

    09 00 00 00 // uint32 - number of indexes? 9/3... 3 per pet
    
    // AniData
    04 00       // uint16 - unknown = 4 dec.. 36/9 = 4 (only shows every 4 entries)
    1A 00 		// uint16 - unknown = 26 dec.. 26*85=2210.. 2210*48=106080 (total bytes for this animation matrix?)
    55 00 		// uint16 - unknown = 85 dec.. 26*85=2210.. 2210*48=106080 (total bytes for this animation matrix?)

    // AniMatrix (4x3??)
    00 00 80 3F // float   1.0
    E6 7F 98 37 // float?  1.8179369e-005
    24 07 67 38 // float?  5.5081342e-005
    
    D9 AE 98 37 // float?  1.8201232e-005
    C2 B1 51 3F // float   0.81911862
    08 D9 12 BF // float  -0.57362413
    
    24 07 67 B8 // float? -5.5081342e-005
    F4 D8 12 3F // float   0.57362294
    D1 B1 51 3F // float   0.81911951
    
    BE F8 8A B8 // float? -6.6266846e-005
    E8 80 D8 3F // float   1.6914339
    FF 94 C9 3F // float   1.5748595
    ...repeat 2210 times?
Image

Again, I'm guessing that the animation is a 4x3 matrix... Note: Unknown1 only shows up for every 4 entries.

I parse the file like this:

Code: Select all

	binary_file.seek(0)
	total_entries = struct.unpack("<I", binary_file.read(4))[0]
	unk1r = 0
	
	for i in range(total_entries * 4):
		if unk1r == 0:
			unknown1 = struct.unpack("<H", binary_file.read(2))[0]
		unk1r = unk1r + 1	
		if unk1r == unknown1:
			unk1r = 0

		unknownX = struct.unpack("<H", binary_file.read(2))[0]
		unknownY = struct.unpack("<H", binary_file.read(2))[0]
		
		for ii in range(unknownX * unknownY):
			matrix = struct.unpack("<ffffffffffff", binary_file.read(48))[0]
Adding binary_file.tell() at the end of the script gives me the offset of the last byte of pet.ani. Which means the whole file got read.
  • How do I move forward?
  • What could the `unknown*` data possibly be? (I know some unknown could only be game data, but some could actually be used for the bones and animation right?)
  • How do I export to FBX? (Should I manually create the ASCII file or is there a library I could use?)
Thank you
Last edited by majidemo on Tue Sep 13, 2016 9:35 am, edited 4 times in total.
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: Exporting bones & animation to FBX

Post by shakotay2 »

Hi majidemo,

this is so GREAT. Really love to see someone who's truly engaged to understand how things work.

Other than many other newcomers in this forum who are either just leeching or - not really better-
permanently weeping for someone who helps them to get some 3D data analysed.
(Where "help" means that this someone should do ALL the work for them.)

Well, from a quick glance to what you've found out so far I guess those 12 floats might be a 3x3 rotation matrix and 3 floats for the position.

I've made some approaches so far to handle animations using md5anim format (simpler than fbx imho):
viewtopic.php?f=16&t=12979&p=107315&hil ... im#p107315

(unfinished)
viewtopic.php?f=16&t=14805&hilit=+md5anim

btw: before it comes to animations it's required to build a skeleton, imho.
First step in building a skeleton is getting the bone names and their hierarchical structure (parent child relationship).

btw: it's very impressive to see that you've used python script to extract png images from the .t16 file - kudos
Last edited by shakotay2 on Sat Sep 10, 2016 7:37 am, edited 1 time in total.
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

Hello Mr Shakotay2,

Thank you. I'll look into this. It seems like the format used by doom 3 right?

As for the bones I'm having a harder time because most of the books talked about animation directly with how the bones are used... There were only a few topic about the bone structure and hierarchy. I didn't understand how it would (generally) look like in binary data.

Are bone names required? or can they just be indices? (I didn't see any strings in the binary file)
I'm still looking for binary files that includes bone data. Where I can check how it is structured and get a grasp of what I should be looking for.

I'll update this once I get a better idea about bones. Thanks again.

-------------------
I saw this structure from a book (Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach)

Code: Select all

struct BoneFrame {
   D3DXVECTOR3 pos;
   float zAngle;

   D3DXMATRIX toParentXForm;
   D3DXMATRIX toWorldXForm;
}
With that information, I'm thinking of looking for 16 bytes of pos + zAngle (4 floats). But I don't know how many bytes the D3DXMATRIX should be. I'll continue investigating.

-------------------
btw, this article is great. Gave me a better idea of how bones are structured in the file format: http://tfc.duke.free.fr/coding/md5-specs-en.html
Last edited by majidemo on Sun Sep 11, 2016 9:35 am, edited 2 times in total.
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: Exporting bones & animation to FBX

Post by shakotay2 »

majidemo wrote:and hierarchy. But I don't understand how it (generally) would look like in binary data.
here's the hierarchy table with the parent IDs from a brawler hkx file (starting at 0x2DE with FFFF = -1):
bones_hierarchy_Brawler.jpg
But it's not always like that. Often the parent ids are located before the bone names/matrix.
Are bone names required? or can they just be indexes? (I didn't see any strings in the binary file)
indices should do - especially then there's only a few bones.
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

Thank you sir.

With that screenshot you just gave (brawler hkx). I saw this pattern on the file I'm analyzing:

Code: Select all

A5 4E 38 C0 00 00 00 00 CD 3B 2A C0 A5 4E 38 40 \
5A F5 AD 40 CD 3B 2A 40 00 00 00 00 00 00 00 00  > unknown bytes (check update below)
00 00 00 00 00 00 00 00                         /

-1          0  // root bone?
FF FF FF FF 00 00 00 00 00 00 00 00 FF FF 00 00 
00 00 00 00 00 80 00 00 80 3F 00 00 00 00 00 00 
...318 bytes remaining

0           1  // GUESS: parent_id = 0, bone_id = 1
00 00 00 00 01 00 00 00 00 00 00 00 FF FF 00 00 
80 3F 00 00 00 80 00 00 00 00 00 00 00 00 00 00 
...318 bytes remaining

0           2  // GUESS: parent_id = 0, bone_id = 2
00 00 00 00 02 00 00 00 00 00 00 00 FF FF 00 00 
00 80 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 
...318 bytes remaining

2           3  // GUESS: parent_id = 2, bone_id = 3
02 00 00 00 03 00 00 00 00 00 00 00 FF FF 00 00 
00 00 00 00 80 3F 00 00 00 80 00 00 00 00 43 67 
...318 bytes remaining

...repeat pattern 22 more times
That pattern was taken from pet.obj, the part:

Code: Select all

byte[9124] unknown // bind pose bones??
Noticed:
  • 2 increasing numbers. indices?
  • Pattern gets repeated 26 times. number of bones? (odd for a simple bird to have that many bones...)
So this could be the root bone:

Code: Select all

FF FF FF FF 00 00 00 00 00 00 00 00 FF FF 00 
00 00 00 00 00 00 80 00 00 80 3F 00 00 00 00 
00 00 00 80 00 00 80 3F 00 00 00 80 00 00 00 
00 00 00 80 BF 00 00 00 80 00 00 00 00 00 00 
00 00 64 5D 0C BF CB A1 FD BF 00 00 00 00 00 
00 80 3F 00 00 00 00 00 00 00 00 00 00 80 BF 
00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 
00 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 80 CB A1 FD 3F 64 
5D 0C BF 00 00 80 3F 00 00 80 3F 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 
3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 
00 00 00 00 00 00 80 BF 00 00 00 00 00 00 00 
00 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 
80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 80 CB A1 FD 3F 64 5D 0C BF 00 00 80 3F 
AF F0 67 38 0A FA 91 BE E6 5F 75 BF 00 00 00 
00 DD 11 99 37 E3 5F 75 3F 21 FA 91 BE 00 00 
00 00 00 00 80 3F EA FF 81 B5 16 AE 73 38 00 
00 00 00 00 00 00 80 70 2E 8A 42 29 8B 1E C2 
00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00
[/size]

--------------------------
UPDATE

Or maybe it should be (to cover the unknown bytes above):

Code: Select all

// bone index -1? (root bone??)
A5 4E 38 C0 00 00 00 00 CD 3B 2A C0 A5 4E 38 
40 5A F5 AD 40 CD 3B 2A 40 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 
00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 
00 80 00 00 80 3F 00 00 00 00 00 00 00 80 00 
00 80 3F 00 00 00 80 00 00 00 00 00 00 80 BF 
00 00 00 80 00 00 00 00 00 00 00 00 64 5D 0C 
BF CB A1 FD BF 00 00 00 00 00 00 80 3F 00 00 
00 00 00 00 00 00 00 00 80 BF 00 00 00 00 00 
00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 
00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 80 CB A1 FD 3F 64 5D 0C BF 00 00 
80 3F 00 00 80 3F 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 
3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 
00 80 BF 00 00 00 00 00 00 00 00 00 00 80 3F 
00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 80 CB A1 
FD 3F 64 5D 0C BF 00 00 80 3F AF F0 67 38 0A 
FA 91 BE E6 5F 75 BF 00 00 00 00 DD 11 99 37 
E3 5F 75 3F 21 FA 91 BE 00 00 00 00 00 00 80 
3F EA FF 81 B5 

// bone index 0?
16 AE 73 38 00 00 00 00 00 00 00 80 70 2E 8A 
42 29 8B 1E C2 00 00 80 3F 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 
00 00 00 00 00 00 00 FF FF 00 00 80 3F 00 00 
00 80 00 00 00 00 00 00 00 00 00 00 00 80 00 
00 80 3F 00 00 00 80 00 00 00 00 00 00 00 00 
00 00 00 80 00 00 80 3F 00 00 00 00 00 00 00 
00 EF C9 C3 BC 64 5D 0C 3F 00 00 80 3F 00 00 
80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 
00 00 00 00 80 EF C9 C3 3C 64 5D 0C BF 00 00 
80 3F 00 00 80 3F 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 
3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 80 3F 00 00 00 00 00 00 00 00 00 
00 80 3F 00 00 00 00 00 00 00 00 00 00 80 3F 
00 00 00 00 00 00 00 00 00 00 80 BF 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 A3 92 
FA BF 00 00 00 00 00 00 80 3F 00 00 80 3F 32 
F4 9A B7 F3 91 34 36 00 00 00 00 7A 95 A7 37 
FD FF 7F 3F 98 1A AD 33 00 00 00 00 3F 1B 43 
B6 0E B6 AA 33
[/size]
Last edited by majidemo on Sun Sep 11, 2016 11:55 am, edited 7 times in total.
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

If my understanding (explained above) is right.

I would update my structure for PetModel into something like:

Code: Select all

struct PetModel {
    byte[14]   Header
    byte[9100] Bones
    byte[24]   unknown

    ... 
}
The 1st Header looks like this:

Code: Select all

27          26     5    13     9     3
1B 00 00 00 1A 00 05 00 0D 00 09 00 03 00
I believe each bone has 350 bytes. So 9100/350 = 26, 26 which is on the header. This could mean there are 26 bones.
  • But why would a bone have too much information? 350 bytes?
  • What's more odd is why would a simple bird have 26 bones? (model used biped?)
PET.OBJ
Image
  • Yellow - number of segment/data in this archive.
  • Green - unknown
  • Cyan - segment header
  • Light Green - 1st bone for this segment
  • Gray - 2nd bone... (partial)
-------------------------------
You're right about .md5mesh and .md5anim. Easier to understand and export to. Thanks for the suggestion.
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: Exporting bones & animation to FBX

Post by shakotay2 »

did you think about the obj files which you've extracted from the binary pet.obj file?
It's 3 x 9 (27= 0x1B), 3 different birds.
Last edited by shakotay2 on Sat Sep 10, 2016 2:40 pm, edited 1 time in total.
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

shakotay2 wrote:did you think about the obj files which you've extracted from the binary pet.obj file?
It's 3 x 9 (27= 0x1B), 3 different birds.
Yes I noticed. It looks like the same bird gets repeated 9 times. I'm not sure why. The first 4 bytes of the obj file is 27. And I believe it has 27 segments. So I deduced that 27/3(birds) is 9 entries per bird. But I don't understand why they would do that. Seems redundant?
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: Exporting bones & animation to FBX

Post by shakotay2 »

dunno - the 9 models are not identical. pet_12_mesh is a little bit bigger than pet_11_mesh, pet_21_mesh is much smaller than pet_20_mesh, for example.
Last edited by shakotay2 on Sat Sep 10, 2016 2:54 pm, edited 1 time in total.
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

shakotay2 wrote:dunno - the 9 models are not identical. pet_21_mesh is much smaller than pet_20_mesh, for example.
Gives me the idea that maybe they have 9 different meshes depending on the detail setting on the game? Or distance of the camera? Another guess would be, they actually have a larger bird as the level of the pet gets higher. Maybe I just did not notice while playing.

On another note. Do you have any more suggestion on the structure of the bone? Do you think my analogy above is right?
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: Exporting bones & animation to FBX

Post by shakotay2 »

In this early state anything is pure presumption.
You could search for 00000000000000FFFF0000 (270 finds),
then check the numbers before it.

For the last find it's 16 000000 17 (000000).

Seems it's your 350 bytes blocks where 10 of them might belong together (27x10):
-1 0
0 1
0 2
2 3
3 4
4 5
0F 10
13 14
3 16
16 17

But if it the number pairs were bone ids there's too many missing (6..0E, 0x11, 0x12, 0x15).
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

shakotay2 wrote:In this early state anything is pure presumption.
You could search for 00000000000000FFFF0000 (270 finds),
then check the numbers before it.

For the last find it's 16 000000 17 (000000).

Seems it's your 350 bytes blocks where 10 of them might belong together (27x10):
-1 0
0 1
0 2
2 3
3 4
4 5
0F 10
13 14
3 16
16 17

But if it the number pairs were bone ids there's too many missing (6..0E, 0x11, 0x12, 0x15).
I'm not sure what you mean. I extracted the first instance of byte[9100] Bones. You can find it here.

Then I wrote this script to parse the parent_id and bone_id:

Code: Select all

	for i in range(26):
		binary_file.seek(40, 1)
		bones = struct.unpack("<II", binary_file.read(8))

		parent_id = bones[0]
		bone_id   = bones[1]
		
		print bones
		
		binary_file.seek(302, 1)
Which gave me:

Code: Select all

// parent_id, bone_id
(-1, 0)
(0, 1)
(0, 2)
(2, 3)
(3, 4)
(4, 5)
(4, 6)
(6, 7)
(7, 8)
(8, 9)
(4, 10)
(10, 11)
(11, 12)
(12, 13)
(3, 14)
(14, 15)
(15, 16)
(16, 17)
(3, 18)
(18, 19)
(19, 20)
(20, 21)
(3, 22)
(22, 23)
(13, 24)
(9, 25)
I didn't notice anything missing. The bone index is complete and incremental. The parent index makes sense because all of it is within the number of bones. Am I doing this wrong?
-------------------------
Searching for 000000000000FFFF on the first segment of data finds 27 instances, but the first one is just due to the -1 parent id. So there are only technically 26 real instances which I believe a pattern. And with 26 showing up again, I think it really means something specially as it is found on the header.
Last edited by majidemo on Sun Sep 11, 2016 10:07 am, edited 5 times in total.
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: Exporting bones & animation to FBX

Post by shakotay2 »

majidemo wrote:I'm not sure what you mean.
yeah, I should have searched for 00000000000000FFFF, that gives 885 finds.
Am I doing this wrong?
guess: no.
We'd need to know what is wings and what is legs, now.

Something like this (wild guess, as always :D ):
(-1, 0)
(0, 1)
(0, 2)
(2, 3)
(3, 4)
(4, 5)
(4, 6)
(6, 7)
(7, 8)
(8, 9)

(4, 10) left wing
(10, 11)
(11, 12)
(12, 13)

(3, 14) right wing
(14, 15)
(15, 16)
(16, 17)

(3, 18) left tigh
(18, 19)
(19, 20)
(20, 21) left foot

(3, 22) right tigh
(22, 23)
(13, 24) this disturbs my thoughts
(9, 25) this, too
Last edited by shakotay2 on Sat Sep 10, 2016 4:36 pm, edited 1 time in total.
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?"
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

shakotay2 wrote:
majidemo wrote:I'm not sure what you mean.
yeah, I should have searched for 00000000000000FFFF, that gives 885 finds.
Am I doing this wrong?
guess: no.
We'd need to know what is wings and what is legs, now.
I'll look into it. Thank you for taking your time in helping me, as always. :)
I'll update this reply as soon as I find out what all this 350 bytes (or some) per bone actually means.

-----------------------------
I did some trial and error on the values of the bones (trying to map any float from the 350 bytes). You can find the values of each bone here.

Here are some results... (nothing much really)
Image
Last edited by majidemo on Sun Sep 11, 2016 1:49 pm, edited 2 times in total.
majidemo
advanced
Posts: 71
Joined: Sun Aug 21, 2016 12:00 am
Has thanked: 29 times
Been thanked: 36 times

Re: Exporting bones & animation to FBX

Post by majidemo »

Here is the file I generated for the index 0 Pet. (in case you needed it for reference)

Code: Select all

MD5Version 10
commandline "Exported by majidemo w/ shakotay2"

numJoints 26
numMeshes 1

joints {
	"bone_0"	-1 ( 0.000000 1.000000 -0.000000 ) ( -0.000000 -0.000000 1.000000 )
	"bone_1"	0 ( 1.000000 0.000000 -0.000000 ) ( -0.000000 -0.000000 1.000000 )
	"bone_2"	0 ( -0.000000 0.000000 1.000000 ) ( 1.000000 -0.000000 0.000000 )
	"bone_3"	2 ( 0.000000 -0.000000 1.000000 ) ( 0.771107 -0.636706 -0.000000 )
	"bone_4"	3 ( 0.000000 -0.000000 1.000000 ) ( 0.987568 -0.157195 -0.000000 )
	"bone_5"	4 ( 0.000000 -0.000000 1.000000 ) ( 0.989017 -0.147803 -0.000000 )
	"bone_6"	4 ( 0.989017 0.000049 0.147836 ) ( -0.114047 0.636102 0.763126 )
	"bone_7"	6 ( 0.909711 -0.314122 -0.271586 ) ( -0.026728 0.608458 -0.793171 )
	"bone_8"	7 ( 0.552794 0.787791 -0.271620 ) ( -0.592232 0.142132 -0.793141 )
	"bone_9"	8 ( -0.281159 0.881071 0.380364 ) ( -0.131976 0.357022 -0.924700 )
	"bone_10"	4 ( -0.989017 -0.000049 0.147836 ) ( -0.114047 0.636102 -0.763126 )
	"bone_11"	10 ( -0.909711 0.314122 -0.271586 ) ( -0.026728 0.608458 0.793171 )
	"bone_12"	11 ( -0.552794 -0.787791 -0.271620 ) ( -0.592232 0.142132 0.793141 )
	"bone_13"	12 ( 0.281159 -0.881071 0.380364 ) ( -0.131976 0.357022 0.924700 )
	"bone_14"	3 ( -0.062046 -0.471245 0.879783 ) ( -0.965138 0.252918 0.067472 )
	"bone_15"	14 ( 0.202747 -0.429908 0.879804 ) ( -0.948540 -0.309373 0.067460 )
	"bone_16"	15 ( -0.000000 0.156399 -0.987694 ) ( -1.000000 -0.000000 -0.000000 )
	"bone_17"	16 ( 0.156399 0.000000 -0.987694 ) ( -0.000000 1.000000 0.000000 )
	"bone_18"	3 ( 0.062046 0.471245 0.879783 ) ( -0.965138 0.252918 -0.067472 )
	"bone_19"	18 ( -0.202747 0.429908 0.879804 ) ( -0.948540 -0.309373 -0.067460 )
	"bone_20"	19 ( 0.000000 -0.156399 -0.987694 ) ( -1.000000 -0.000000 0.000000 )
	"bone_21"	20 ( -0.156399 0.000000 -0.987694 ) ( -0.000000 1.000000 0.000000 )
	"bone_22"	3 ( 0.000000 -0.000000 1.000000 ) ( -0.544900 0.838501 0.000000 )
	"bone_23"	22 ( 0.000000 -0.000000 1.000000 ) ( -0.508793 0.860889 0.000000 )
	"bone_24"	13 ( 0.281171 -0.880760 0.381035 ) ( -0.131928 0.357778 0.924428 )
	"bone_25"	9 ( -0.281171 0.880760 0.381035 ) ( -0.131928 0.357778 -0.924428 )
}

mesh {
	shader "pet_t16/0.png"

	numverts 124
	vert 0 ( 0.801100 0.143500 ) 0 1
	vert 1 ( 0.773900 0.028200 ) 1 1
	vert 2 ( 0.824200 0.129000 ) 2 1
	vert 3 ( 0.742800 0.260800 ) 3 1
	vert 4 ( 0.974800 0.218300 ) 4 1
	vert 5 ( 0.838800 0.174600 ) 5 1
	vert 6 ( 0.851100 0.133600 ) 6 1
	vert 7 ( 0.218200 0.205800 ) 7 1
	vert 8 ( 0.289800 0.018600 ) 8 1
	vert 9 ( 0.291300 0.167500 ) 9 1
	vert 10 ( 0.212900 0.044100 ) 10 1
	vert 11 ( 0.161200 0.092800 ) 11 1
	vert 12 ( 0.154400 0.177700 ) 12 1
	vert 13 ( 0.257200 0.211700 ) 13 1
	vert 14 ( 0.217000 0.228700 ) 14 1
	vert 15 ( 0.182000 0.213300 ) 15 1
	vert 16 ( 0.234700 0.361400 ) 16 1
	vert 17 ( 0.492500 0.134600 ) 17 1
	vert 18 ( 0.473500 0.150500 ) 18 1
	vert 19 ( 0.415200 0.119300 ) 19 1
	vert 20 ( 0.447400 0.080400 ) 20 1
	vert 21 ( 0.506200 0.184500 ) 21 1
	vert 22 ( 0.560100 0.187300 ) 22 1
	vert 23 ( 0.499600 0.239600 ) 23 1
	vert 24 ( 0.558400 0.083700 ) 24 1
	vert 25 ( 0.605800 0.143000 ) 25 1
	vert 26 ( 0.671200 0.097300 ) 26 1
	vert 27 ( 0.655700 0.232700 ) 27 1
	vert 28 ( 0.742700 0.391000 ) 28 1
	vert 29 ( 0.616000 0.318100 ) 29 1
	vert 30 ( 0.625300 0.080200 ) 30 1
	vert 31 ( 0.621800 0.049900 ) 31 1
	vert 32 ( 0.614300 0.243300 ) 32 1
	vert 33 ( 0.445100 0.397400 ) 33 1
	vert 34 ( 0.517000 0.038700 ) 34 1
	vert 35 ( 0.517100 0.416700 ) 35 1
	vert 36 ( 0.534100 0.597300 ) 36 1
	vert 37 ( 0.755000 0.550500 ) 37 1
	vert 38 ( 0.915800 0.616200 ) 38 1
	vert 39 ( 0.437100 0.612900 ) 39 1
	vert 40 ( 0.624800 0.790400 ) 40 1
	vert 41 ( 0.728600 0.870600 ) 41 1
	vert 42 ( 0.674400 0.981900 ) 42 1
	vert 43 ( 0.741800 0.741200 ) 43 1
	vert 44 ( 0.812500 0.857700 ) 44 1
	vert 45 ( 0.858300 0.755400 ) 45 1
	vert 46 ( 0.912700 0.557000 ) 46 1
	vert 47 ( 0.964800 0.759100 ) 47 1
	vert 48 ( 0.933900 0.964600 ) 48 1
	vert 49 ( 0.886100 0.837300 ) 49 1
	vert 50 ( 0.792000 0.912200 ) 50 1
	vert 51 ( 0.433800 0.133400 ) 51 1
	vert 52 ( 0.349300 0.129000 ) 52 1
	vert 53 ( 0.392900 0.106100 ) 53 1
	vert 54 ( 0.699100 0.215300 ) 54 1
	vert 55 ( 0.544100 0.782000 ) 55 1
	vert 56 ( 0.530200 0.978100 ) 56 1
	vert 57 ( 0.270000 0.988500 ) 57 1
	vert 58 ( 0.517700 0.816500 ) 58 1
	vert 59 ( 0.287600 0.911300 ) 59 1
	vert 60 ( 0.471900 0.733800 ) 60 1
	vert 61 ( 0.316600 0.742200 ) 61 1
	vert 62 ( 0.081600 0.802400 ) 62 1
	vert 63 ( 0.079300 0.889400 ) 63 1
	vert 64 ( 0.305000 0.589600 ) 64 1
	vert 65 ( 0.237100 0.906100 ) 65 1
	vert 66 ( 0.289100 0.428800 ) 66 1
	vert 67 ( 0.061600 0.421200 ) 67 1
	vert 68 ( 0.077100 0.606600 ) 68 1
	vert 69 ( 0.237100 0.908900 ) 69 1
	vert 70 ( 0.055600 0.968700 ) 70 1
	vert 71 ( 0.059100 0.285000 ) 71 1
	vert 72 ( 0.755000 0.550500 ) 72 1
	vert 73 ( 0.912700 0.557000 ) 73 1
	vert 74 ( 0.801100 0.143500 ) 74 1
	vert 75 ( 0.824200 0.129000 ) 75 1
	vert 76 ( 0.773900 0.028200 ) 76 1
	vert 77 ( 0.742800 0.260800 ) 77 1
	vert 78 ( 0.838800 0.174600 ) 78 1
	vert 79 ( 0.974800 0.218300 ) 79 1
	vert 80 ( 0.851100 0.133600 ) 80 1
	vert 81 ( 0.218200 0.205800 ) 81 1
	vert 82 ( 0.291300 0.167500 ) 82 1
	vert 83 ( 0.289800 0.018600 ) 83 1
	vert 84 ( 0.212900 0.044100 ) 84 1
	vert 85 ( 0.161200 0.092800 ) 85 1
	vert 86 ( 0.154400 0.177700 ) 86 1
	vert 87 ( 0.257200 0.211700 ) 87 1
	vert 88 ( 0.217000 0.228700 ) 88 1
	vert 89 ( 0.182000 0.213300 ) 89 1
	vert 90 ( 0.234700 0.361400 ) 90 1
	vert 91 ( 0.492500 0.134600 ) 91 1
	vert 92 ( 0.415200 0.119300 ) 92 1
	vert 93 ( 0.560100 0.187300 ) 93 1
	vert 94 ( 0.605800 0.143000 ) 94 1
	vert 95 ( 0.558400 0.083700 ) 95 1
	vert 96 ( 0.655700 0.232700 ) 96 1
	vert 97 ( 0.616000 0.318100 ) 97 1
	vert 98 ( 0.625300 0.080200 ) 98 1
	vert 99 ( 0.614300 0.243300 ) 99 1
	vert 100 ( 0.517100 0.416700 ) 100 1
	vert 101 ( 0.534100 0.597300 ) 101 1
	vert 102 ( 0.755000 0.550500 ) 102 1
	vert 103 ( 0.915800 0.616200 ) 103 1
	vert 104 ( 0.624800 0.790400 ) 104 1
	vert 105 ( 0.728600 0.870600 ) 105 1
	vert 106 ( 0.741800 0.741200 ) 106 1
	vert 107 ( 0.812500 0.857700 ) 107 1
	vert 108 ( 0.858300 0.755400 ) 108 1
	vert 109 ( 0.886100 0.837300 ) 109 1
	vert 110 ( 0.792000 0.912200 ) 110 1
	vert 111 ( 0.530200 0.978100 ) 111 1
	vert 112 ( 0.517700 0.816500 ) 112 1
	vert 113 ( 0.471900 0.733800 ) 113 1
	vert 114 ( 0.081600 0.802400 ) 114 1
	vert 115 ( 0.305000 0.589600 ) 115 1
	vert 116 ( 0.079300 0.889400 ) 116 1
	vert 117 ( 0.237100 0.906100 ) 117 1
	vert 118 ( 0.289100 0.428800 ) 118 1
	vert 119 ( 0.077100 0.606600 ) 119 1
	vert 120 ( 0.061600 0.421200 ) 120 1
	vert 121 ( 0.237100 0.908900 ) 121 1
	vert 122 ( 0.059100 0.285000 ) 122 1
	vert 123 ( 0.755000 0.550500 ) 123 1

	numtris 202
	tri 0 0 1 2
	tri 1 2 3 0
	tri 2 2 4 5
	tri 3 5 3 2
	tri 4 2 1 6
	tri 5 6 4 2
	tri 6 6 1 0
	tri 7 0 5 6
	tri 8 5 4 6
	tri 9 0 3 5
	tri 10 7 8 9
	tri 11 8 7 10
	tri 12 11 10 7
	tri 13 7 12 11
	tri 14 8 11 12
	tri 15 12 9 8
	tri 16 7 9 13
	tri 17 13 14 7
	tri 18 15 7 14
	tri 19 7 15 12
	tri 20 13 12 15
	tri 21 12 13 9
	tri 22 13 16 14
	tri 23 14 16 15
	tri 24 15 16 13
	tri 25 17 18 19
	tri 26 17 19 20
	tri 27 21 22 23
	tri 28 17 24 25
	tri 29 25 26 27
	tri 30 28 29 27
	tri 31 30 31 26
	tri 32 24 17 20
	tri 33 29 23 32
	tri 34 23 29 33
	tri 35 30 34 31
	tri 36 22 18 17
	tri 37 35 33 29
	tri 38 36 35 37
	tri 39 33 35 36
	tri 40 37 35 38
	tri 41 36 39 33
	tri 42 40 39 36
	tri 43 35 29 38
	tri 44 40 41 42
	tri 45 43 44 41
	tri 46 45 43 37
	tri 47 46 47 37
	tri 48 47 48 49
	tri 49 45 44 43
	tri 50 41 50 42
	tri 51 48 42 50
	tri 52 50 49 48
	tri 53 19 18 51
	tri 54 51 52 19
	tri 55 20 19 53
	tri 56 52 53 19
	tri 57 49 44 45
	tri 58 49 50 44
	tri 59 27 54 28
	tri 60 26 54 27
	tri 61 27 29 32
	tri 62 55 40 42
	tri 63 43 36 37
	tri 64 27 32 25
	tri 65 32 23 22
	tri 66 24 34 30
	tri 67 20 34 24
	tri 68 25 24 30
	tri 69 25 30 26
	tri 70 32 22 25
	tri 71 25 22 17
	tri 72 43 41 40
	tri 73 43 40 36
	tri 74 39 40 55
	tri 75 47 49 45
	tri 76 47 45 37
	tri 77 18 22 21
	tri 78 56 57 58
	tri 79 59 58 57
	tri 80 60 59 61
	tri 81 59 60 58
	tri 82 58 57 56
	tri 83 57 58 59
	tri 84 61 59 60
	tri 85 58 60 59
	tri 86 62 63 64
	tri 87 64 63 65
	tri 88 66 67 68
	tri 89 68 62 64
	tri 90 69 70 63
	tri 91 64 63 62
	tri 92 63 64 65
	tri 93 62 68 64
	tri 94 68 67 66
	tri 95 68 66 64
	tri 96 64 66 68
	tri 97 66 71 67
	tri 98 67 71 66
	tri 99 46 37 72
	tri 100 72 73 46
	tri 101 74 75 76
	tri 102 75 74 77
	tri 103 75 78 79
	tri 104 78 75 77
	tri 105 75 80 76
	tri 106 80 75 79
	tri 107 80 74 76
	tri 108 74 80 78
	tri 109 78 80 79
	tri 110 74 78 77
	tri 111 81 82 83
	tri 112 83 84 81
	tri 113 85 81 84
	tri 114 81 85 86
	tri 115 83 86 85
	tri 116 86 83 82
	tri 117 81 87 82
	tri 118 87 81 88
	tri 119 89 88 81
	tri 120 81 86 89
	tri 121 87 89 86
	tri 122 86 82 87
	tri 123 87 88 90
	tri 124 88 89 90
	tri 125 89 87 90
	tri 126 91 92 18
	tri 127 91 20 92
	tri 128 21 23 93
	tri 129 91 94 95
	tri 130 94 96 26
	tri 131 28 96 97
	tri 132 98 26 31
	tri 133 95 20 91
	tri 134 97 99 23
	tri 135 23 33 97
	tri 136 98 31 34
	tri 137 93 91 18
	tri 138 100 97 33
	tri 139 101 102 100
	tri 140 33 101 100
	tri 141 102 103 100
	tri 142 101 33 39
	tri 143 104 101 39
	tri 144 100 103 97
	tri 145 104 42 105
	tri 146 106 105 107
	tri 147 108 102 106
	tri 148 46 102 47
	tri 149 47 109 48
	tri 150 108 106 107
	tri 151 105 42 110
	tri 152 48 110 42
	tri 153 110 48 109
	tri 154 92 51 18
	tri 155 51 92 52
	tri 156 20 53 92
	tri 157 52 92 53
	tri 158 109 108 107
	tri 159 109 107 110
	tri 160 96 28 54
	tri 161 26 96 54
	tri 162 96 99 97
	tri 163 55 42 104
	tri 164 106 102 101
	tri 165 96 94 99
	tri 166 99 93 23
	tri 167 95 98 34
	tri 168 20 95 34
	tri 169 94 98 95
	tri 170 94 26 98
	tri 171 99 94 93
	tri 172 94 91 93
	tri 173 106 104 105
	tri 174 106 101 104
	tri 175 39 55 104
	tri 176 47 108 109
	tri 177 47 102 108
	tri 178 18 21 93
	tri 179 111 112 57
	tri 180 59 57 112
	tri 181 113 61 59
	tri 182 59 112 113
	tri 183 112 111 57
	tri 184 57 59 112
	tri 185 61 113 59
	tri 186 112 59 113
	tri 187 114 115 116
	tri 188 115 117 116
	tri 189 118 119 120
	tri 190 119 115 114
	tri 191 121 116 70
	tri 192 115 114 116
	tri 193 116 117 115
	tri 194 114 115 119
	tri 195 119 118 120
	tri 196 119 115 118
	tri 197 115 119 118
	tri 198 118 120 122
	tri 199 120 118 122
	tri 200 46 123 102
	tri 201 123 46 73

	numweights 124
	weight 0 16 1.000000 ( 0.418200 -0.533300 0.203600 )
	weight 1 16 1.000000 ( 0.320100 0.178100 0.022100 )
	weight 2 16 1.000000 ( 0.504900 -0.445200 0.470500 )
	weight 3 16 1.000000 ( 0.196300 -1.252000 0.012300 )
	weight 4 16 1.000000 ( 1.065200 -1.003100 0.023800 )
	weight 5 16 1.000000 ( 0.558100 -0.726700 0.160800 )
	weight 6 16 1.000000 ( 0.605500 -0.475200 0.206600 )
	weight 7 14 1.000000 ( 0.459100 -0.491800 0.881300 )
	weight 8 14 1.000000 ( 0.658200 -0.348200 1.375400 )
	weight 9 14 1.000000 ( 0.662300 -0.140000 0.982400 )
	weight 10 14 1.000000 ( 0.444400 -0.736100 1.308100 )
	weight 11 14 1.000000 ( 0.301000 -0.463200 1.179700 )
	weight 12 14 1.000000 ( 0.282200 -0.245600 0.955500 )
	weight 13 15 1.000000 ( 0.567500 -0.237400 0.865700 )
	weight 14 15 1.000000 ( 0.455900 -0.375800 0.820700 )
	weight 15 15 1.000000 ( 0.358600 -0.295400 0.861500 )
	weight 16 16 1.000000 ( 0.504900 -0.445200 0.470500 )
	weight 17 5 1.000000 ( 0.141400 -2.049300 4.866500 )
	weight 18 5 1.000000 ( 0.000000 -2.114500 4.735300 )
	weight 19 5 1.000000 ( 0.063700 -2.424000 4.795700 )
	weight 20 5 1.000000 ( 0.000000 -2.261200 5.047400 )
	weight 21 5 1.000000 ( 0.000000 -1.966100 4.607700 )
	weight 22 5 1.000000 ( 0.129900 -1.865000 4.632800 )
	weight 23 5 1.000000 ( 0.000000 -1.904700 4.385000 )
	weight 24 5 1.000000 ( 0.271600 -1.928900 5.153600 )
	weight 25 5 1.000000 ( 0.431000 -1.609900 4.927500 )
	weight 26 5 1.000000 ( 0.000000 -1.292900 5.267900 )
	weight 27 5 1.000000 ( 0.331100 -1.256400 4.606600 )
	weight 28 4 1.000000 ( 0.000000 -0.878500 3.963500 )
	weight 29 4 1.000000 ( 0.387500 -1.454700 4.083600 )
	weight 30 5 1.000000 ( 0.254000 -1.576600 5.257400 )
	weight 31 5 1.000000 ( 0.000000 -1.606400 5.436200 )
	weight 32 5 1.000000 ( 0.404000 -1.510600 4.447300 )
	weight 33 3 1.000000 ( 0.000000 -2.052200 3.536700 )
	weight 34 5 1.000000 ( 0.000000 -2.021200 5.333100 )
	weight 35 3 1.000000 ( 0.697900 -1.769900 3.485500 )
	weight 36 3 1.000000 ( 0.651500 -1.584500 2.622500 )
	weight 37 3 1.000000 ( 0.820200 -0.765500 3.110700 )
	weight 38 3 1.000000 ( 0.664600 -0.642000 3.718800 )
	weight 39 3 1.000000 ( 0.000000 -1.903400 2.446100 )
	weight 40 3 1.000000 ( 0.663900 -1.196800 1.728700 )
	weight 41 14 1.000000 ( 0.444400 -0.736100 1.308100 )
	weight 42 2 1.000000 ( 0.000000 -0.903200 1.316500 )
	weight 43 3 1.000000 ( 0.875100 -0.743000 1.844100 )
	weight 44 14 1.000000 ( 0.658200 -0.348200 1.375400 )
	weight 45 3 1.000000 ( 0.701000 -0.221000 2.066400 )
	weight 46 3 1.000000 ( -0.000000 -0.154200 3.263800 )
	weight 47 22 1.000000 ( -0.000000 0.180600 2.336300 )
	weight 48 22 1.000000 ( -0.000000 -0.029700 1.685300 )
	weight 49 22 1.000000 ( 0.605800 0.041500 1.735800 )
	weight 50 14 1.000000 ( 0.301000 -0.463200 1.179700 )
	weight 51 5 1.000000 ( 0.000000 -2.410900 4.723500 )
	weight 52 5 1.000000 ( 0.000000 -2.659900 4.687000 )
	weight 53 5 1.000000 ( 0.000000 -2.472600 4.895200 )
	weight 54 5 1.000000 ( 0.000000 -1.154700 4.748200 )
	weight 55 3 1.000000 ( 0.000000 -1.423300 1.731300 )
	weight 56 22 1.000000 ( 0.605800 0.041500 1.735800 )
	weight 57 22 1.000000 ( -0.000000 0.180600 2.336300 )
	weight 58 23 1.000000 ( 0.396300 1.366100 0.984900 )
	weight 59 23 1.000000 ( -0.000000 1.569800 1.238200 )
	weight 60 23 1.000000 ( 1.100100 2.659900 0.613200 )
	weight 61 23 1.000000 ( -0.000000 2.417200 0.727700 )
	weight 62 8 1.000000 ( 1.762800 -1.841000 3.526100 )
	weight 63 3 1.000000 ( 0.664600 -0.642000 3.718800 )
	weight 64 8 1.000000 ( 1.725600 -0.040300 3.609900 )
	weight 65 3 1.000000 ( 0.820200 -0.765500 3.110700 )
	weight 66 9 1.000000 ( 1.769500 1.155400 3.495500 )
	weight 67 9 1.000000 ( 2.129100 0.281900 1.942100 )
	weight 68 8 1.000000 ( 2.879800 -1.042200 2.387500 )
	weight 69 4 1.000000 ( 0.387500 -1.454700 4.083600 )
	weight 70 4 1.000000 ( 0.000000 -0.878500 3.963500 )
	weight 71 9 1.000000 ( 1.112400 2.323200 2.420700 )
	weight 72 3 1.000000 ( 0.664600 -0.642000 3.718800 )
	weight 73 4 1.000000 ( 0.000000 -0.878500 3.963500 )
	weight 74 20 1.000000 ( -0.418200 -0.533300 0.203600 )
	weight 75 20 1.000000 ( -0.504900 -0.445200 0.470500 )
	weight 76 20 1.000000 ( -0.320100 0.178100 0.022100 )
	weight 77 20 1.000000 ( -0.196300 -1.252000 0.012300 )
	weight 78 20 1.000000 ( -0.558100 -0.726700 0.160800 )
	weight 79 20 1.000000 ( -1.065200 -1.003100 0.023800 )
	weight 80 20 1.000000 ( -0.605500 -0.475200 0.206600 )
	weight 81 18 1.000000 ( -0.459100 -0.491800 0.881300 )
	weight 82 18 1.000000 ( -0.662300 -0.140000 0.982400 )
	weight 83 18 1.000000 ( -0.658200 -0.348200 1.375400 )
	weight 84 18 1.000000 ( -0.444400 -0.736100 1.308100 )
	weight 85 18 1.000000 ( -0.301000 -0.463200 1.179700 )
	weight 86 18 1.000000 ( -0.282200 -0.245600 0.955500 )
	weight 87 19 1.000000 ( -0.567500 -0.237400 0.865700 )
	weight 88 19 1.000000 ( -0.455900 -0.375800 0.820700 )
	weight 89 19 1.000000 ( -0.358600 -0.295400 0.861500 )
	weight 90 20 1.000000 ( -0.504900 -0.445200 0.470500 )
	weight 91 5 1.000000 ( -0.141400 -2.049300 4.866500 )
	weight 92 5 1.000000 ( -0.063700 -2.424000 4.795700 )
	weight 93 5 1.000000 ( -0.129900 -1.865000 4.632800 )
	weight 94 5 1.000000 ( -0.431000 -1.609900 4.927500 )
	weight 95 5 1.000000 ( -0.271600 -1.928900 5.153600 )
	weight 96 5 1.000000 ( -0.331100 -1.256400 4.606600 )
	weight 97 4 1.000000 ( -0.387500 -1.454700 4.083600 )
	weight 98 5 1.000000 ( -0.254000 -1.576600 5.257400 )
	weight 99 5 1.000000 ( -0.404000 -1.510600 4.447300 )
	weight 100 3 1.000000 ( -0.697900 -1.769900 3.485500 )
	weight 101 3 1.000000 ( -0.651500 -1.584500 2.622500 )
	weight 102 3 1.000000 ( -0.820200 -0.765500 3.110700 )
	weight 103 3 1.000000 ( -0.664600 -0.642000 3.718800 )
	weight 104 3 1.000000 ( -0.663900 -1.196800 1.728600 )
	weight 105 18 1.000000 ( -0.444400 -0.736100 1.308100 )
	weight 106 3 1.000000 ( -0.875100 -0.743000 1.844100 )
	weight 107 18 1.000000 ( -0.658200 -0.348200 1.375400 )
	weight 108 3 1.000000 ( -0.701000 -0.221000 2.066400 )
	weight 109 22 1.000000 ( -0.605800 0.041500 1.735800 )
	weight 110 18 1.000000 ( -0.301000 -0.463200 1.179700 )
	weight 111 22 1.000000 ( -0.605800 0.041500 1.735800 )
	weight 112 23 1.000000 ( -0.396300 1.366100 0.984900 )
	weight 113 23 1.000000 ( -1.100100 2.659900 0.613200 )
	weight 114 12 1.000000 ( -1.762800 -1.841000 3.526100 )
	weight 115 12 1.000000 ( -1.725600 -0.040300 3.609900 )
	weight 116 3 1.000000 ( -0.664600 -0.642000 3.718800 )
	weight 117 3 1.000000 ( -0.820200 -0.765500 3.110700 )
	weight 118 13 1.000000 ( -1.769500 1.155400 3.495500 )
	weight 119 12 1.000000 ( -2.879800 -1.042200 2.387500 )
	weight 120 13 1.000000 ( -2.129100 0.281900 1.942100 )
	weight 121 4 1.000000 ( -0.387500 -1.454700 4.083600 )
	weight 122 13 1.000000 ( -1.112400 2.323200 2.420700 )
	weight 123 3 1.000000 ( -0.664600 -0.642000 3.718800 )
}
[/size]
Post Reply