Question

I am just starting to create the models for my newest game, which will be my first game in full 3D.

I have read in a couple unreliable places that it is far better to create all 3D objects as just one mesh and apply different materials to the mesh with weight painting, etc, rather than creating multiple meshes and parenting them to the same armature for animations.

According to these sources, this is because of UV mapping.

Is this true?

At the stage that I am at in creating my models, it would be far easier for me to make each individual part (arms, legs, knees) out of individual meshes and link them all to the same armature. If I do this (not merging vertices together, simply leaving each piece separate and overlapping, while linking them to the same armature), 2 questions:

  1. Will the animations work in a Game Engine, moving all pieces and keeping them all attached where they should be?

  2. If so, will it slow my game's performance to a significant (noticeable) degree because the characters are made of 7 or 8 separate meshes?

NOTE: I am, at this point, at least, planning on using the OpenGL game engine to run my game.

Was it helpful?

Solution

What you can do is create your models from separate meshes, UV unwrap each one, texture it, apply it's material and then when you're done and only then, merge the meshes into one and link that one mesh to your armature. I think for blender it's Ctrl-J for joining.

I know this doesn't necessarily answer your question but it's just what I would do.

OTHER TIPS

What you should do depends on what you need your model to do with the model. If your character needs to have its equipment or appearance be customizable in some way, or if you need to do special effects involving the change in appearance of the in-game character, keeping the body parts separate may be the more ideal solution. Team Fortress 2 does this with its customization system (or else you wouldn't be able to do things such as replacing the Heavy's gloves with something else or give them bird heads), while the Super Smash Brothers games takes heavy advantage of them in order to make the in-character animations seem good.

And then there are cases where a character's inherent design would've made animations regarding them be very difficult to manage should their joints be all within a single model. Examples of such characters include the Goombas from Mario and Kirby from the Kirby games.

And then there's the artistic choice of it. For example, there's no reason to make Pikachu's ears separate from the rest of the model, but the one used within Pokémon Gen VI onwards (including Pokémon Go) does so anyway. If you look real closely, you can even see the seam where the ear model ends and the head part begins.

To answer your questions as to the technical details, note that as you're using a low level API such as OpenGL for your game, whether or not you'd be able to do this depends entirely on your skills. As to the performance costs, it only depends on the amount of vertices that you have as well as the way you do the shaders. All that OpenGL ever sees is a group of vertices which has "faces" defined to them. It passes said information to the whatever shaders you had coded (to which it then processes the data you sent to it).

Granted, I'm no expert on the API, but even those starting out knowing the modern forms of OpenGL know this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top