The SHELL model explained

Discussing, modding and troubleshooting the greatest unfinished sequel ever!
User avatar
アルカリ (単3形)
Posts: 5345
Joined: Sun Jun 08, 2003 12:14 am
Location: Bleak City

The SHELL model explained

Post by Toshiba-3 »

I'll try to explain the SHELL model.
Most people don't get what the SHELL model is about, they just know that CarEd generates one and that it might cause problem with your grooves.
Well the SHELL model is an important asset to your car in four aspects:

1. The look of your undamaged car
2. The ingame performance
3. The Steel Gonad O' Death powerup
4. Creativity

A good shell takes quite some time to be made correctly. The point behind the SHELL model is to remove every groovy component, then remove every single triangle that isn't visible when the car is undamaged and has its doors shut. This often means to remove entirely the engine and trunk bay, and the geometry between the doors. If you have other detachables with geometry under it meant to be visible only when the detachable has detached, then you can remove that geometry as well. As you understand the idea is to get a single component that is the outer shell of the car (there's no vertice/triangle limit for a SHELL). This also means that when you have remove the engine bay for example, you'll have to weld the vertices with the rest of the car, probably the front fender, the grill and the windshield etc.
The fact to get a solid, closed model is very important here because the SHELL model has an unique feature over the complex model and it is smoothing groups related. Let me explain: on the complex model, even if a component only uses one smoohting group it will have hard edges where the UVW map ends or even when two different textures meets. This is VERY annoying. Well this isn't the case for the SHELL model! The shell model will let you create a nice smoothing on the sides of your car from the front fender to the rear one through the doors, without any hard edges in the smoothing. For those using the "chrome effect", considering the fake env mapping is based on smoothing, you'll get better results with a proper SHELL model.
So as you can see, it isn't easy to make a good SHELL in PT2 once the car is ingame, it is something you should think about when you're still in MAX/Zmod/CarEd (though CarEd doesn't support smoothing groups, you can still apply them in PT2). Prepare it once you're done with the 3D step of your addon, when you are sure that the model is final. Make a copy of your scene, and start removing everying that can't be seen when the car is undamaged and with everything shut and tidy. You can actually even optimize the polycount because of this. And then merging everything into a single model and welding all the duplicate vertices together to allow smoothing groups to work correctly (PT2 can fix duplicate vertices, but often screws up the mapping in the process).

Now the performance part is rather obvious: when the game loads the SHELL model, it has only one component to graphicaly handle (but the grooves ofcourse, as they appear anyway), less triangles and more importantly, less vertices. But what's more is that the game doesn't need to calculate any possible damage at all as both the SHELL model and GROOVES don't get dynamic damages. It's like a little relief for the game, before the storm (or until you hit the repair button).

The Steel Gonad O' Death powerup uses the SHELL model. It's as simple as that. If the car has no shell model, the powerup won't work correctly. I guess the gonad effect can only be affected to a single component so it has to use the car when it's in its SHELL form. The action replay mode never uses the SHELL model (even when the car's intact) so the gonad can't be seen through that.

And finally, how the SHELL model can help your creativity! Well somehow I think it might be the most important part. If you look at it objectively, you've got three models for a same car in C2: the simple_model, the SHELL model and the complex model. We all know what the simple_model is all about, and even though we could use it to create some kind of effect running on the distance, it would hurt the performance of the game. So the two models left can help you create before-after effects! Or even simple animations if coupled to funk materials! For example the complex model could be already damaged in comparison to the SHELL model which would be intact. Now it would look strange that your car becomes damaged when you open the doors, but if it has none or they aren't kevoflap etc. Or the driver's mood could differ from a model to another. You have two models for the same car, if you want to add fun or unique effects thanks to this, the sky is the limit.

Technically, the single component in the SHELL model must be named SHELL. The game only needs the .DAT file of the SHELL and it must be named NameOfYourCarSHELL.dat, no underscore or anything. It will use the same .MAT file as the complex model so if you have a different skin for the SHELL model, make sure these textures are loaded via the complex model (through a hidden dummy object or something). Never forget to remove the grooves from your shell model, else they'll be duplicated ingame.