Arfanu Posted March 15 Posted March 15 Hello,i need example of extracted animations from fmlb files to learn how to extract other by myself any help? example.zip
Engineers shak-otay Posted March 16 Engineers Posted March 16 Which platform? Here's some info for Android.
Arfanu Posted March 16 Author Posted March 16 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 shak-otay Posted March 16 Engineers Posted March 16 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.
Arfanu Posted March 16 Author Posted March 16 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 1
Engineers shak-otay Posted March 16 Engineers Posted March 16 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?)
Arfanu Posted March 16 Author Posted March 16 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 shak-otay Posted March 16 Engineers Posted March 16 (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): Edited March 16 by shak-otay
Engineers shak-otay Posted March 16 Engineers Posted March 16 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now