Question about Model Rendering, Multiple Models into one.

FyBurOpTek 101 Jan 28, 2011 at 12:01

First I would like to apologize if this is in the wrong section, or if my searching skills have failed to show me a similar thread.

My question involved Graphics and Model rendering but is directly involved with game design. I have, two models Model A, and Model B.
Both models have the same animations, such as walking or waving, and the only difference the shape of the models, Model A has Bell Bottom Pants, while Model B doesn’t, and Model B has a jacket on, while Model A doesn’t.
If that doesn’t make sense, it’s like this:

Model A: Shirt, Bell Bottom Pants
Model B: Jacket, Blue Jeans

Now, in my Video game, (Not very a big one) I want the player, to be able to change the appearance of his character, From Models A and Models B.
So far this is no problem. Now say the player wants to wear the jacket AND the bell bottom pants (Classy, I know), Would there be an “easy” way to do this, while I understand there are only two models, thus only 4 combination of clothing types that I should just probably create the animations for all types. The question is for future reference if I decide to add more. There must be an easy way to do this.
A real world example would be ijji’s Gunz: The Duel. How they have 5 slots for your character to wear clothing, and offer at least 20 pieces of clothing per sections! ( About 1.216451 × 10\^19 possible combinations.)

I hope there was enough information in this post to get an accurate answer back, this has been puzzling me for a few days now. And with my Googl’er broke I can’t seem to find the appropriated resources to answer this question.

10 Replies

Please log in or register to post a reply.

rouncer 104 Jan 28, 2011 at 13:31

Well, if the two models were completely different, and even had different animations sets, then that would be acceptable to have 2 completely different models to select from.

But if the animations the same, they look virtually the same except maybe some clothing differences, maybe it would be better to implement some kind of clothing system, where you render more than one model at once, the character, and then the clothes he is wearing on top.

FyBurOpTek 101 Jan 28, 2011 at 13:35

I thank you for the quick reply, and while I’ve thought of this. I believe I should mention that my Video game is targeting Multiple platforms, on a variety of systems ranging from a Mac Pro to a Netbook running a version of linux. While it’s not of the utmost importance, it’s one of those features I would like to implement.
My concern would be Polygon count.

alphadog 101 Jan 28, 2011 at 15:20

Are you using a particular game engine already, or looking for general ideas?

The overgeneralized way is to divide your model space into top-level types (ex: Human male, Remulax female, etc). Then, divide into sections for each top-level type (ex: head, chest, leg, etc.), create a bunch of meshes for each section (ex: for chest, you have tight clothing, loose clothing, naked, etc.), and then create a bunch of textures for each mesh (ex: for tight clothing, you have lacy sexy bra, strappy red tanktop, rock tshirt with logo, etc.). In this more frequent case, the clothes are modeled as “part of” the body. The sections get joined to create the total model. This minimizes issues related to clipping, fitting and such, but pushes a lot of work towards the artist side of the equation.

It is possible to model lots of individual objects, then mount/merge/join them. It’s more difficult because of increased the complexity, but it does allow more dynamic behaviors. But, it taps out the dev side.

Some do hybrids, where some items, like a cloak, may be a wholly separate entity.

Morphing can let you do thin/fat modifications.

A lot of this depends on your engine.

rouncer 104 Jan 28, 2011 at 15:25

I agree with alphadog when he says modelling the clothes as a part of the model is easiest. Also changing textures is alot easier than changing geometry.
I think you should consider this a tough part of the project and in game making in general, remember probably 1/4 of the work going into some mmo’s is the character customizer!
Its not a subject to NOT put a fair bit of thought into, id say.

FyBurOpTek 101 Jan 28, 2011 at 15:32

It’s a bit towards the middle of general ideas and having a particular game engine.
I use a version of jME3, but I’m pushing more so for the library of things, because when I look at a game engine, I see the simple “drag&drop” method which is something I wish to avoid. While this isn’t a job of mine, it’s a hobby that I feel I deny myself the overall satisfaction of creating something, versus using a game engine to do a vast majority of the work for me.

Also, stating that this is a hobby should probably label me as a “one-man army” so in the end, I have to do all the work regardless. But I suppose to try and clarify my question is that I plan to change the meshes directly to minimize polygon counts now, (I believe my low poly models are roughly 4k faces).

The texture part I could easily do, because that’s basically just changing a picture. What I’m trying to figure out is changing the Mesh, but without creating a noticeable gap in the mesh that shows it’s being pieced together like Frankenstein. Like wearing bell bottom pants (Which will be wider at the bottom than normal pants) and a jacket (Which will have a collar and long sleeves compared to a t-shirt) and changing your outfit.

I apologize if this is seeming rather unclear, being a hobbyist in this, I don’t really know all the exact terms.

And to point at your general example of being modeled as part of the body, would there be a specific “program” or function to do this with? Would it rely more-so on the engine side of things to piece these models together? Or more-so on the modeling software, I would assume the engine because the Model-Software has no impact on which choice of outfit the user choices.

rouncer 104 Jan 28, 2011 at 15:41

You could piece the model together like a puppet, with a separate model for the chest, separate model for the legs and you sorta piece the puppet together from combinations of pieces.

But, you definitely would be able to tell it was made of bits, would there possibly be something you could do about that? Like possibly some kind of joining vertex merger?

FyBurOpTek 101 Jan 28, 2011 at 15:43

Well, I’m sure with some Precision location placement I could “seam” it together and be pixel perfect. Or somehow manage to write a script system that would merge two models together, OR! I’m sure I could overlay the models (Shirt comes over pants) that way you can’t see the gap.

alphadog 101 Jan 28, 2011 at 16:38

Well, as you will see, the choice of engine matters, because jME3 may not have functionality necessary for some approaches to clothing. At this point, you are best served by jME3’s forums for real deep specifics.

For example, a quick Google led me to this thread:

Reedbeta 167 Jan 28, 2011 at 18:50

We do this sort of thing for the citizens in the city in Infamous 1 and 2 - there are a couple dozen meshes that are all skinned to the same skeleton (hence they play the same animations etc.) and there’s a list of 100 or so defined combinations in which they can be put together. As for seams, the pieces can remain separate meshes as long as they are authored to share verts along the seam, and the skin weights, normals, UVs etc. all match. There’s no need to do anything special at runtime to stitch the meshes together.

FyBurOpTek 101 Jan 28, 2011 at 20:42

Alright, Thanks for the link wasn’t quite sure if this was a Engine question or not. It seems I have to have a Base Model and skeleton, and every is modified and created from there.
Thanks for the help Reedbeta, AlphaDog, and Rouncer.