Well, I geve the whole idea some thought and see the following picture.
-
In Blender I compose all model as whole (Blender is bad at splitting things and keeping normals intact)
I compose all required morphs directly on model.
-
I split model either during export or in engine (in game). The later looks more promising as engine should
know its limits. The best way to split is by blend indices, but if that gets boring/complicated I could always split
using geometry.
-
I apply resulting pieces to AnimatedModel each on the same Node, which allows to control everything from
first component.
@cadaver
@Modanung
@Sinoid
- does it look good?
I tried to split in blender using additional geometry by using different material for different pieces,
but that produced very buggy result, so it have to be separate meshes.
What I want to achieve here is not some kind of character with parts of body replaced,
but more layered approach, where clothes are layered on top of body. This approach allows nude/semi nude options
and is more flexible in general.
I use makehuman Default skeleton, the one with complex face structure (which I lake as it helps making
facial gestures even for me which is neither animator nor character designer). As I found most
flexibility I look for is in face area, but I also want macro parameters (height, head size, boldness, fatness
also changeable).
When I look at examples it is more into either SR2-4 character customization or Japanese games like AG3
character design options. So it is not like character is built of bricks, but more of shape, i.e. you not
just select body type from a set, you morph one to other, so you can have fine-grained control.
So it looks like I have the following challenges to overcome before this becomes true:
-
20/64 bone limit overcoming - as I plan addition of hair and clothing rig (and hair physics if somebody will help me do this), I will get to 200+ bones on the skeleton, which will require some automatic handling. So
I will need a way to effectively autosplit models or some other great ideas (I tried Unity and UE4 - models with 300 bones work great there on GLES2 type hardware - how?).
(
this is what I currently struggle with
)
-
I will need to rebuild skeleton according to all morphs. Just fine-tuning stuff in code according to morph values will
become boring and I don’t want boredom in hobby project so I will need markers exportable via Blender as part of mesh. These should be morphable by morphs too. I can just model internal cubes as Makehuman uses and move them together witm morphs. These should be placed at root of each bone. I will be able to find bone rotation by
consulting parent cube position, so that should be doable with plain loop over all bones. The only problem is tiip of “leaf” (no child) bones, but this can be handled by special tip cubes.
The problem is I currently don’t understand how to access such data from Model, as these will be individual named
vertex groups without bone associated.
@cadaver
- is it even possible?
-
As this only done on character customization, not on actual game play, the result should be saveable in some way
so that save data will not grow too much. Any ideas on this? Carrying .mdls through all game saves doesn’t make me happy…
-
Performance - as we will have quite a lot of batches per character (for 200 bones we will have 10 meshes for
only a body in worst cast, not including clothes) I will want only close characters (a limited number of them) to have
such details, especially in case of crowds. So a set of LOD versions of a character should be creatable
using the same metadata. So we need a few versions of original mesh with simplified skeleton, and have full set
of similar looking morphs on them (where necessary) so creation process will create full set of meshes.
Any ideas where to look farther?