Users browsing this thread: 1 Guest(s)
Crash Bandicoot 2 and 3 Model Ripping Problem
#1
As of a year ago model ripping for both Crash 2 and 3 is 100% possible through Werenhuis Model Ripping Program but the problem with this program (and probably with a lot of other games like spyro) is that most of the models are heavily Vertex Shaded so making 100% accurate model rips with only textures and such will be a bit of a problem. Unlike some Crash 1 models these have a lot of gradients making the simple process of Texture Baking a bit hard, not to mention that most models use both vertex shading AND normal textures. I've tried submitting the Scrubbing Bubbletron from Crash 2 a while back, before we had 6-item model export, but it was rejected as it was in the .ply format and it takes a bit of work to make it look right.

So I would really like some help to somehow put the Vertex Shading and Textures together into one larger texture or at least some help on converting it into a format acceptable to the resource.

Also before anyone asks I did try Texture Baking and it really doesn't work with these models and if you need any models/model data just ask
Reply
Thanked by: Friedslick6
#2
I've been working on 2 major models from the series, Motorcycle Crash and regular Crash.
I'd like to provide some detail on the process of exporting and correcting the model, and hopefully I can answer your queries in doing so.

So firstly and most importantly, Werenhuis' solution for exporting the textures and mapping UVs produces incomplete results that nobody would normally notice.
For whatever reason, the bottom row of pixels is discarded (making dimensions 32x31, 16x15, etc) and the bottom-most UV vertices are assigned to the row above.
You will need to rip the textures yourself until this issue is fixed or a compromise is made.
I have a method of doing so involving an emulated Windows XP machine, 3D Ripper DX, and ePSXe with the Next 3D GPU plugin.
Maybe you could find a better one, but otherwise I'd be willing to detail that process too or simply extract the textures for you.

I'll skip ahead to importing the model into Blender. You should then assign the UV islands to separate, corrected textures.
Check this Blender infographic for details on selecting, moving and stretching the UV islands to fit each texture.
(It's a daunting infographic but honestly if you stare at it long enough it starts to make sense.)

I had the same issue you describe here, and made a post about it both here and on Blender Artists. After recieving nothing conclusive, I had to make my own conclusions:
  • You could duplicate each texture for the amount of times it is reused on the mesh, and assign a different set of UVs to those duplicates.But then you will have either one file with the texture repeated a dozen times or more, or a dozen files with the same texture.
Or:
  • You could forgo the messy task of unwrapping the UVs and use the Collada DAE format which supports vertex colours AND shape keys (more on that in a moment).
The model exporter also doesn't set the UV directions properly, so exactly half the tris are inside out. You will need to select each of them and flip them manually.
There is also some floating vertices exported with the model, but do NOT optimise the model to remove them. Some of those vertices are actually 0'd out objects used in later animation frames.

Blender has something called shape keys which allow for saving vertices into separate frames for morphing between them.
It's a feature used for creating complex animations like faces, but it can also be used to store vertex animation frames.
These shape keys can then be added to the Collada DAE format as "morph targets":
  • Count the number of frames in the model, create the same amount of shape keys in Blender and export the model as a Collada DAE.
  • Export all frames using the model converter on every single frame.
  • Open each PLY model in a text editor, apply regular expression to remove everything except the vertex positions, and turn those positions into an array.
  • Open the Collada DAE model in a text editor, and for each defined morph target replace the arrays with the ones you've created.
Assuming that process has gone smoothly, you can then import the Collada DAE model back into Blender and view each shape key by setting their values to 1.

The only problem now is that there's no way to divide those shape keys into sets.
In Blender you can assign shape keys to key frames and key frames to sets, but the Collada DAE format only supports skeletal animation key frames...

And this is where the process ends, because I'm still figuring out the best way to proceed.
I've found a script that creates an armature with deformation bones assigned to each vertex.
The hope is that I can convert the vertex animation into a massive skeletal animation with sets suitable for export into one model file.
My main concern is that the model file size may increase considerably if I do so. The alternative being several models with different sets of shape keys.
EDIT: I decided to forgo preserving the animation sets in favour of properly organised morph targets, and included a Blender file with the animation sets instead.

Obviously, this is an insane amount of work. There's a lack of much-needed automation which I hope to address in the future.
I can provide examples of my work if that would help. I'm also available on Discord if needed.
Reply
Thanked by:


Forum Jump: