Some information about model files (DIFK or KFID, not BTRF or FRTB)
Discussion on Some information about model files (DIFK or KFID, not BTRF or FRTB) within the Rappelz Private Server forum part of the Rappelz category.
Some information about model files (DIFK or KFID, not BTRF or FRTB)
Some months ago, i discovered how to read files that begins with DIFK (rappelz seems to use instead "KFID"), i didn't make a model importer for a 3d modeling app like blender, so if one dev wants to do that, and then create models or change them or whatever, here is the layout:
KFILEHEADER {
array of KFILEBLOCK {
elements (one of the structure ending with Element_t, there maybe several elements here, but usually, there is only one template which is a header (like cob_header_v11 for .cob files), see *.tml for template contents)
}
}
Thanks you a lot for your help glandu
I'm hopefull for make a converter into FBX or OBJ. Make an exporter will be a litlle bit harder but not impossible
I have now discovered how BTRF files are layered, here is an explanation using structures:
Code:
struct Header
{
int frtb_signature = "BTRF";
int header_size = 4;
short major_version = 1;
short minor_version = 1;
TemplateTable usedTemplates;
StringTable usedStrings;
DataBlocks data;
}
struct TemplateTable
{
int id_table_size;
implicit int template_number = id_table_size/18; //truncated
_GUID templates_guids[template_number]
short templates_field_number[template_number]; //used field in template are from 0 to this value
char padding[] = "12...";
}
struct StringTable
{
int string_table_size;
int string_num;
char strings[]; //strings are separated by \0 and there is string_num strings
int wstring_num;
wchar_t wstrings[]; //same as strings, seems never used
char padding[] = "12.."; //use string_table_size to know where the next data begin
}
struct DataBlocks {
int struct_size;
int number_of_root_blocks;
RootBlock rootBlocks[number_of_root_blocks];
}
struct RootBlock {
char dummy[3];
block_type field_type; //should be always 0x9: template
int block_size;
short template_id;
Block data;
}
union Block {
TemplateBlock tb;
TemplateArrayBlock tab;
FieldBlock fb;
FieldArrayBlock fab;
}
struct TemplateBlock {
Block sub_blocks[templates_field_number[template_id]];
}
struct TemplateArrayBlock {
int block_size;
short template_id;
int count;
struct TemplateArrayElement {
int element_size;
TemplateBlock template_data;
}[count];
}
struct FieldBlock {
void *data; //normal representation, float = 4 byte, char = 1 byte, ...
}
struct FieldArrayBlock {
int block_size;
char type;
<type> data[(block_size-1)/sizeof(<type>)];
}
//Fixed size arrays are represented as FieldBlock[fixedSize]
In BTRF files, there is a limited amount of types information, so the tml file is needed to be able to read a BTRF file (to know data size or data arrays, ...)
There is also a version 1.0 incompatible with this version (1.1), but I never saw a file using that version. So now all model files format are known
Here is keberoslv3_body.nx3
The BTRF format is also used by intro videos as .jtv and DIFK for some .spr files but I didn't tried to read them.
And there your axe Gr4ph0s It's a new one from the 8.2 epic ? Didn't found it before updating my client to 8.2
(For these file, I had to mirror the texture's Y coord, that was not the case for the DIFK files. The texture in the zip file is already mirrored)
(Also, blender seems to have difficulties to use some dds textures for the realtime rendering, it was not mapping correctly the texture (but the non realtime renderer was performing correctly the texture mapping). To help blender, I converted the dds texture to a tga one and changed the dae file (it's a xml file in fact))
AS I see, I forgot to add the attachment (forgot to clik on "upload" button ...) so there it is.
I also added butkadah files (naf, cob, nx3 and some dds) and associated text file describing their content.
mechanic_butkadah.nx3.dae should be working (but arms are missing)
Using the text file, it's possible to have a fully working butkadah model with bones and skeletal animations.
The collada file format (.dae) is in fact not so bad as it seems to be a good way to share models with animation with several 3D modeler (including blender as I only have it)
No script for blender or any other 3d model software, it's too specific for each software. I use collada format which seems to be the best format to share 3d model with all decent software (3dsmax, Maya, Blender, ...)
But this format is very verbose, and maybe cause some bug when importing in other software than Blender (which is what I use)
Also, I found that newest versions of Blender don't import correctly the collada file (.dae) And texture are missing. The version 2.64 works fine (available here: )
So here is the model file exporter, it's a console application.
In cmd, type "BTRFReader" without parameter to show the help screen.
Parameters in "[" and "]" are optional.
You must have nx3.tml and nobj.tml in the current directory to be able to read .cob, .nx3 and .naf files. (they are provided with the BTRFReader)
about the 2012 new pets model files and the weapon model files! 09/19/2012 - SRO Private Server - 2 Replies who can tell me how to add the new pets in silkroad?and who can tell me how te add the new weapons silkroad?
who can share 2012 new pets model files?THANKS!!!
BTRF programm 05/25/2012 - Rappelz Private Server - 0 Replies Do you have a programm to depcryp the btrf file encrypt thx :handsdown:
Model files 05/08/2012 - Shaiya Private Server - 2 Replies How to open 3do file 3ds max7 or 12?
Pls link plugin or tutorial!
Sorry form my bad english!
I am hungarian.
Character Model files and textures 01/10/2012 - Grand Chase - 4 Replies Where are they.
More specifically wheres the texture for Seekers Grandark.
if there is a guide or tut for finding and extracting specific model files and texture feel free to link plz.
Opening the Shaiya model files 11/14/2011 - Shaiya - 14 Replies I have ZS's Shaiya Data Extractor. Looks like Shaiya models are in .3DC format. Is there a plugin for 3Ds Max 2009 (32 bit) that will open those? 3D Object Converter 4.411 opens them, but I don't have the $80 (wtf) to register it and so can't save to wavefront .obj format (my usual format).