Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Chev

Pages: 1 [2]
26
I'm not sure I get what you mean by savemap. The layout of what's put in the save file on the memory card? Or something in the console's ram? I've gotta confess I really just mostly hunted for the model data, but I'll see what I can gather.

27
Well, it all depends on your affinities, they're totally different things. HTML is a markup language, ie a way to write documents with annotations, and Python is a programming language, ie a way to write computer programs. For me it was easy to learn python because I'm a programmer by trade and already knew quite a few other programming languages (most of them being what we call object-oriented, a specific approach to writing programs, and python is too, which makes them all quite similar) but for someone who isn't familiar with object-oriented programming it's gonna take a bit longer.

if you wanna have a go at it you can go there and download "a byte of python", a very good python tutorial aimed at both newbies and experienced programmers:
http://www.swaroopch.com/notes/Python

Also worth noting I'm only using python for importing/exporting from Blender, the actual FF9 viewer is written in C# and using XNA

28
Well, I'm still on it but there's a lotta work still to do. I've learned python and can make custom Blender exporters fine, but not yet importers, plus I'll also need to rework the interface of my program to something user friendly, still gonna take some time. I also have to add some stuff to my data chunk methods so I can start figuring out how the summons directory works, because it's still a complete mystery to me.

29
Well, maxscript has the problem it only works in Max. If I turn to blender, since it's free anybody can install it if only to import the model through a custom script and then re-export it in their fave format, sicne Blender exports to a lot of format IIRC.

Collada's also a good idea since most programs can import it.

30
well, each model has its animations in its own order so choosing an appropriate pose can't be automated. But really, my interrogations revolve around which format to choose to keep the hassle to a minimum, not whether to include the anims or not.

31
It actually makes a lot of sense. If you don't store the vertices in bone space you have to transform them by the inverse of the bind pose before you can put them in another pose, which means at minimum one more matrix operation per bone, and that's assuming you've memorized all the inverse transforms. It may be okay for modern machines with memory and power to spare but for FF9 they probably valued such an optimization.

And once you store vertices in bone space there's really no point in storing the bind pose, since it's the one pose you never use in-game.

32
The thing is, unlike KH there's no bind pose, it's implicit since the vertices are directly stored in bone space. What that means is the characters look like origami, or maybe like they fell into a metal compacter, unless you assign an anim to them

33
Oh duh! Now you mention it I remember reading about that around here before! well, that'll be the next step once I get my new computer then

EDIT: Ok, up and running again. But I have to confess I can't wrap my mind around the summon directory. It's one of those type 0x03 hierarchical directories, right? So that means what's listed inside is subdirectories? But how do you know how many files each subdirectory contains? Are there headers for them?

EDITEDIT: it's now been remade to use shaders for animation, which is much better (despite being visually identical). Also finally realized what I'd gotten wrong with the lower bits of angles: they're optional, some anims don't contain them, signalled by a zero offset. I can kinda detect which anims match which models now - sorta. The method gives false positives so you can get some aberrant anims, but it's better than nothing. I still don't get how to go through the summons (well, effects, really) directory or find the character textures in the room/worldmap clusters.

I was wondering about exporting though. I wanted to use .OBJ format but it doesn't allow animations...

34
Got good news and bad news

Good news are, I can see all weapons too, with textures. Only wireframe for NPCs and map models though, can't find the textures. Also the directory supposedly containing the summons seems to have a different structure, can't read it yet.

Bad news is, my PC was taken out by a trojan. I haven't lost everything, but the project will have to be on hold for a while.

35
As you can see I've got textures now. The trick is they're not stored in the exact same cluster instead they're in another cluster that's got the same parent cluster as the one the models are in. I used the material indices to choose what texture to use, because I couldn't be bothered to figure out chunk 0x12 (contains CLUT and tpage for models, says the wiki), and it worked fine with monsters and party members but it'll probably be a problem for NPCs, so next phase will be to understand chunk 0x12.


36
Well, for now I'm really just applying all the wonderful work others have accomplished. There's nothing my program does that hasn't been written in the wiki  :-)

37
X-dina> I've got the UVs alright, I'm referring to the actual textures. I'll do my best for an exporter once I get the right data.

Zande> Thanks for the info! I guess I'll just put in a nice handy button for cycling through the available anims and match them visually.

I indeed noticed there seemed to be some pattern to how NPC data was grouped. Since here it's grouped with field data (in my taxi screenshot the last line is the contents of the DB cluster around the opened model) I think that in the directory I opened (04 IIRC) DB clusters represent rooms, which would explain just about all the model grouping and redundancy (looks like each room store their NPCs) that's happening.

Glorious EDIT: I get anims now. Well, mostly. Still having trouble with the lower four bits of each angle, I need to remodel my app a bit before I can do it the right way. ANimes look pretty good already though. I'll also have to make a faster animation routine, right now I'm doing it in a very slow way.

So, rooms indeed contain the anims for their occupants, but some also contain anims that don't match any of their contents. I guess those are for scripted scenes where the player characters must move in specific ways.


38
Greetings

I've been trying to build a model viewer for FF9 and to this end this forum with Zande and Zidane's posts and the wiki have been of great use.

I'm able to get bones, vertices and faces without any problem now, but as I started tackling animations I realized I have no idea how to tell which animation goes with which model. Right now I'm matching a given model with the animations present in the same DB data cluster but there's really no reason that should be right, and that makes it tricky to be certain I'm decoding the angles accurately in the first place... It's not an assumption I can make for textures anyway, since so far I haven't found a TIM file in the same DB cluster as models.

So I was wondering if there's anything about it that any of you may known on the subject but isn't wikified yet? I guess I should look into the six unknown bytes of the model header...

Here's a boneless taxi from lindblum, just to show:


EDIT: And an amusing victim of mad chocobo disease

Pages: 1 [2]