For this 'character' I will be creating a modular asset.
By 'modular asset' I mean an asset that can act as a lego piece if you will.
During my 9 years at Terminal Reality, I spearheaded our crowd / parting system on the art side. We created characters that used a single animation rig and were made out of parts that were swapped according to an XML file. In that file we defined specific variants and the parts they worked with. We were also able to completely randomize the character using parts and creating an exception list of parts that didn't work together.
Below is a small example of some that I've done in my past.
Back in 2004, I tackled my first modular parts character for BloodRayne 2.
Every human bad guy in BR2 ended up using this technique. All of them used no more than a 512x512.
Another early example are the females from Aeon Flux.
This is probably a bad example because looking at the texture now it's obvious I didn't use the full texture. I can't quite remember what I did with these characters, but I believe I ended up cramming the male and female textures together into a single 512x512.
Following are two examples from Ghostbusters:
The first example is a single character that is meant to be viewed at about 75 feet or more away from the camera.
This is considered a single character as it has a single rig that animates all the characters. The rig is less than 32 bones and would animate all the outstretched arms and random heads and bodies to create the illusion of a crowd stirring about. The polycount falls within a single character's budget (12,254 tris). and it uses a single 256x128 texture.
The second example is the crowd system I helped design and build for the game.
This image shows 2 different characters. Both characters use the same rig and animation set. They also share a single 1024x512. This level of detail was to be 25 feet or more away from the camera. We had higher res crowds for the up close shots.
What you see here is the final assets that made it into the game. The original assets had twice as many parts but had to be cut down in order to fit the memory footprint for the levels.
Each possible variant was around 1500 - 1700 tris.
The above image is the 'low poly' character assets that I created off the 'higher poly' assets delivered to us from the outsourcers. I had them deliver the assets in such a way that I could easily piece together unique character NPCs whenever they were needed. This is all thanks to a modular setup across all character models.
For example; If we wanted Bill Murray to wear jeans and a shirt, I could easily drop his head into a scene and merge in a shirt and some jeans from the crowd system and in just minutes we had a new Bill Murray variant.
I could go on and on about creating modular crowd assets, but perhaps that would be best for another time.
For now, I'm going to apply the same knowledge and theories to create a full little league team for this challenge. Knowing Your Platform aka: Being A Smart And Efficient Artist
First step is to know your platform. Often time there is a lot of wasted effort put into characters simply because artists don't understand the platform they're building for. In this challenge we're aiming at the mobile market.
Below are two images that show the screen resolutions for the phone and tablet platforms.
phone:
tablet:
A lot of wasted time and effort can go into details that will never be seen at these resolutions. Most detail will 'swim' or 'shimmer' because more than one texture pixel will take up a single screen pixel. The engine has to decide which texture pixel to draw for that screen pixel every frame. Thus, 'swimming' or 'shimmering'. This is why mipmaps are so important.
Knowing this, I will also choose an appropriate art and texture style to accommodate the final platform. A simpler art style will also be advantageous when I have to assign less texture space to certain parts. Setting Up The Rules
So now I set up the rules that I will follow for this character asset.
1: 2,500 tris max per variation including equipment and fx
2: 512x512 textures per texture pass
3: 9 total unique characters to form the team
I'll further break this down.
1:
The modular asset will be much more than 2500 tris, but the final unique variations will all fall within the limitation.
2:
I will be using a 512x512 diffuse in the rgb with the specular in the alpha for all the parts. I will also be using a 512x512 rgba image for masks.
I will not be using bump maps because the final deliverable will be screenshots. Bump maps are only good for high end renders and motion. So they will be a waste of my time. This all goes into being a smart and efficient artist.
3:
I will take the modular models, mix and match parts, and squash and stretch proportions to create 9 unique characters with minimal effort. It can be assumed that each character will be on it's own rig with it's own animation set, so this frees me of the single rig limitation when it comes to proportions.
I can also go in and edit the mesh on each unique character as I see fit as long as I don't go above 2500 tris. Identifying Parts
With most crowd characters, a lot of time is spent studying reference to see what makes up the crowd you're building.
On Ghostbusters, I watched and took lots of screenshots from the 1991 - 1992 seasons of Seinfeld. That was the year and location of the crowd I was building.
I had to identify the key elements that people wore during the fall season.
For this, I will be looking at a baseball team and breaking down what I believe is needed to achieve the amount of variation needed.
head
---
baseball cap
baseball batting helmet
catchers mask
ears x2
face x3
hair x4
tongue
torso
---
uniform upper
catchers padding
jacket over uniform
legs
---
uniform bottom x2
catchers padding
legs x3
shoes
feet x3
misc
---
baseball
baseball bat
tentacle that can be used as an arm or leg
All the above is subject to change, but I think this is what it will take to create a good, varied team.
The list may seem like a lot of work, but trust me, it's not. A lot of it comes from creating a good base model with uvs. From there it's only a matter pushing and pulling verts to create different shapes, moving uvs, and adjusting textures.
If time allows for it, I will also create the away team using the same textures and masks to create a whole different team.
So I leave you guys for now while I go off to create my base meshes.
A team is a cool idea. What you could do if you want to bump things up even one more notch is make an entire league utilizing a color mask and you'd have any number of color variants you want. You could even go so far as to make an rgb mask and utilize each channel for different color customization (ie: r- primary team color, g- secondary team color, b- skin color).
Looking forward to seeing where you go with it.
edit-oops, noticed you mentioned possible team color.
When people think of 'base meshes' they usually think of either a Z-Brush base mesh or your standard 'naked human' base mesh. For this example we're going with the latter.
In a crowd system, your base mesh should be the most average character contained within the system. This means you can push and pull the verts to extremes without having too much uv distortion.
For example:
If you're going to create 3 characters off one base mesh; A 6ft tall human, a 7 ft tall human, and a 5 ft tall human; you're base mesh should be the 6ft tall human.
Do whatever you normally do to get to this point:
This is the game mesh I made for this challenge.
Now, let's reference back to the parts list I created in the last post:
head
---
baseball cap
baseball batting helmet
catchers mask
ears x2
face x3
hair x4
tongue
torso
---
uniform upper
catchers padding
jacket over uniform
legs
---
uniform bottom x2
catchers padding
legs x3
shoes
feet x3
misc
---
baseball
baseball bat
tentacle that can be used as an arm or leg
Let's identify those areas on your base mesh and make sure we built the mesh correctly to accept part variations.
I have decided to part out the hands and feet as well since they will recieve parts such as gloves, mitts, shoes, and bare feet.
Try to place your parts at clothing seams. As I have learned over the years, this is the easiest way to do part swapping.
Be sure that you have complete edge loops where you're parts meet. This will save you many headaches in the future.
Your character should have clean cuts such as below:
That's pretty much all there is to setting up your base mesh for parts. UV Your Base Mesh Now
Take this base mesh and uv it quickly. Be sure to make your uv seams along the part seams you determined earlier. This will help a lot later.
I use Headus UVLayout because I'm a winner, and so should you.
There is no need to pack the uv islands, just go ahead and unwrap it. This can save you time later when you begin to copy geometry off it to create new arms and legs.
Using Headus UVLayout, that took be a little less than 10 minutes to unwrap and get the consistent result you see in that screenshot. (The eyes are temp, so I didn't bother to uv them.)
The next step is to take this base mesh and alter it to make all the pieces in your list.
You should always have a copy of your clean, unaltered base mesh in your scene. This is very useful when you need to build clothing over it or when you need to go back and Frankenstein a part off it.
So, first of all I love the amount of work your putting into this, with the super thorough workflow how-to and what-nots, but I have to ask; you're making a Mutant crowd right? it's just that the base(s) here would suggest some pretty regulat folks.
So, first of all I love the amount of work your putting into this, with the super thorough workflow how-to and what-nots, but I have to ask; you're making a Mutant crowd right? it's just that the base(s) here would suggest some pretty regulat folks.
The only thing I've made so far for this is that colorful guy towards the bottom. Everything else is past work used for example images.
read through it all and you'll see what I'm talking about.
Oh I did read it all, but I guess I didn't look very closely at his face so he just looked like a regular little dude. Now that I'm paying attention though he doesw have a rather odd face shape, and I did forget just how much you can pull-off in a texture
Oh I did read it all, but I guess I didn't look very closely at his face so he just looked like a regular little dude. Now that I'm paying attention though he doesw have a rather odd face shape, and I did forget just how much you can pull-off in a texture
Yeah. A lot of people equate mutant with animal. That's not really the case. It was only really until TMNT that anthro characters became associated with mutants.
ugh... I sure don't miss putting all those parts and pieces on a single 512 like we did on BR2. Here you are doing it for FUN in your spare time? Your nuts man. Looking forward to some updates!
Next Step Making Sure Your Parts Work Across Variations
The next step after modeling out your base mesh is to begin creating the variation parts.
There are four big rules for creating parts.
1:
Make sure your verts line up across your parts at the seams.
For example, all your sleeves have to work with all your torsos.
2:
Make sure your topology around your deforming areas lines up to ensure that there will be no piercing of geometry.
This should really be general knowledge when it comes to game modeling, but it's easy to overlook when making characters as complex as this. Be sure to test your parts across all your variation parts.
3:
Keep your pivots at 0,0,0 across all parts.
This will ensure that all the parts snap together perfectly when snapped to 0,0,0, such as below:
4:
Keep your naming convention easy to follow.
Be descriptive with the name. Identify left and right with _L and _R. If a model has similar multiple objects like toes or fingers use numbers.
For sorting purposes, I try and define the region first. This will ensure that all the parts will sort together alphabetically.
Regions can include the following:
Head_
Torso_
Leg_
Arm_
Hand_
Foot_
Sleeve_
Pants_
etc.
The key is to be descriptive so selecting parts is easy for you. Now Let's Look At How I Applied The Above To My Model
All parts have a pivot at 0,0,0.
They all snap perfectly together at 0,0,0.
I followed a naming convention that makes sense for this file:
All verts snap perfectly across parts:
The above image shows some of the possible combinations available.
Parts like the caps don't fit perfectly just yet because I'm waiting until I begin creating the unique variations.
There are two sets of torsos. A uniform one and one with a baseball jacket over the uniform. For the jacketed torso, I had to create a modified version of the pants and shorts to work with the overhanging jacket. The modified geometry will share the same uv texture space as the unmodified pants and shorts. The shorts are designed to be cut off at a natural seam that will be hidden be an armor plate and strap.
There is still some geometry missing, such as spikes, eyes, baseball, and possibly another mutant head.
This is what I have so far.
The next part will be over laying out the uvs and the beginnings of texturing.
Also keep in mind, these are the base proportions. Once the models are uvmapped and textured, the process of reporportioning the 9 unique characters will begin. Some will be made fatter, others taller, some longer legs, others longer arms, etc.
I haven't been working on this as much as I should, or I would be further along. Been trying to balance this out with my social life. Either way, I should still hit the deadline.
I'll know for sure if I have to remove parts or if I can add parts during the uv phase.
This is awesome skank. My company does stuff for playstation home, so we deal with the different body parts used for clothing items for avatars. I've tried to do my own crowd system as well, which was interesting to say the least. Ill definitely be following this thread, in hopes to learn how to do it better. Did it pretty much like this, building different variations of each body part, then I just combined them in maya and exported. Is that what you do in the end of it all? combine them and export? or do you export each piece and let the programmers randomize it some how?
Also, what kind of rigging issues do you run into? In one of your first examples, there were some variations of suspenders. Is that a pain in the ass to paint the weights for to have no clipping?
Also, Great first mutant! Whats the tri count on it?
oh snap. dammit this is fire. social life. this month, I just threw it in the toilet. who needs friends when you have your own baseball team? Skank straight Killin it. and we get a lesson. you rock!
Is that what you do in the end of it all? combine them and export? or do you export each piece and let the programmers randomize it some how?
For this challenge, I'll isolate variations and delete the excess.
When I was at TRI, we would export the full model with all the parts out. We would randomize it in real time with an XML sheet that contained the rules for randomization. It was all naming convention based.
Also, what kind of rigging issues do you run into? In one of your first examples, there were some variations of suspenders. Is that a pain in the ass to paint the weights for to have no clipping?
Usually there is very little issues when it comes to rigging. As long as I follow my rules then they should work just as well as any other characters.
Suspenders aren't that big of an issue. The geometry has to mirror the geometry that's underneath them. It will lead to some crappy looking topology, but they will deform exactly like the torso.
Also, Great first mutant! Whats the tri count on it?
Thanks!
Each variation is roughly 2500. I'll make sure to optimize on the final models if I have to.
Replies
I knew you'd jump on this, can't wait to see what you come up with.
I'll also try and write down my brainstorming process.
Modular Assets
For this 'character' I will be creating a modular asset.
By 'modular asset' I mean an asset that can act as a lego piece if you will.
During my 9 years at Terminal Reality, I spearheaded our crowd / parting system on the art side. We created characters that used a single animation rig and were made out of parts that were swapped according to an XML file. In that file we defined specific variants and the parts they worked with. We were also able to completely randomize the character using parts and creating an exception list of parts that didn't work together.
Below is a small example of some that I've done in my past.
Back in 2004, I tackled my first modular parts character for BloodRayne 2.
Every human bad guy in BR2 ended up using this technique. All of them used no more than a 512x512.
Another early example are the females from Aeon Flux.
This is probably a bad example because looking at the texture now it's obvious I didn't use the full texture. I can't quite remember what I did with these characters, but I believe I ended up cramming the male and female textures together into a single 512x512.
Following are two examples from Ghostbusters:
The first example is a single character that is meant to be viewed at about 75 feet or more away from the camera.
This is considered a single character as it has a single rig that animates all the characters. The rig is less than 32 bones and would animate all the outstretched arms and random heads and bodies to create the illusion of a crowd stirring about. The polycount falls within a single character's budget (12,254 tris). and it uses a single 256x128 texture.
The second example is the crowd system I helped design and build for the game.
This image shows 2 different characters. Both characters use the same rig and animation set. They also share a single 1024x512. This level of detail was to be 25 feet or more away from the camera. We had higher res crowds for the up close shots.
What you see here is the final assets that made it into the game. The original assets had twice as many parts but had to be cut down in order to fit the memory footprint for the levels.
Each possible variant was around 1500 - 1700 tris.
The above image is the 'low poly' character assets that I created off the 'higher poly' assets delivered to us from the outsourcers. I had them deliver the assets in such a way that I could easily piece together unique character NPCs whenever they were needed. This is all thanks to a modular setup across all character models.
For example; If we wanted Bill Murray to wear jeans and a shirt, I could easily drop his head into a scene and merge in a shirt and some jeans from the crowd system and in just minutes we had a new Bill Murray variant.
I could go on and on about creating modular crowd assets, but perhaps that would be best for another time.
For now, I'm going to apply the same knowledge and theories to create a full little league team for this challenge.
Knowing Your Platform aka: Being A Smart And Efficient Artist
First step is to know your platform. Often time there is a lot of wasted effort put into characters simply because artists don't understand the platform they're building for. In this challenge we're aiming at the mobile market.
Below are two images that show the screen resolutions for the phone and tablet platforms.
phone:
tablet:
A lot of wasted time and effort can go into details that will never be seen at these resolutions. Most detail will 'swim' or 'shimmer' because more than one texture pixel will take up a single screen pixel. The engine has to decide which texture pixel to draw for that screen pixel every frame. Thus, 'swimming' or 'shimmering'. This is why mipmaps are so important.
Knowing this, I will also choose an appropriate art and texture style to accommodate the final platform. A simpler art style will also be advantageous when I have to assign less texture space to certain parts.
Setting Up The Rules
So now I set up the rules that I will follow for this character asset.
1: 2,500 tris max per variation including equipment and fx
2: 512x512 textures per texture pass
3: 9 total unique characters to form the team
I'll further break this down.
1:
The modular asset will be much more than 2500 tris, but the final unique variations will all fall within the limitation.
2:
I will be using a 512x512 diffuse in the rgb with the specular in the alpha for all the parts. I will also be using a 512x512 rgba image for masks.
I will not be using bump maps because the final deliverable will be screenshots. Bump maps are only good for high end renders and motion. So they will be a waste of my time. This all goes into being a smart and efficient artist.
3:
I will take the modular models, mix and match parts, and squash and stretch proportions to create 9 unique characters with minimal effort. It can be assumed that each character will be on it's own rig with it's own animation set, so this frees me of the single rig limitation when it comes to proportions.
I can also go in and edit the mesh on each unique character as I see fit as long as I don't go above 2500 tris.
Identifying Parts
With most crowd characters, a lot of time is spent studying reference to see what makes up the crowd you're building.
On Ghostbusters, I watched and took lots of screenshots from the 1991 - 1992 seasons of Seinfeld. That was the year and location of the crowd I was building.
I had to identify the key elements that people wore during the fall season.
For this, I will be looking at a baseball team and breaking down what I believe is needed to achieve the amount of variation needed.
head
---
baseball cap
baseball batting helmet
catchers mask
ears x2
face x3
hair x4
tongue
torso
---
uniform upper
catchers padding
jacket over uniform
legs
---
uniform bottom x2
catchers padding
legs x3
shoes
feet x3
arms
---
uniform sleeve
jacket sleeve
baseball mitt
arms x3
hands x3
misc
---
baseball
baseball bat
tentacle that can be used as an arm or leg
All the above is subject to change, but I think this is what it will take to create a good, varied team.
The list may seem like a lot of work, but trust me, it's not. A lot of it comes from creating a good base model with uvs. From there it's only a matter pushing and pulling verts to create different shapes, moving uvs, and adjusting textures.
If time allows for it, I will also create the away team using the same textures and masks to create a whole different team.
So I leave you guys for now while I go off to create my base meshes.
Not only are you competing your taking extra time to educate.
If this thread doesnt get archived somewhere, someone is going to get punched in the crotch.
Thanks for sharing!
Looking forward to seeing where you go with it.
edit-oops, noticed you mentioned possible team color.
Also, holy fuck.
"Thank you for this, skankerzero!" "Thanks!" "Thanks for sharing!" "Excellent, thanks!" "Wow, skankerzero, thanks a lot!"
Creating A Proper Base Mesh
When people think of 'base meshes' they usually think of either a Z-Brush base mesh or your standard 'naked human' base mesh. For this example we're going with the latter.
In a crowd system, your base mesh should be the most average character contained within the system. This means you can push and pull the verts to extremes without having too much uv distortion.
For example:
If you're going to create 3 characters off one base mesh; A 6ft tall human, a 7 ft tall human, and a 5 ft tall human; you're base mesh should be the 6ft tall human.
Do whatever you normally do to get to this point:
This is the game mesh I made for this challenge.
Now, let's reference back to the parts list I created in the last post: Let's identify those areas on your base mesh and make sure we built the mesh correctly to accept part variations.
I have decided to part out the hands and feet as well since they will recieve parts such as gloves, mitts, shoes, and bare feet.
Try to place your parts at clothing seams. As I have learned over the years, this is the easiest way to do part swapping.
Be sure that you have complete edge loops where you're parts meet. This will save you many headaches in the future.
Your character should have clean cuts such as below:
That's pretty much all there is to setting up your base mesh for parts.
UV Your Base Mesh Now
Take this base mesh and uv it quickly. Be sure to make your uv seams along the part seams you determined earlier. This will help a lot later.
I use Headus UVLayout because I'm a winner, and so should you.
There is no need to pack the uv islands, just go ahead and unwrap it. This can save you time later when you begin to copy geometry off it to create new arms and legs.
Using Headus UVLayout, that took be a little less than 10 minutes to unwrap and get the consistent result you see in that screenshot. (The eyes are temp, so I didn't bother to uv them.)
The next step is to take this base mesh and alter it to make all the pieces in your list.
You should always have a copy of your clean, unaltered base mesh in your scene. This is very useful when you need to build clothing over it or when you need to go back and Frankenstein a part off it.
I'll be back next time with the next steps.
The only thing I've made so far for this is that colorful guy towards the bottom. Everything else is past work used for example images.
read through it all and you'll see what I'm talking about.
Yeah. A lot of people equate mutant with animal. That's not really the case. It was only really until TMNT that anthro characters became associated with mutants.
I think the perfect 'mutant' design for this competition is right here:
http://www.polycount.com/forum/showthread.php?t=91888
He's basically a mutant that's engineered for football.
As for mine, the team will consist of mutants, skeletons, and possibly robots too.
Think of these as the children of the toxic avenger or the original characters from the original games.
yeah, those were the days. Well I've done soooooo many more since then it's almost second nature for me now.
I'm currently modeling out some skeleton arms and hands. Hopefully I'll have some updates this weekend.
also very cool to see such optimal use of geometry and texturespace
can't wait to see what the outcome will be
I've modeled out:
mutant head
mutant arms
mutant hands
skeleton head
skeleton arms
skeleton hands
baseball cap
baseball batting helmet
tentacle legs
uniform torso
uniform pants
uniform shorts
up next are:
tentacle arms
baseball shoes
skeleton legs
skeleton feet
mutant head #2
Baseball bat
Baseball
Catchers pads
screenshots this weekend.
Making Sure Your Parts Work Across Variations
The next step after modeling out your base mesh is to begin creating the variation parts.
There are four big rules for creating parts.
1:
Make sure your verts line up across your parts at the seams.
For example, all your sleeves have to work with all your torsos.
2:
Make sure your topology around your deforming areas lines up to ensure that there will be no piercing of geometry.
This should really be general knowledge when it comes to game modeling, but it's easy to overlook when making characters as complex as this. Be sure to test your parts across all your variation parts.
3:
Keep your pivots at 0,0,0 across all parts.
This will ensure that all the parts snap together perfectly when snapped to 0,0,0, such as below:
4:
Keep your naming convention easy to follow.
Be descriptive with the name. Identify left and right with _L and _R. If a model has similar multiple objects like toes or fingers use numbers.
For sorting purposes, I try and define the region first. This will ensure that all the parts will sort together alphabetically.
Regions can include the following:
Head_
Torso_
Leg_
Arm_
Hand_
Foot_
Sleeve_
Pants_
etc.
The key is to be descriptive so selecting parts is easy for you.
Now Let's Look At How I Applied The Above To My Model
All parts have a pivot at 0,0,0.
They all snap perfectly together at 0,0,0.
I followed a naming convention that makes sense for this file:
All verts snap perfectly across parts:
The above image shows some of the possible combinations available.
Parts like the caps don't fit perfectly just yet because I'm waiting until I begin creating the unique variations.
There are two sets of torsos. A uniform one and one with a baseball jacket over the uniform. For the jacketed torso, I had to create a modified version of the pants and shorts to work with the overhanging jacket. The modified geometry will share the same uv texture space as the unmodified pants and shorts. The shorts are designed to be cut off at a natural seam that will be hidden be an armor plate and strap.
There is still some geometry missing, such as spikes, eyes, baseball, and possibly another mutant head.
This is what I have so far.
The next part will be over laying out the uvs and the beginnings of texturing.
Also keep in mind, these are the base proportions. Once the models are uvmapped and textured, the process of reporportioning the 9 unique characters will begin. Some will be made fatter, others taller, some longer legs, others longer arms, etc.
I haven't been working on this as much as I should, or I would be further along. Been trying to balance this out with my social life. Either way, I should still hit the deadline.
I'll know for sure if I have to remove parts or if I can add parts during the uv phase.
Also, what kind of rigging issues do you run into? In one of your first examples, there were some variations of suspenders. Is that a pain in the ass to paint the weights for to have no clipping?
Also, Great first mutant! Whats the tri count on it?
I'm going to be uving these guys next and adding what geometry I'm missing all this week. Hopefully I'll be starting texturing this coming weekend.
For this challenge, I'll isolate variations and delete the excess.
When I was at TRI, we would export the full model with all the parts out. We would randomize it in real time with an XML sheet that contained the rules for randomization. It was all naming convention based.
Usually there is very little issues when it comes to rigging. As long as I follow my rules then they should work just as well as any other characters.
Suspenders aren't that big of an issue. The geometry has to mirror the geometry that's underneath them. It will lead to some crappy looking topology, but they will deform exactly like the torso.
Thanks!
Each variation is roughly 2500. I'll make sure to optimize on the final models if I have to.