May 26th, 2011
Here is a guest post by regular Overgrowth modder Black_Stormy, who has come up with something very cool. I will let him explain it in his own words!
Wow a guest post on the Wolfire blog. Here's your chance Stormy, razzle dazzle em.
Oh hi! I'm Black_Stormy. I've been following OG for a few months now, a bit of a newcomer to the scene, but I've found myself engaged in the community quite heavily. I've been modding for the source engine for almost a year now and let me tell you, faithful Wolfire fans, it is an often painful process. I got hooked on the phoenix engine when I modded a fully functional model into it after about half an hour of fiddling around, with no documentation to follow. To put that in perspective, it took me two weeks to get my first fully featured model into source, after following copious amounts of sub-par tutorials and half done official documentation.
On that note, I bring you a Turner ragdoll for Gmod! It's a simple re-rig of Aubrey's original model with a custom physics model for compatibility. If you'd like to know how I modded it into source, well I'll give you a quick rundown.
For starters, the blend files of the Turner model come with the alpha releases of OG, so that wasn't exactly hard to track down. The rig that Turner is hooked up to is extremely complex though, and since I didn't need to animate anything I decided to make a simpler rig in Blender 2.57 and re-skin the mesh. I also had to make a source-friendly collision mesh to act as the bones of the model and to give appropriate joints for a nice floppy ragdoll.
If you've ever opened up a texture for OG you would have noticed that it was largely transparent. This is because of the use of the alpha channel in textures for transparency. To get the diffuse texture all I had to do was drop the texture into gimp and anti-erase the whole thing at 100% opacity.
Since the textures in the phoenix engine store the specularity data in the alpha layer of the diffuse map and the source engine stores it in the normal map I had to extract and move that. It's a simple matter of importing the diffuse texture into GIMP, desaturating the image, applying the alpha channel and then inverting the colours.
Now, the characters in OG have object space normal maps, and source can only handle tangent space normal maps, so I had to do some sniffing around to find a way to convert them. Google yeilded no results so I started experimenting. After a while I ended up stumbling across a very simple method. In blender I applied the OS normal map to the model and then just baked out the TS normal map with the "selected to active" button unchecked. It's not a fantastic result but it's well within the bounds of good enough.
A little bit of compilation troubleshooting to get the surface properties and other parameters right and viola!
I'd like to take this opportunity to ask the Wolfire community about their experience in modding. It seems that the Wolfire IRC has become a bit of a haven for indie games development chatter and we have some very talented people floating around the forums and chat. What engines have you used? What were the pros and cons, and what features do you think are essential for a next generation engine? What kinds of capabilities do you hope to see in the phoenix engine at the release of OG?
Oh, by the way, you can get the ragdoll here (See how I made you read the whole post to get to it? Jeenyus)