Jump to content

Recommended Posts

Posted

Exactly is for android and i know where the Matrix bone índices bone wights and keyframes from animations but i don't know how to extract It that is the reason to need a example of extracted animation from example file in this case PorkyPigMaster!.fmlb

  • Engineers
Posted
13 minutes ago, Arfanu said:

and i know where the Matrix bone índices bone wights and keyframes from animations

That's fine! Why not share the addresses? So others don't need to start from scratch.

Posted

Of course so lets start with matrixs so in this case Porky pig have 19 Bones ok so first seek to offset 0x2374 and repeat this 19 times to get all bone matrixs so lets start:

1.64 bytes with trash for bone name

2.156 bytes unrelated to bone data

3.a float Matrix 4x4 wich is World Space bind pose matrix

4.84 bytes unrelated to bone data

Ok now have all bone World Space bind pose matrix now lets get the mesh data including:faces vértices normals uvs bone índices and bone weights.

Seek to offset 0x969d4 and start:

1.8898 faces as ushorts 

2.1832 vértices as float

3.1832 normals as half float

4.8 bytes zero padding

5.1832 uvs as half float

6.1832 bone índices as ubyte

7.1832 bone weights as half float

Ok now have a rigged mesh ready for animation so Next is seek to offset 0xdd340

Ok lets see whats have here:

    64 bytes, BankName

    64 bytes, AnimName

    64 bytes, HierName

    ushort, frame

    ushort, numBones

    16 bytes, unk (trash IfII)

 

    for range(numBones):

        68 bytes, BoneName

        uint, numElem

        uint, trash

        for range(numElem):

            uint, fmt (1000-pos; 1002-rot; 1003-scl; 1010-uv1; 1011-color)

            uint, type (41-uint; 37-vec2(float); 38-vec3(float); 40-quat(float))

            ushort, numKeys

            ushort, unk (trash)

            array[keys]

Ok so this is all offset and structure wich you need to extract model and animation

  • Like 1
  • Engineers
Posted

Very detailed. (I'm asking myself why you don't create a script with these infos?)

Where does the World Space bind pose matrix of joint_pp_chest start? (offset= 0x28A0?)

 

fmlb joint_pp_chest.png

Posted

I don't writted script becuause i using a program  named "Ash" armateur skeleton hunter but i don't know 100% how to use i need an example of extracted animation and then extract all other by my self.

And yes offset of bind world Space Matrix for joint_pp_chest is 0x28a0.

I go try to write noesis plugin to import Bones and animations i am begginer and don't know about Python but i try by my self to write,but if you can extract example animation is very helpful

  • Engineers
Posted (edited)
46 minutes ago, Arfanu said:

I don't writted script becuause i using a program  named "Ash" armateur skeleton hunter

That's cool! (It's from BigChillghost who's not too active here anymore, sadly.)

Quote

but i don't know 100% how to use i need an example of extracted animation

He had a dozen examples on xentax.

You may read here how to search in xentax backupped data.

Or here.

(The animations in the fmlb seem to start at 0xCBC60, just in case.)

Quote

I go try to write noesis plugin to import Bones and animations

Sounds cool! (I'll keep an eye on it.)

What I could help with is building the skeleton (as an smd file, but don't expect it too soon, 'cause my time is limited.)

 

Btw, if you don't know python it's going to get a little bit harder.

(And for the hex data, do you know that 0000803F represents a float value, 1.0?)

If not you could use a hex editor being capable of showing floats. (The ones I use, can't, so I cannot give a recommendation.)

As a quick workaround you could use hex2obj (ignore "v" and "NORM"al):

H2O_showFloats.png

Edited by shak-otay
  • Engineers
Posted

As a first exercise you could try to read the bone names ("ROOT", "joint_pp_chest", etc) using Noesis/python.

(Not a matter of hours but several days (maybe a dozen) for a beginner.)

You can use the "Debug Log" window to display (print) the names.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...