Resident Evil 4 .FCV Animation Format
Aug 13, 2021 16:30:02 GMT 10
DeⓧiaZ, kTeo, and 3 more like this
Post by Biohazard4X on Aug 13, 2021 16:30:02 GMT 10
Hey! Since it seems I'm not having the time I used to have, I finally decided it about time I get this little "guide" over with before I lose all my knowledge with other junk.
I have Been Studying the FCV format for over a year but didn't actually start diving deeper into the format until late October last Year.
First of all why am I posting this in UHD section? I feel this would get more attnetion than posting in the 2008edition. YES THIS ALSO APPLIES TO 2007PCed AND PS2 versions of the game.
Before we start I should mention that we do have 1 "tool" that can ONLY be used to Open and Save the FCV files. This tool was made by CRZOSK but its reads the FCV incorrectly but can be used to edit animations and only Numerically, yes by editing Rotation and IK coordinates only. We can not import or Export using this tool. This tool was made using a different scaling system for the coordinates of bones, They are always Displayed divided by 100.
Overall this tool is effiecient in doing:
Identifying Bone IDs
Identifying Bone Types (Whether IK or Rotation)
Displaying Numerically Data Values - Rotation, IK coords
With that being said this tool would be good in researching the FCV file. For more Information on how to use his tool visit the following links below to acquire and read on how to use his tool...
Post to download CRZOSK's FCV tool
Understanding and Using CRZOSK FCV tool
So this is my interpretation of the Format and huge thanks to the following for their Invaluable information....
CRZOSK(original interpretation - YouTube Channel)
mariokart64n (Youtube Channel)
Infernal (AKA infern4l )
Gustavo 2099
LegalSoul
The information they shared help me identify some values and some key parameters to the FCV values though alot of stuff I have yet to figure out.
So I come here in hopes of Working/Helping someone making a viable working Tool or script that allows for a more Efficient Workflow, whether it be only to open FCV and only do edits. It would be amazing to have somekind of program that allows for custom animation import/export.
Anyhow lets get onto the Format of the FCV.
FILE HEADER
Block data
Examples of Bone_Type
Examples of Block_data by Data_type
There seems to be 3 components really, the key frames, the bones that we are affecting, and data we apply to the bones
The data starts by giving use the total run length in frames, and the amount of bones
Then gives us information for each bone that we are affecting, it supplies 2 things; what type of modification we are doing such as move the bone or rotate it, and how the data is provided (data type)
After that we goto each animation data, and its broken into 3 parts, X data, Y Data, and Z data
we read the X,Y,Z data based on the data type suppled, then we apply it to the bone based on the animation type supplied
Mariokart64n made a video Format walkthrough of the FCV. It was unlisted so I made sure to share it and I got the ok for it.
Also some more documentation by him..
Before I close this I wanted to clarify something involving LegalSoul FCV Tool.
residentevilmodding.boards.net/thread/5156/creating-animation-smdtofcv-converter-tutorial
His tool of his does in fact work, but his tool makes very large unoptimized FCV Animations.
How? Its how he writes the Key frames and Time Shifts back.
Lets say I make a basic Standing Animation that is total in 90 frames, then export this to SMD. The SMD willl write back Values for the Bone to Translate/Rotate with 90 frames for EVERY SINGLE BONE. Then this gets written into the FCV with EVERY SINGLE BONE HAVING A TOTAL OF 90 FRAMES, which then their are 20+ bones with 90 frames of data which is why they are so huge. This is where his tool fails.
This is exactly why we need a dedicated tool so we can write how many frames of data we want their to get implemented into our FCV. the more frames, the smoother it will be but we dont need 90 frames worth for every single animation. about 80 of those frames can cut in half and divided properly to make out FCV smaller but doing this in Hex will require hours of patience and making notes not to mess up as we will need to update every single Pointer.
I have uploaded my custom FCV files I have made in hex and have greatly edited and in hopes it will help someone to make a tool.
www.mediafire.com/file/uh05syx83fneaym/FCV_Research.7z/file
Included are...
Several Folders of Ingame Anims and cutscenes
Different Version of custom Made FCVs for Research Purpose.
English Version of CRZOSKs FCV tool
FCV Format
I have also uploaded Mariokarts64n FCV script he had made. For some it may try to import but they are displayed improperly and disfigured. If MariokKart64n Wish to have this remove I will remove and not share any further without his word.
www.mediafire.com/file/w2cduus1xrnc11i/Mariokart64n_2.zip/file
Included are...
3Ds Max Script to Import FCV (Explained Above)
Leons Body without Jacket in MAX format
Folder full of FCV samples
I hope this helps someone make one of the last tools for this game! I have covered all the major important stuff. If you wish to work on this PLEASE LET ME KNOW. I will help aid you in making a working tool!
Please contact via Private DM here on the Forums or via discord Tag "Biohazard4X#5796".
and with that,
Adieu!
I have Been Studying the FCV format for over a year but didn't actually start diving deeper into the format until late October last Year.
First of all why am I posting this in UHD section? I feel this would get more attnetion than posting in the 2008edition. YES THIS ALSO APPLIES TO 2007PCed AND PS2 versions of the game.
Before we start I should mention that we do have 1 "tool" that can ONLY be used to Open and Save the FCV files. This tool was made by CRZOSK but its reads the FCV incorrectly but can be used to edit animations and only Numerically, yes by editing Rotation and IK coordinates only. We can not import or Export using this tool. This tool was made using a different scaling system for the coordinates of bones, They are always Displayed divided by 100.
Overall this tool is effiecient in doing:
Identifying Bone IDs
Identifying Bone Types (Whether IK or Rotation)
Displaying Numerically Data Values - Rotation, IK coords
With that being said this tool would be good in researching the FCV file. For more Information on how to use his tool visit the following links below to acquire and read on how to use his tool...
Post to download CRZOSK's FCV tool
Understanding and Using CRZOSK FCV tool
So this is my interpretation of the Format and huge thanks to the following for their Invaluable information....
CRZOSK(original interpretation - YouTube Channel)
mariokart64n (Youtube Channel)
Infernal (AKA infern4l )
Gustavo 2099
LegalSoul
The information they shared help me identify some values and some key parameters to the FCV values though alot of stuff I have yet to figure out.
So I come here in hopes of Working/Helping someone making a viable working Tool or script that allows for a more Efficient Workflow, whether it be only to open FCV and only do edits. It would be amazing to have somekind of program that allows for custom animation import/export.
Anyhow lets get onto the Format of the FCV.
FILE HEADER
Max_Time :2Bytes
Block_Count:Byte (Specifies how many Bone IDs)
Bone_Type :Byte (Explained Below)
Data_type :Byte (Explained Below)
bone_No :array of bytes
file_size :Integer
Block_data_adress:array of integers
Block_Data : Mix Array of bytes (Explained Below)
***The Two Bytes that are conjointly are Bone_Type and Data_type.***
Block data
Frame_Count_X :Byte
Time_shift_X:array of Bytes
X_Block_data:Array of bytes(Specifed by Data_type )
Frame_Count_Y :Byte
Time_shift_Y:array of Bytes
Y_Block_data:Array of bytes(Specifed by Data_type )
Frame_Count_Z :Byte
Time_shift_Z:array of Bytes
Z_Block_data:Array of bytes(Specifed by Data_type )
Examples of Bone_Type
:TYPES: :DEFINTION:
Type0x01:
Type0x02: Rotation (Relative)
Type0x04: Translation (Relative)
Type0x08: Scale (Relative)
Type0x10: Rotation (Absolute) ?
Type0x20: Translation (Absolute) ?
Type0x40:
Type0x80:
Examples of Block_data by Data_type
: Single ; Single ; Single ;
4 bytes 4 bytes 4 bytes
0E FD D7 C7 00 00 00 00 FE 53 23 44 = 3 sets of 32Bit Float = 12 bytes Total
79 82 D6 C7 00 FB 05 44 2E 2F A7 43 = 3 sets of 32Bit Float = 12 bytes Total
: Single ; Smallit ; Smallint;
4 bytes 2 Bytes 2 Bytes
19 99 14 3F 00 00 E0 D8 = 8 bytes
73 39 C9 3F D6 EB 68 40 = 8 bytes
There seems to be 3 components really, the key frames, the bones that we are affecting, and data we apply to the bones
The data starts by giving use the total run length in frames, and the amount of bones
Then gives us information for each bone that we are affecting, it supplies 2 things; what type of modification we are doing such as move the bone or rotate it, and how the data is provided (data type)
After that we goto each animation data, and its broken into 3 parts, X data, Y Data, and Z data
we read the X,Y,Z data based on the data type suppled, then we apply it to the bone based on the animation type supplied
Mariokart64n made a video Format walkthrough of the FCV. It was unlisted so I made sure to share it and I got the ok for it.
Also some more documentation by him..
Before I close this I wanted to clarify something involving LegalSoul FCV Tool.
residentevilmodding.boards.net/thread/5156/creating-animation-smdtofcv-converter-tutorial
His tool of his does in fact work, but his tool makes very large unoptimized FCV Animations.
How? Its how he writes the Key frames and Time Shifts back.
Lets say I make a basic Standing Animation that is total in 90 frames, then export this to SMD. The SMD willl write back Values for the Bone to Translate/Rotate with 90 frames for EVERY SINGLE BONE. Then this gets written into the FCV with EVERY SINGLE BONE HAVING A TOTAL OF 90 FRAMES, which then their are 20+ bones with 90 frames of data which is why they are so huge. This is where his tool fails.
This is exactly why we need a dedicated tool so we can write how many frames of data we want their to get implemented into our FCV. the more frames, the smoother it will be but we dont need 90 frames worth for every single animation. about 80 of those frames can cut in half and divided properly to make out FCV smaller but doing this in Hex will require hours of patience and making notes not to mess up as we will need to update every single Pointer.
I have uploaded my custom FCV files I have made in hex and have greatly edited and in hopes it will help someone to make a tool.
www.mediafire.com/file/uh05syx83fneaym/FCV_Research.7z/file
Included are...
Several Folders of Ingame Anims and cutscenes
Different Version of custom Made FCVs for Research Purpose.
English Version of CRZOSKs FCV tool
FCV Format
I have also uploaded Mariokarts64n FCV script he had made. For some it may try to import but they are displayed improperly and disfigured. If MariokKart64n Wish to have this remove I will remove and not share any further without his word.
www.mediafire.com/file/w2cduus1xrnc11i/Mariokart64n_2.zip/file
Included are...
3Ds Max Script to Import FCV (Explained Above)
Leons Body without Jacket in MAX format
Folder full of FCV samples
I hope this helps someone make one of the last tools for this game! I have covered all the major important stuff. If you wish to work on this PLEASE LET ME KNOW. I will help aid you in making a working tool!
Please contact via Private DM here on the Forums or via discord Tag "Biohazard4X#5796".
and with that,
Adieu!