Page 1 of 4
Rohan Online: GMF Models
Posted: Tue Aug 14, 2007 7:05 am
by mariokart64n
can anyone looking into this if they got time. I'm a n00b at findingfloats, and can't seem to find any logical xyz coordinates. I'm not even sure the first ones I'm pulling out are even vertices.. maybe there bone positions
http://www.datafilehost.com/download.php?file=13f7272e
Posted: Tue Aug 14, 2007 9:54 pm
by fatduck
This game looks petty good that why I am interest!
Here is what I found about GMF:
Code: Select all
Since this one out-dated, so I deleted it. See the new formats below
Posted: Wed Aug 15, 2007 12:50 am
by mariokart64n
wow that whole upper chunk was just all info on the bones in the transform matrix eh
surprising, there where just static items in the game too. that seems memory consuming, with all that junk.
you want me to upload a few character files?
Posted: Fri Aug 17, 2007 9:07 pm
by fatduck
I want to download the whole client but I can't found any download in their website?
http://www.rohan.cn/
Could you point me to the right direction!?
Posted: Sat Aug 18, 2007 6:12 am
by babebabe
Posted: Sat Aug 18, 2007 8:17 am
by fatduck
1.8G for the client and it's in Japanese!? >_<!
I lost my interest to download it!
Could you upload some character models with textures for me. So I can look up for the format.
Posted: Wed Aug 29, 2007 5:13 pm
by babebabe
http://www.bibabibo.net/A.rar
Here guy, a plenty of GMF file (6M compressed), many of them is ver 1000, abit different from 900 and 1200, hope you findout soon ^^
If you needed a texture, I will upload later
Regards,
Posted: Wed Aug 29, 2007 11:59 pm
by fatduck
Holy shit! I was wrong about the format before! I think the 1st and the 2nd section should be another mesh with bone/skin data!
Does this game use Normal Map, Specular Map etc!? It seem to have more than 1 layer of texture coordinate as well!
And also there should have some external skeleton files as well as animation files!
Could you upload:
1. Texture files for the about mesh
2. Material files
3. Skeleton files and/or animation files
PS: I think ver 900 and 1000 are the same! Will post the new format I found later.
Posted: Thu Aug 30, 2007 7:53 am
by babebabe
Hey guys, here
http://www.bibabibo.net/Data.rar (9M)
GAF file is for animation
GRF file is material
GTX file is texture
GMF is mesh, of course ^_^
As I see, Rohan just used standard texture, not normal map.
Next day I will upload bigger package containt all monster data ^_^
Posted: Thu Aug 30, 2007 9:54 am
by fatduck
I had a quick look on the animation file(GAF)! There is no bones structure(skeleton parent/child info.) inside!
Is there any skeleton file as well!?
Posted: Thu Aug 30, 2007 5:29 pm
by babebabe
0h 5h!t, I just forgot it ^_^
Here
http://www.bibabibo.net/Ske.ra
Posted: Thu Aug 30, 2007 11:28 pm
by fatduck
OK, here is what I got so far!
I use the "0bear01_01.gmf" as base and wonder if "m_bear101.grf" exist? Otherwise the name for looking up the material use internal name for it!? Maybe there are some script/info file to control the conbination of all sort of files together.
Format of the Mesh/Geometry file: GMF
Strange enough there are 3 meshes in one GMF, all with same verts and faces count!? And the direction of V texture coordinate in mesh 1 oppisite in Mesh 2 and Mesh 3. Mesh 2 usually divided in small pieces like for the explosiion!?
Code: Select all
==============
Header Section
==============
char[4] header //CMF
dword ver //Version
dword ??
dword nMLen //length of material name
char[nMLen] sMtl //material name(internal)??
==============
Mesh 1 Section
==============
dword nVerts //Verts count
dword nFaces //Faces count
dword ??
dword nLayer //No. of UV layers
*dword ?? //appears in version 1200 only
struct VertPool {
float X 3 posXYZ //Position XYZ
float X 3 norXYZ //Normal XYZ
byte X 7 ?? //always FF
dword ?? //always 0
struct TexCoord {
float X 2 uv
} TexCoord[nLayer]
dword nABone //No. of Bones for this vert
struct BoneSkin { //appears when bFlag == 1
dword nBLen //length of Bone name
char[nBLen] sBone //Bone name
float wgt //Bone weight
float X 3 //another set of position ??
float X 3 //another set of normal ??
} BoneSkin[nABone]
} VertPool[nVerts]
struct Face {
dword nIdx1 //Face index 1
dword nIdx2 //Face index 2
dword nIdx3 //Face index 3
} Face[nFace]
==============
Mesh 2 Section
==============
dword nLOD //always 20
dword nPart //No. parts of this mesh
struct MeshPart {
dword nBone //No. bones for this part
struct BonesData {
dword nLen //length of bone name
char[nLen] sBName //Bone name
} BonesData[nBone]
dword nFidx //face index count
struct face {
word f1 //face index 1
word f2 //face index 2
word f3 //face index 3
} face[nFidx/3]
dword nVert //vert count
struct vertPool {
float X 3 vt //Position xyz
byte X 4 ?? //Vert color??
float X 3 norl //Normal
float X 3 ??
*dword ?? //appears in version 1200 only
float X 2 uv //Texture coordinate
*float X ?? //7 bytes for ver 1200, 5 for the others
} vertPool[nVert]
} MeshPart[nPart]
==============
Mesh 3 Section
==============
Same as Mesh 2 Section
Format of the material file: GRF
Code: Select all
char[4] header //CRF
dword ver //Version
dword nMLen //length of material name
char[nMLen] sMtl //material name (Internal name)??
byte X 4 colAmb //Ambient Color RGB, 4th byte possibly not used
byte X 4 colDif //Diffuse Color RGB
byte X 4 colSpc //Specular Color RGB
byte X 4 ?? //possibly another color
dword nTex //Texture count
byte ?? //always 1, terminator
struct Texture {
dword nTLen //length of Texture name
char[nMLen] sTex //texture name
} Texture[nTex]
Format of the Skeleton file: GSF
Code: Select all
char[4] header //CSF
dword ver //Version
dword nBones //Bones count
struct Bone {
dword nBLen //length of Bone name
char[nBLen] sBone //Bone name
float X 3 pos1 //Position XYZ
float X 4 rot1 //Rotation Quat XYZW
float X 3 pos2 //another set of Position XYZ ??
float X 4 rot2 //another set of Rotation Quat XYZW ??
dword nPLen //length of Parent name
char[nBLen] sPBone //Parent name
dword nChild //Children count
struct ChildBone {
dword nCLen //length of Child name
char[nBLen] sCBone //Child name
} ChildBone[nChild]
} Bone[nBones]
Format of the Animation file: GAF
Code: Select all
char[4] header //CAF
dword ver //Version
float fTime //Length of this animation in second
dword ?? //always 1, No. of amnimation ??
dword nBones //No. of bones
struct Animation {
dword nBLen //length of Bone name
char[nBLen] sBone //Bone name
dword nKeys //no. of key frames
struct KeyData {
float fKTime //key time
float X 3 posXYZ //position XYZ
float X 4 rotXYZW //rotation quat XYZW
} KeyData[nKeys]
} Animation[nBones]
The last one texture file: GTX is actually DDS file. Just rename it will do.
I havn't tested the skeleton and animation file so not sure if they are correct!
Posted: Tue Sep 04, 2007 8:14 pm
by mariokart64n
yay, i can't wait to see more
..any luck on the characters
Posted: Wed Sep 05, 2007 5:14 pm
by fatduck
There are no different between Items and Characters.
The formats above had been tested!
Posted: Wed Sep 05, 2007 5:23 pm
by fatduck
Forgot to mention that the skeleton format had been tested correct as well.
Since I am not going to write any program for it so I am not able to test the animation. I should leave these for anyone who interested in!