Decompiling the HL2 Citizens for 3DS Max

Hey, I’m having some issues with creating head hacked player models.
I’ve decompiled the HL2 citizens .mdl files using Crowbar and I then import the .QC file to 3DS Max using WallWorm.
Now that’s where the issue is, the imported mesh has a ton of extra vertices.

Normally this would be alright, I’d just select all the verts and weld with to each other with a 0.001 radius which’ll bring it down the the normal count near enough. When doing this, everything looks fine until the face flex file added to the compile and in-game and parts of the face aren’t correct, particularly the eyelids and some minor shadow errors across the face (not noticeable in screenshots, only when the head is moving).

Is there anything that can be suggested to import the models without the extra vertices, but also keeping the skinning data?

EDIT: I now have it working, it seems to be an issue with WallWorm, I’m not sure if I used some bad settings or if it’s the plugin itself. I downloaded a copy of Max 2012 and used the SMD importer by Wunderboy, it has the correct amount of vertices now.

Try importing as single mesh.

I tried that as well and still got a ton of vertices. Using the cannonfodder importer for Max 2012 worked but even when using that model I’m still have the same problem with the facial animations so now I’m really not sure what is causing it.

A few things:

  1. I’m not sure you’ll get good success if using Max 2012 and WW. You should use Max 2015/2016 for best results in WW (along with latest version of WW). There are problems with skin weights in WW on 2012, as well as poor viewport display of explicit normals in Max before 2015.

  2. The extra vertices are actually necessary. They are not really extra vertices, necessarily, and this is why: The importer only knows faces and vertices, and the weights of those; that is because in an SMD file, the vertices are not indexed. There is no way to derive from an SMD whether the original model was using the same vertex in adjacent faces because there isn’t enough information. The vertex could have been the same one, but it may also have been two separate vertices in two separate elements that were at the same location. The SMD does not store that. When any importer auto-welds these, it’s making an assumption that might not actually be correct. And when re-exporting, it will go back into SMD again which is, as in the original SMD, not containing vertex indexing–so the number in Max is actually irrelevant.

  3. If you want to import animations/flexes then you should not weld these vertices before importing extra sequences or flexes.

  4. If you are intent on welding the vertices, finish all imports and then apply a Vertex Weld to your model(s). Do this ON TOP OF all Skin/Morpher modfiers Doing this may or may not retain the normals.

  5. If not welding, you can re-export correct smoothing by telling the WWMT exporter to use Explicit Normals.