The Adventures of Making a Player Character · 2603 days ago
I’ve spent the last week working on my main player character, getting the concept art done, creating the model and taking it through all the steps to be running in the game. Here is what I went through and some of the lessons I’ve learned along the way.
For modeling I just put in some really rough shapes to get the main parts of him, just so it looks more like what I want. I posed him in the relaxed posture, gave him an almost complete rig (just didn’t finish his hands with fingers yet), skinned him and set up his texture maps.
I gave him a nice standing pose and breathing ‘root’ animation for the game. Then spent a while figuring out why exactly I couldn’t export my poor guy for the game, and fixing that. At this point I had my character in the game and breathing,
Then I copied the max file to a new one, called it run, and worked on getting a basic run animation working… again ran into some trouble with exporting, but managed to fix it and then the guy was running in the game, leaving footprints and everything.
At this point things were much easier. Now I was able to make a jumping animation, a falling animation, all pretty easily.
And yaya! I’ve got my guy in the game running around, jumping and falling.
I had to fix the code up a bit so that the jumping animation would transition smoothly into the falling animation, which looks really nice now. Before I did this, at the apex of his jump he would switch into his root breathing pose.
Lessons I’ve learned, or at least things I plan on doing differently.
1. Rigging the bone structure in the relaxed pose = bad idea. Maybe there is a way around it, but I can’t get the guy to straighten out his legs…I think next time what I will do is rig in the DaVinci pose so that the legs and arm joints are completely extended and straight, then move the rig into the relaxed pose, fit the model around it, then do the skinning. I still think that skinning in the relaxed pose makes sense…actually skinning with the joints midway between your most extreme angles you want to animate (which tends to be this relaxed pose) makes sense.
2. Scaling bones = bad idea. This was a side effect of rigging in the relaxed pose, sometimes in order to get the bones just right had to scale them a bit…I think this caused some unnecessary problems later down in the chain of things.
3. Overlapping geometry = pain to skin properly. On the main body section, I had the full chest modeled, and then on top of that I had the hood pullover piece modeled. Getting these things to have the correct skin weights in the correct spot proved to be nearly impossible for me. Next time where possible, there will just be a single mesh, no chest underneath except where you could possibly see it. It’s a waste of polys anyways my bad!
4. Don’t give up and start over if you’ve done a lot of work….I came dangerously close to this when I was having trouble exporting a character….some forum posts lead me to believe that the problem was my geometry errors, having open edges in the mesh. Thankfully I kept with the problem and was able to fix it, the open edges was not the problem. I did spend a long time debugging the hierarchy, but I would have spent much longer recreating everything.
5. You don’t have to use separate mesh objects in you want different materials in the game. The exporter supports multi/ sub- object materials in max, so you can make one mesh, assign the different parts of it different materials, and then skin it. The only exception to this is with materials you want to be double sided; those things need to be their own mesh.
For my next creation adventure here is the path I plan to follow:
1. character sketch in da Vinci pose, just a reference for bone lengths and placements
2. set up bones in da Vinci pose
3. rig bones
4. test out rig in simple animations
5. move rig into relaxed pose, this is the pose you will model around and skin in.
6. model mesh…not a rough model, do it until I am happy with the quality as I don’t want to have to go back to this point.
7. convert into editable mesh (not editable poly since the exporter has trouble with this)
8. uvw map, being conscious of texture usage (the first time around I used multiple textures for my guy with a lot of wasted texture map space)
9. smooth the normals out
10. collapse everything to a single editable mesh.
11. set up this raw model to export into the game as a static model in the correct orientation. Once that is working and verified
12. skin the mesh to the bones
13. animate.
Yes it’s a lot of work, but it’s very satisfying work once you see your creation living and breathing in the game. One problem that may be unavoidable, but I keep making it:
When I need to do something for the game that I’ve never done before, I tend to do a simplified version of it and get that working first. This is good as it doesn’t complicate things and I learn how to do new things…but…and a big but, I could have instead done the complex version, still learned how to do it and have a finished asset I can use in my game. Instead I’m now left with something very close to what I need but unacceptable for the final game. This means I’ll have to go back and do all the work again.
It may just be that if I started off with the complete final quality target that I would get very frustrated in the process, but I think that is a risk I should be taking for my next model… maybe it’s a lesson of patience more than anything.
