Hello... I'd like to make a project for my study. My games is 3D fighting game with character creation such as customize body shape. As far as I know, every different shape of body has different poly count, for example male chest are different to female chest and sometimes female has flat chest. Other example, skinny male has different shape to fatty male. My question is, can we using one model shape as base model to make variety shape? It's like mesh deformation but implemented to animated object. I am afraid can't because every different shape has different vertex count.
You can do it, because other people have done it. But, as far as I know, those other people are multi-million dollar studios. I think having an in game model editor is very advanced stuff. Changing the shape of a model doesn't necessarily mean adding/subtracting vertices. It just means changing the vertices location in 3d space. Change the location too far, and you can get texture stretching. A character mesh is not animated. There is a skeleton like structure beneath it, called a rig, and that is what holds the animation data. The mesh that you see rendered at runtime -- the collection of vertices and materials -- is binded to the rig, with each vertex recieving a certain amount of weight to each of the rigs joints. So you can move the vertices around, and the animation does not change. Within reason. Obviously, if you pull the tip of the characters finger down to their knee and then play an animation, things would look weird. But if you pooch out skinnies belly a bit so he becomes fatty, things are probably going to look fine. The link is a tutorial (paid) that covers how to set up customizable equipment and materials, which isn't the same thing but might be a reasonable compromise for a solo-developer. https://app.pluralsight.com/library/courses/customizable-characters-unity-732/table-of-contents
I've looked pluralsight and blend shape. Pluralsight using common technique like in common games skyrim (I am not watch every videos because it's paid course). My idea is the game can generate player shape by input some values, I am inspired from http://www.makehuman.org/. Because by doing that, player can make character more specific and detailed. And about blend shape, I am find on youtube that method used to animate model. It's similar to vertex weighting. Looks I must find my own way, maybe I will start with mesh deform and tessellation.
Okay. I do a good bit of character modelling, so my advice for this case, would be to make four seperate meshes, or 4 body types. Each with it's own suitable amount of vertices, for mesh morphing and mesh manipulation. 1) A slightly muscular/skinny male mesh. 2) A normal slim/slightly muscular female mesh. 3) A fat man mesh. 4) A fat female mesh. Doing it this way, might be alot easier. Since the vertices and number of vertices in each body type, correspond only, to that particular body type. And helps in creating characters, based on that particular body type. So if you wanted to make a buff fat man character, all you would have to do, is select the fat man body mesh, which contains vertices and mesh topology, specifically for the purpose of making, different fat man characters. And then the player, can tweak the dials and parameters, until the fat man characters stomach and muscles, gets bigger or smaller etc. The same with the skinny muscular man mesh. He'll have vertices and a unique mesh topology, specifically for the purpose of making different types, of skinny muscular, or super muscular characters. Doing it the way I mentioned above, will help make things, alot easier for you too. And help make things more organised. Because sometimes, having too many vertices in a single mesh whose purpose is to help manipulate and deform the mesh, can sometimes cause some eeky ugly mesh deformation problems, when manipulating certain parts of the body mesh. eg. The stomach or muscles, of the human mesh etc. Yeah, I'll be honest: It will be kinda tough, making 4 different body types, but in the end, it'll be more than worth it. And it might come in handy, for your other games too.
What I have done for my game is also basically how UMA works: have "tweak" bones. These bones are deforming bones that are scaled/moved during runtime. It's a super easy way of doing it, and it's awesome! It's super easy to set up too. What I did was basically allow the adding of a "Slider", then I simply scale whatever tweak bones I want, and click save. Some simple editor code then detects any translations, and saves them. Then during runtime simply scale by the amount the slider is at. EASY! The biggest gain is the fact that this will work for all skinned meshes on your character. As long as you weight paint everything well, then all armor / characters will just... work.