Character creation / animation

Hello all.  I've been spending a lot of time reading the forums, faqs, tutorials, etc, so I apologize in advance if I've missed the answer to my question.  I would like to build a character that I can control in 3rd person.  I'm a fairly seasoned Java programmer, but I'm pretty new to the 3d world/jME and I don't have any experience modeling or creating animations.

I'd like to build a system that lets me dynamically create characters where I can modify all types of parameters including, body, facial features, skin color, clothing, etc.  I'm not sure where to start.  Do I need to create some sort of base model for the head/torso/appendages/etc for all avatars?  Or should this be all done in code through some sort of skeletal system?

Is there any sort of faq/tutorial that explains how to make a character actually walk around with somewhat believable animation?

I'm just looking for a starting place, so if anybody could point me in the right direction, I would greatly appreciate it!

WOW!, that is a big project you want to create here.

If you really need to change programatically all aspects of an animation, I think you have two strategies:

  • Use a fully boned model (like an MD5 or something like that), and do the animations from that model by interpolating between initial and final positions.

  • Create your own mesh modification structure that would capture exactly what you need.

Unfortunately this is no easy task either way... And requires lots of experience in 3D programming to achieve.

for animating the character, u can use maya or 3d studio max or even blender to do a set of skeletal animations. then export them as md5 files.

im writing the md5 importer for jme right now, and i should be able to finish it by this weekend.

for change the face and stuff, u can either use different face/head models or u can use vertex shaders to do a complete free face modeling in game.

Hmm… maybe I phrased my question wrong or over complicated it.  But then again, maybe I didn't :slight_smile:

I'm not sure that what I want to do is programatically change all aspects of an animation… just the physical attributes of the character.  I guess a good example would be avatars in Second Life or the soon-to-be-released PS3 Home.  Every character can behave and move in exactly the same way, I just want to be able to make one instance of a person a little taller or fatter and have a different hair color/clothes/etc.

I was also wondering if there was a complete n00b guide for moving a character around in 3rd person with animation.  For instance, it is very simple to create a physics box that navigates through space using forces.  But when you load a human model and press 'w' and begin to walk forward, how do you make the character smoothly go from standing still to swaying his arms and moving his legs?  And how do you bring him smoothly back to rest, rotate, move head to point in the direction of the camera, etc?  Does such a thing exist?

I believe the topicstarter wants something that is also included with the Nintendo Wii.

You can create your own character but give it different height, width, hair, facial expressions etc.

So what you'd probably want… is a tool within JME that can edit a 3d model (it's bones I would suppose?) on the fly… is that even possible?  :?

Still curious if altering a 3d model within JME is possible and in what direction one has to think :slight_smile:

Right on.  Instead of having static model avatars, I'd like to have certain aspects of the avatar dynamic… use a slider and watch the avatar go from skinny to fat, tall to short, long skinny face to short round face, light skin to dark skin, etc.

This is an aspect that I think MANY people would like to see, I know I would.

Maybe we should consider creating a group to work on this, with the end goal to incorporate it into the jmex package. :smiley:

can we do it by "filling" around a skeleton ? like real flesh :smiley:

I'm new to this but I believe that wouldn't be that hard to have cylinders around bones.

and have some definitions of how wide would be some cylinders, doing so we can have a Michelan like avatar.

then find a way to make the transitions from cylinder to cylinder smoothly.

does it make sense ?

This solution seems to do something like I said

But we could have a configuration file to define a set of rules of "filling", who knows extract some rules from the Makehuman

Currently all these solutions are still unsatisfactory. Also Second Life use a similar approach to give players the opportunity to customize the appearance of their avatars. Though the results are still ugly in most of the cases. Makehuman is a interesting utility, but to obtain a realistic character takes more time than modelling it from scratch.

The point, in my opinion, is the wrong approach to parametric modeling. Makehuman pretends to have a human understandable approach, this lead to have several modifiers affecting the same vertices of a mesh, with unpredictable results. After few minutes spent manipulating the model you can obtain a completelly messed up shape.

This observations lead me to think that there could be many deformation controllers that are useless.

Though, Makehuman could be a good starting point for the creation of a more precise tool. The point is to have several target meshes and selectively interpolate vertices between them.


So we agree that is possible  :slight_smile:

If I have the knowledge, I would choose to do something with imported .bhv data.

any tips on how to deal with this skeleton information,

so we can start by adding some tubes to the skeleton ?


If you are really intentioned to do it you can open a project on some open source software host page.

I have no specific knowledge about Makehuman like software but my MD5 Reader 2 effort is giving me some little knowledge about bones. To start creatign tubes from a skeleton hierarchy should not be so hard and you can copy from Skinny for Blender. Building up a skeleton hierarchy (without animation and weights) is trivial. The problems will come later. When you will start to test animation and weights.

What I do not understand totally is if you are intentioned to create procedural mesh characters as like as is happening in some new generation games.

Ender said:

[...]create procedural mesh characters as like as is happening in some new generation games.

Cool, I wasn't aware of those games (unless you count Spore). Could you name/link a few?

I was talking exactly about Spore… but I heard that there are other developers planning similar approach for the future games.

do we have an BVH importer or something like this ?

If not as I can see we can follow these steps :

1 - import bvh models, and represent as bones

2 - allow the animations to be executed

3 - create rules to fill the bones with some kind of flesh

4 - create rules to dress up the flesh with clothes :slight_smile: no naked chars please !! hehehe

btw whaat is "procedural mesh characters" ? I'm not familiar with this term. :slight_smile:

here is some docs about the BVH format

athanazio said:

btw whaat is "procedural mesh characters" ? I'm not familiar with this term. :)

Procedural meshes are meshes calculated at runtime by the application on the base of some algorithm as like as happens for procedural materials and textures. This permits to have an sort of infinite level of detail. If you zoom in a mesh, the application will add detail (keeping mesh shape unchanged, because it is calculated parametrically), as like as already happens with bezier curves in 2D applications like Adobe Illustrator and Nurbs in applications like Maya, where Nurbs are drown using tessellation in the final render.

procedural mesh characters !! now I got it. thx a lot.

thinking about this I was wondering is their anyway to simply change clothes during runtime and how would i go about doing such a thing I consulted a couple people with the matter but they were all unsure

Something AWESOME but also sucky:

Awesome = EA hired my CSC teacher to work on Spore!