SkankerzeroModularCharacterSystem
Skankerzero Modular Character System
I'm going to kick this contest up a notch and make A WHOLE TEAM using the specs for a single character.
I'll try my best to document what I do to help others think outside of the box in the future. 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.
- The modular asset will be much more than 2500 tris, but the final unique variations will all fall within the limitation.
- 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.
- 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.
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.