Valkyrie Sky

Post questions about game models here, or help out others!
Post Reply
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 303 times

Valkyrie Sky

Post by finale00 »

Game is no longer running, but the client is still around.
MMO + shmup. Lol pretty cool. http://www.youtube.com/watch?v=zfbQweYRzPA
Oh well, plenty of touhou to keep enthusiasts busy.

Code: Select all

#unskinned meshes

char_80 header
dword_4 ???
dword numSections (??)
dword 4 ???

numSections unkSection {
   char_80 name
}

dword ???
IF numSections >2
   dword ??? 
ENDIF
float_9 ???
dword_5 ???
320 bytes ???
float_9 ???
dword_5 ???
char_80 texName
320 bytes ???
220 bytes ???
char_80 unkProperty
IF unkProperty == "Particle_View"
   220 bytes ???
   char_80 unkProperty2  ("editable mesh")
ENDIF

dword ???
184 bytes ???
dword numVertexCoords
dword numNormals
dword numUV
dword numFaces
dword numIndex
dword unkCount1 (0 with the samples I uploaded)
dword unkCount2 (some section after all the indices. 48 bytes per struct. Note, always numFaces * 3)
dword unkCount3

numVertexCoords coords {
   float_3 vert coords
}

numNormals normal {
   float_3 normals
}

numUV texCoords {
   float_2 u,v
}

numFace Face {
   dword one
   dword_3 indices
}

numIndex face UV {
   dword_3 indices
}

unkCount2 unkStruct2 {
   float_5 ???
   dword_7 padding
}
unkCount3 unkStruct3 {
   dword_3 indices?
}
Note that the "Particle_View" might appear after the editable_mesh section, so you need to check for that.
You do not have the required permissions to view the files attached to this post.
Last edited by finale00 on Fri Jul 29, 2011 8:32 pm, edited 3 times in total.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 303 times

Re: Valkyrie Sky

Post by finale00 »

Updated the specs.

It occurred to me that it is also common to store all vertex coords, all normals, and all texcoords contiguously, so I put it to the test, and it worked.

The number of vertices is equal to the number of vertex normals, so presumably when you go through each group of vertices for each face, the same indices are used for the normals.

And then texcoords use the second set of indices, and the max indices for each section match.

Image Image Image
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 303 times

Re: Valkyrie Sky

Post by finale00 »

Image

The UV's are stored with the faces :( :( :( :(

My program can't handle that properly yet (it assumes UV stored with vertex)
I may have to create extra vertices...
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1397 times

Re: Valkyrie Sky

Post by chrrox »

I have worked with this before this is how you do it.

league of legends was just like this format.
You do not have the required permissions to view the files attached to this post.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 303 times

Re: Valkyrie Sky

Post by finale00 »

My own issue here is that I have not found a good way to store the UV with the faces and export it to a format that stores them with the vertices lol

If they use indices to refer to vertices, then chances are the number of duplicate coords are minimized, but if I have to store UV with vertices then I will most likely end up with lots of duplicate coords, which wouldn't work well for the original format cause it bloats the filesize.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1397 times

Re: Valkyrie Sky

Post by chrrox »

I don't understand what the problem is in my script i convert the uv's so they are one uv per vert.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 303 times

Re: Valkyrie Sky

Post by finale00 »

Maybe I'm not reading the script correctly.

Two faces can share the same vertex but have different UV values.
I am not sure how those are handled. In this case there would be less vertices than there are UV values.
Post Reply