Jump to content

Character Generation Library, does this exist?


JackStone

Recommended Posts

Hello,


I have recently discovered Mixamo Fuse, and it's powerful character generation abilities.


What I would really love though is to incorporate a program like this into a computer games engine.


Does anyone know of any library out there that could be used like this?


I have created a simple character creator before, but it is a long and involved process. Having access to a software library would be a huge advantage, a developer would only need to create the individual art assets (clothing, etc) and the software would allow the user to combine them with the base mesh and customise them.


Is such a thing possible?

Link to comment
Share on other sites

As it turns out, T3D has morph target animation support, is this correct? My knowledge of animation is poor, but could this feature be used with Torque to produce a character creator similiar to fuse?

I think the meaning of this term has drifted since TGE added this. If I recall correctly, this was specific to facial animations and relied on animation keys in the Skin modifier, so "morph targets" in the 1999~2004 sense of the term. Not in the "using a vertex shader to morph the mesh to a desired shape" sense that we use today. So, theoretically you could put the keys in the whole body mesh but you'd then probably have to have a set of animations for each of these targets - at a guess.

Link to comment
Share on other sites

Yes, I did a little digging, and it seems that you're right. I think this support was even depreciated a number of years ago.


So, is that how morph target animation works then, in a character generator? You use a shader to alter the positions of the model? That's very clever, shaders are incredibly powerful.


I'm not an artist, so I doubt I would understand this well enough to implement it, but would it be possible to create a system that does this? T3D has shaders, is it entirely shader based?

Link to comment
Share on other sites

The biggest issue with morph targets is that lots of art pipelines don't support them at all anymore.


Assimp doesn't support it, for example.


Torque had some nominal support for them, but I haven't personally tried it myself.


Most current games I've looked into for this sort of thing seem to have largely shifted to bones, with bone scaling and clever rigging to change the character shape. For example the Sims 3 and 4 do this.


For a basic breakdown in how both approaches would work:


For morph targets, you would create a series of shape keys, or separate models with the different adjustments you'd want(such as, say, the nose being bigger). You'd export these out and load them into the engine and basically store the vert positions as a separate type of animation rather than bones which stores the positions of the verts at their modified placement.


When you'd go to blend on the shape key animation, you'd handle those separately from bone animations by having your 0-1 value dictate how blended between the 'unchanged' and 'totally changed' you want for that shape animation. You'd do that for each of the morph targets to get a final blended position.


I think the main reason this has phased out is with the shift to instanced meshes. Instancing require the verts to be in the same position, so in order to morph targets on TOP of hardware skinning the bone transforms, means you'd not only be passing up the transforms for all the bones to affect the model, but you'd also have to pass along vert permutation info. You can potentially chew up a good bit of bandwidth hocking all that data around and it also complicates the shaders some.


Not impossible, but less than ideal, which again may be why it's less common now.


The other approach, which seems to be the main way these days, is using bone positions and scaling. This method doesn't require any special pipeline handling, and doesn't change anything about the rendering/shaders in regards to instancing/hardware skinning, which is most likely why it's favored.


The basic idea with this is that you would, when rigging your character as normal, add in additional bones that are children of your regular rig bones. Various parts of the model are skinned to those bones, so they animate normally, but when you adjust their position, or their scale, it influences the look of the geometry of the model.


For example, you could have a bone in the nose, and if you move it up or down via a simple offset value(or a blended animation), this moves the nose up and down on the face. If you scale the bone, the nose gets bigger or smaller, etc.


I don't know at a glance what Mixamo Fuse uses, since they don't need to do optimizations for realtime rendering while editing the character, it's possible they went with morphs, but if they did end up using the bones approach, you can see if those bones are exported along with the model. If they are, you should be able to fairly readily utilize them to have similar customization.


If you're rolling your own character from scratch, you'd naturally need to add those bones yourself. Once the bones exist and are rigged to the mesh though, adjusting them via blended anims or code is fairly straightforward.

Link to comment
Share on other sites

JeffR, Thank you so much for that post! That really clears up a lot of the gaps in my knowledge.


So, morph targets are essentially obsolete, would that be correct? It seems Unreal uses them a lot for it's character generator resources.


By "not requiring any special pipeline handling", I assume you mean that the bones solution would be largely engine independent, would that be correct?


I think I get the general concept now, I could do some experimenting with it. Do you know how multiple clothing, and armour types, etc, work then? If I scale up the arms, does the armour that I have attached to the arms scale up with them?


Mixamo fuse seems to use multiple meshes, I can see in the editor window a distinct mesh for the lower body, upper body, etc. I'm not sure if it uses bones or morph targets.


Thanks again!

Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...