Hi, this is my first post here. I'm also working on modding BnS, but I'm taking a different approach than other people here. I'm more of a 3d modeller and I'm no good with textures, but I know some level of programming. First off I'd like to thank you for your work here, it looks like you've made a lot of progress. I've been tampering with UPK files a little myself and trying to dig into Umodel's source, but it's proving a little difficult to me as I do not understand compression and I'm a newbie regarding byte/hex level file manipulation.
It seems the other people here have different ideas, but I have no real desire or need to look at or change the textures being used at present; what I would like to tamper with is vertex information. I've gotten to the point where I seem to be able to find the vertex data in the PSK file, and can find its likely location in the corresponding UPK file, but there just seems to be some strange stuff going on in the UPK file that I don't quite understand. For example, I can try reading the UPK file at the start of the vertex coordinate, and if I read 4 bytes as a float 3 times, I get the same coordinate, but if I try to read 12 bytes as a group of 3 floats(or, 3f, vector), then the Y coordinate comes out negative when it's positive. I'm not sure if there's byte padding going on here or what.
Long story short, I haven't tried out your program yet, but coming from the perspective of a 3d modeller, it would open up a lot of options even if you could just overwrite existing vertex coordinates, which seems much simpler than trying to mess with/alter texture data(especially to create high res textures...) because that will tend to change the size of the package.
I actually had a sort of set of goals in mind:
1. Re-write existing vertex coordinate data(shouldn't change the size of the package)
2. Re-write existing bone coordinate data(shouldn't change the size of the package)
3. Re-write existing vertex weight data(shouldn't change the size of the package)
4. Figure out how edge and face data is stored
5. Add new vertices, along with edges + faces
6. Replace and/or change materials
7. Texture stuff
Would it be possible to create a new set of vertex coordinates(possibly in a .txt file; I can provide a sample of this if necessary) which would simply overwrite the existing coordinates? It seems like it would be extremely simple because it wouldn't even require a re-pack, you'd just re-write the UPK file; I assume the vertex coordinates must be stored somewhere in there as a set of floats. This would allow modellers to reshape models in any way desired so it could be considerably powerful.
PS: I'd also like to note I play on the Japanese server. Do you think any solution to this problem you could make would be workable with the files on the JP server? As I said I can program a little myself and have made some slight progress, if there's anything I can help with please let me know. Or if you need samples of files from the JP client, etc.