I'm currently working with a programer on creating an avatar
system that will allow players to create their own unique avatar.
We will be dividing up the mesh into multiple sections (head,
upperbody, hands, legs, feet). For simple things like accessories
we will just attach to a bone.
We are running into a problem with the bones and getting
items to swap out and using the animation.
So this is what he's telling me:
"Our mesh isn't separated in to separate parts, its a single
mesh that is rigged with bone animation. The separate 'groups' are
merely the vertex groups of the single mesh with coaralate to the
bones they are assigned to. When the animation plays these vertex
groups simply rotate around the group center (or bone center in the
Thats why this is hard to accomplish with a single mesh.
Changing the pants on the character wont be possible as the legs
are part of the whole avatar mesh. What I cannot do is take out
those leg verticies and reconstruct the pants onto the whole
avatar. Applying shoes to the avatar groups (paranting) or gloves,
or a watch, or glasses, or a hat isnt a problem as those are
seperate meshes that can be merely parented to a bone and it
follows the bone positions through the animation. Taking a whole
mesh apart (taking out a group of verticies) and inserting a new
set of verticies that have an arbitrary number (say its more polys
than the original legs) is the issue as the animation data is
constructed with the verticies (group) of the single mesh.
Overlaying that information onto a new mesh is our issue. Even with
the new legs having animation data, that requires we remove the old
legs from the single mesh (singling out the group of verts and
removing them) adding the new verticies and polys (and somehow
getting them to attach to the original mesh without having to
rebuild the whole mesh in memory because we would loose the
animation data if we had to do that, not to mention getting the new
verts to align up with the old mesh that was built with the old
legs aligning up) and then playing the animation queues that the
main body is playing (and making sure the delta timing didnt mess
with us and cause strange artifacts in the mesh visually as one
animation is catching up to a keyframe where the other mesh
animation is slowing down to stay in time of the keyframe)."
Someone mentioned we should use reanimator3D, and he's
looking into this, but I'm just posting this to see if there's
other solutions or if anyone has had experince doing this.