Re: Resident Evil animations
Posted: Mon Mar 13, 2017 10:04 am
Can you reverse the format of RE4 UHD PC animation FCV file:
I found this thread in 2008 talked about RE4 FCV file, but that probably are older version of PC or Wii/GC version
It took me a long time but not figured it out.
viewtopic.php?f=22&t=2979
FCV notes
-------------------------------------------------------------------------
Short = 2byte (4digit) hex number with lowest value first ie: CD AB is read as AB CD
uint = 4byte(8digit) unsigned hex number with lowest value first ie: 78 56 34 12 is read as 12 34 56 78
float = IEEE-754 float, 4 bytes read in binary as 1= sign 00000000=exponent (1.)0000000000=radiant
(note this float is -0, which is non existent... NAN (not a number))
-------------------------------------------------------------------
known stuff
0xB0 bytes header #0x4C (uint) is always the length of the file
#positioning data
for amount of bones moving at different times: #undetermined as to how this is known
uint how many bones
for bone index in how many bones:
short index of bone in PMD file currently being used
for bone position in how many bones:
float new x coordinate
float new y coordinate
float new z coordinate
#end this point in time
uint time flag? #all is judged on the truth in this statement
uint current time
uint * 6 0 #definitely padding
refer to positioning data
--------------------------------------------------------------------------
notes:
-Sometimes x,y,z floats aren't floats, but i think this is just hexworkshop interpreting the floats backwards (3f 80 00 00 is NAN to them)
-I think the 0x00 to 0x4c values are just importing the PMD info
-very repetitive
-always similar with small variations
-0x4c - 0xB0 lists a bunch of pointers that point to SOME of the positioning data (refer to "known stuff")
I found this thread in 2008 talked about RE4 FCV file, but that probably are older version of PC or Wii/GC version
It took me a long time but not figured it out.
viewtopic.php?f=22&t=2979
FCV notes
-------------------------------------------------------------------------
Short = 2byte (4digit) hex number with lowest value first ie: CD AB is read as AB CD
uint = 4byte(8digit) unsigned hex number with lowest value first ie: 78 56 34 12 is read as 12 34 56 78
float = IEEE-754 float, 4 bytes read in binary as 1= sign 00000000=exponent (1.)0000000000=radiant
(note this float is -0, which is non existent... NAN (not a number))
-------------------------------------------------------------------
known stuff
0xB0 bytes header #0x4C (uint) is always the length of the file
#positioning data
for amount of bones moving at different times: #undetermined as to how this is known
uint how many bones
for bone index in how many bones:
short index of bone in PMD file currently being used
for bone position in how many bones:
float new x coordinate
float new y coordinate
float new z coordinate
#end this point in time
uint time flag? #all is judged on the truth in this statement
uint current time
uint * 6 0 #definitely padding
refer to positioning data
--------------------------------------------------------------------------
notes:
-Sometimes x,y,z floats aren't floats, but i think this is just hexworkshop interpreting the floats backwards (3f 80 00 00 is NAN to them)
-I think the 0x00 to 0x4c values are just importing the PMD info
-very repetitive
-always similar with small variations
-0x4c - 0xB0 lists a bunch of pointers that point to SOME of the positioning data (refer to "known stuff")