I'm working on a program for editing the wireframe models in Mega Man X2 and X3, inspired by falchion22's Mega Man Z2
project and DarkSamus993's disassembly of the model data.
There's a downloadable version of my first attempt available here
It looks nicer than it actually is, I think. It's not super user-friendly (clicking in the viewports does nothing, you have to use the controls on the right to edit everything), and it probably has some bugs (the perspective rotation doesn't behave quite like you'd expect because I don't know jack about 3D math), but it does work. This version can only edit the title screen "X" model from MMX2. It comes with files for the "Z" model seen above, and a model of a cube.
Right now I'm working on adding support for the rest of the models in both games.
I've managed to get them importing alright for the most part, although the viewports are currently offset to place 149 on the Z axis near the center because that's where the center of the "X" model happened to be. That's a relatively easy fix. I've also run into a bit of a problem with the X3 models.
In X2 the models are all stored separately, with the vector data for the model first (which consists of a bunch of 16-bit pointers to the vertex data), followed immediately by the vertex data (X,Y,Z positions) for that model. In X3 the vector data for a bunch of the models is stored one right after the other, and then there's a big block of vertex data at the end that seems to be shared between them. This is throwing off my vertex count, but more importantly it means that editing one model might cause changes to another model if they happen to share vertex data.
I don't know for sure yet if any of the models actually do
share data. I'm just guessing they do based on how the pointers jump around. It's possible the vertex data just happens to all be mixed up together, but none of it is actually shared between models.
I'm not sure why they did it this way. If some of the data actually is
shared I would assume it was done to save space, but it looks to me like there's a bunch of empty space at the end anyway. I wonder if maybe I should try to split all of the models up and provide an IPS patch or something to apply before using the editor.