how can i render realistic people?

Started by
21 comments, last by thedevdan 19 years, 9 months ago
hi everyone I took a course in OpenGL in university and since then i have been playing around with it. its somewhat of a hobby for me... i did computer science so im pretty familiar with programming in general. but its pretty obvious to me that im not that great at game programming or real time programming... but im learning... anyway i have all these ideas for games and i've been trying to implement some of them... i am fascinated by the real looking models for characters in games like final fantasy 11 and freelancer. i wish to make a character model look like that, but i have thus far been unsuccessful. i started out constructing my characters from polygons and cylindars... of course i knew that wouldn't look very realistic but it gave me something to work with to get the motion working. anyway then i discovered 3dsMAX and their ever so nice looking "editable mesh" objects... but i have yet another problem, these meshes are fixed in shape and i want my characters to move of course. for example... a mesh of someones face, i want the person to talk so his mouth has to move. but the only way i know how to get the mouth to move is to cut out his lower jaw and make him look like a ventriloquest puppet. i cut up a model of a person and fitted the pieces together... forearm, upper arm, upper, lower legs, and made a person object, which records all the angles of the persons joints, and by changing the angles i am able to get the character to move... i have a walking sequence done already. but after cutting the model up the polygon normals no longer match up and it looks really fake. sooo.... my question is, what am i missing? how do they do those cool looking models like in those games? with no fake looking joints and smooth meshes, and smooth movements? [Edited by - kaervek21 on July 6, 2004 2:42:14 PM]
Advertisement
Try looking for "Skeletal Animation" on Google.
Realistic enough, and not so hard to grasp.
-=Moogle=-
skeletal animation is what you're looking for.
search for skeletal animation, vertex blending, matrix palette skinning.
and the bones/skin tools in 3Dsmax

EDIT: oops, sorry Moogle, crosspost :/
When it comes to realistic people, there are really two things that make or break.

1) Body movement. This is the single most important thing, and I personally recommend skeletal animation for this sort of thing, with a complete inverse kinematics (IK) implementation if possible. A person needs to move like a real person. This involves lots of little details. Walking and running need to be done right, otherwise they can totally destroy the illusion. Whoever is doing the modeling should watch slow motion videos of real people in order to get a feel for how people really move. Another thing is that the body is NOT stationary during conversations. Whether you realize it or not, body language, gestures, etc. are a part of your ability to communicate and define who you are, as much as facial expression. Everyone behaves differently, and it's quite difficult to create a personality through body language. Final Fantasy does it to some degree, but their body movements are usually not major, except for the scripted cut-scenes.
If you do this first part effectively, it's actually possible to create a believable character without facial animation, especially if you don't zoom in on their face.

2) Facial animation. I believe that this is the less important of the two, just because it's much more subtle. If you choose to implement facial animation, beware! Bad facial animation can be worse than no facial animation at all. In any case, there's a lot more resources on facial animation than the body language I described earlier, in fact, a simple Google search brings up quite a lot of topics. The face is an extremely complex and subtle entity, consisting of several hundred muscles, all of which interact to create the faces we see every day in real life. This is programmatically way more difficult to do than the body language, but there's far more resources on it. See the Google search I just linked.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
WOW, i put the post up, BAM 3 replies...
looks like a really active group :P
thanks for the input i'll definitely look up skeletal animation... and thanks promit i will probably avoid facial animation all together, its not gonna be that crucial. the mouth example was just that, an example.

so while you guys were posting (in like 3 minutes flat) i was reading some other posts in this forum... what are LOD models?
LOD = Level of Detail

In short, it means reducing the number of polygons used to render any given object. Usually you do it as an object gets farther away and well, you don't need 10K polys on a character which occupies all of 20 pixels on screen, you know? [smile]
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
If you're a non-artist, or really impatient like myself, I'd highly recommend Poser for character modeling.

Link

It is definitely worth it. Ethereal Darkness is using it for their game, resulting in some really nice results.
ah yes, ive seen lod models at work in some games... i guess the real challenge is to make it not so noticable when you switch from one level to the next.

and thanks jake, i'll have a look at poser as well.

does anyone know how you would go about importing poser models into a 3d engine?

whats the best thing to use, openGL or DirectX ... or some higher level 3d language built on top of one of those???
What I do in Poser is to get the model as I want, then export it to 3d Studio Max... From there you can either load it into your game, or take it to pretty much whichever file format you want.

Be warned though, you'll probably have to do some tweaking to the model, as Poser models are very high poly. It's still easier to go this route IMHO than rendering a character model + animation from scratch...
Quote:Original post by kaervek21
whats the best thing to use, openGL or DirectX ... or some higher level 3d language built on top of one of those???


I'm going to say OpenGL, only because you already know some OpenGL. They're essentially equivalent, so you may as well stick with what you know.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

This topic is closed to new replies.

Advertisement