I finally got it how to do it so the meshes of character model would be easily change-able (separating all parts like head, upper arms, lower arms etc. into .obj or .fbx without skeletons, importing to unity and then parenting to the right bones inside unity) but I’ve ran into this problem now.
When I add the meshes to skeleton like that, they work just fine with animations etc., but the problem is that when it animates, it looks just horrible lol.
You can see the gaps/ spaces where the meshes meet (where the joins are, like upper arm and lower arm meshes meet, etc)…
Other than that it’s just fine for me, if I could connect those meshes somehow to get rid of the spaces between them it would be just perfect!
So how could I do it, what would be the best way (if there is) to connect the meshes, so there wouldn’t be spaces where they meet/ connect?
Thanks
EDIT:
or is there a better way to implement customizable body parts? if so then what is it?
The Mesh class has a boneWeights property that describes how each vertex will be affected by the bones. It may be that you have got the right vertices affected by the right bones, but with the wrong weighting for each bone.
When you create the body as a single mesh in 3ds Max or Blender or whatever, attaching the parts of it to the bones is a process called “Skinning” and it is very important. In this process, you tell the bone system (the skeleton or “rig”) which points (vertices) are controlled by which bone. It is during skinning that you tell the skull bone to control the head, the spine to control the torso, etc.
This process is important because it get’s into fine detail. A vertex in the neck will be controlled 50% by the skull bone, 50% by the top spine bone. This process is called “Bone Weighting.” The vertex just under the ear will be controlled 75% by the skull and 25% by the upper spine. A vertex more toward the shoulder will be controlled 25% by the skull 50% by the upper spine and 25% by the shoulder bone. It’s very subtle and you have great control over this.
It’s because each vertex is controlled by more than one bone that the skin seems to stretch, making movement look very realistic. It’s really awesome!
When you skip this process, you have your problem.
I don’t think you will be able to actually “connect” the meshes, physically.
What you need to do is ensure that the boneWeights values are the exact same (exactly the same) across the borders of the two meshes. Same weights, and weighted to the same number of bones etc. Everything must be the same between the two meshes across the border edges. That will keep the meshes from separating when animating.
Uhh, well I can’t think of another way to make the character customizable
I know what skinning is and I have that same character skinned, but I just don’t get it how to add more than one mesh to it so the animation would work on all the meshes and you could switch between them and make the character customizable
Interesting dilemma. This is how I’m thinking of going about it:
Customize race / face: You have several skinned meshes, and you load the one the player chooses into Unity as your player character.
Customize proportions: can be done with a gui and scripting inside unity.
Customize hair: Attach the specific hair to the skull bone with scripting inside unity.
Hair skin color: link the correct texture file to the player character with scripting inside unity.
Customize posture: you can have choices about how your player character stands, idles, walks etc by loading a certain animation file.
Customize clothing: I don’t know how to do this, but it must be possible to load different shirts / pants / hats and the like. Things that move with the character, not like armor, which is rigid and just kind of hangs there. They do it in Second Life, and I’m sure Unity can do anything that SL can. Anybody know how to do this?
Thanks.
When you think about it, it’s not hard at all to do it. Just make different skinned meshes for head, body, arms, legs, feet inside a model and then just hide all of them but one of each and when you want to change, say helmet, it would de-activate/ hide the head mesh and activate/ show another head mesh instead.
But when it comes to doing it, it’s not that easy heh.
Either it’s just me or it’s pretty hard to do… All I do is change some meshes inside model (all bones stay same) but then inside Unity animations I had for same model with less meshes don’t work or something similar… Just lots of problems
I’ve seen many people talking about character customization, that it’s not hard to do and that they done it. I think I’m going to PM them and kindly ask to explain