Custom Character Designing Tool: Need city full of people on the cheap

Started by
6 comments, last by TheForgottenMindset 12 years, 2 months ago
I'm working on game project involving a gta-style living breathing city, and i need a lot of characters to fill up this big city that was made. So I thought of creating a 'customize your character' type of tool that could be used to make NPCs as well as PCs. The modeler is going to work on creating a set of different hairstyles, clothes, and accessories, but I'm not sure what to ask him to do on the actual rig itself.

The animation becomes the real trick as I want all the npcs to have be able to have standard animations (walk, run, open door, close door, idle, etc..). So I would like to know the best way to accomplish this. I thought of having a few architypical characters such as: adult male, adult female, fat male, fat female, boy and girl, and we could skew and scale the bones to accomplish customization. Does this sound reasonable? I'm using Unity 3D for my engine. So if anyone could give me some of their experience on this matter I would appreciate it.

I've read some posts on this subject, but I'm worried about how I'm going to stitch the different hair styles and clothes onto the model. Do I simply parent a hairdo on to the 'head' bone at a specified center point? Are there performance downsides to this method? This is important because there must be a plentitde of characters on screen as NPC character interaction is the main point of the game. Online multiplayer may come later, but is not supposed to come out in this version of the game so I'm not focusing on it.

Any tips or potential pitfals? I'd like to know the best way of creating a city full of NPCs that have standard animations and easy, simple customization.

I think i've heard that you need to completely stitch a new mesh on the fly to get the most performance, can someone explain this versus just parenting (childing really) accessories to the bones? And how and the heck does one stitch a mesh on the fly if it does matter?
Advertisement
I think this maybe a engine feature, if available. You should ask the engine designers the best way to do this with their engine.

I could explain how to do it with my engine, but sadly that wont help you to much, you see what I mean ? But here goes anyway :-) I'd start with a single skeleton rig that cannot change, weight all meshes to this in their separate parts. Then when assigning the mesh data each bone must be updated so it knows to modify the new mesh, somehow do this in a fast way, I'd create custom files with all data ready to go.

Not sure if that helps.

Cheers

Lee

Code is Life
C/C++, ObjC Programmer, 3D Artist, Media Production

Website : www.leestripp.com
Skype : lee.stripp@bigpond.com
Gmail : leestripp@gmail.com

Lee, thank you for your quick response.

I think I understand your method, however I don't want the artist to create too many character meshes (only assets like hairdoos, faces, boots, pants, etc..) as that would be very time consuming and expensive. I'm thinking more on the line of a Sims-style character designer, and I'm actually thinking of having people's appearance randomly generated laugh.png (I need like 1,000 unique characters)

Also, how accurate will the animations be if you animated the single rig to potentially different shaped people? Such as a fat butcher and a skinny man both using the same open door and walk animation. This leads me to another questions:

How feasible is it to interpolate animations on the fly such as different height people both reaching for the same height door handle?
I believe this isn't too hard considering unity has some similar scripts available for proper foot placement on the terrain.

I'm primarily concerned with using generic animations effectively, but not AAA quality by any means (more like A-). Will your method work for generic animations? If so I suppose I may have to have the algorithm automatically weigh the model, I've seen this done by a guy on this forum who used Voxels to calculate volume of the mesh. I'm not trying to get complicated though, I'm looking for the simplest method possible (without paying a guy to make and animate 1000+ models)
They have a prensentation about the character customization in brink over at the forums at www.splashdamage.com, however you must be registered to download.

They have a prensentation about the character customization in brink over at the forums at www.splashdamage.com, however you must be registered to download.


Couldn't find it, do you have a link?

Anyone else with some generic animation and character customization tips?
http://www.splashdamage.com/publications

Lee, thank you for your quick response.

No probs.


I think I understand your method, however I don't want the artist to create too many character meshes (only assets like hairdoos, faces, boots, pants, etc..) as that would be very time consuming and expensive. I'm thinking more on the line of a Sims-style character designer, and I'm actually thinking of having people's appearance randomly generated laugh.png (I need like 1,000 unique characters)


ah okay, this is a little tricky.. But I think a free app trie to do this already.. Look up "Make Human"



Also, how accurate will the animations be if you animated the single rig to potentially different shaped people? Such as a fat butcher and a skinny man both using the same open door and walk animation. This leads me to another questions:


Well really poor if you dont adjust the rig, but that is posible, store rest positions for each charactoer.


How feasible is it to interpolate animations on the fly such as different height people both reaching for the same height door handle?
I believe this isn't too hard considering unity has some similar scripts available for proper foot placement on the terrain.


Yes that would be the easy one! Using IK you can move any limb to a target position etc..



I'm primarily concerned with using generic animations effectively, but not AAA quality by any means (more like A-). Will your method work for generic animations? If so I suppose I may have to have the algorithm automatically weigh the model, I've seen this done by a guy on this forum who used Voxels to calculate volume of the mesh. I'm not trying to get complicated though, I'm looking for the simplest method possible (without paying a guy to make and animate 1000+ models)


Sadly I've never had a good experience with auto weight systems, unless they are very complex.. the one in XSI springs to mind.

Having said all that if you keep it simple you can use one rig... Rest positions can be exported from most 3D apps to move the rig into its correct placement. And weights will still work right. I'd go look at Make Human to see if it helps, code is down-loadable. But sadly someone will have to weight paint them, unless you find a good auto weight system.


Please keep us all updated, very interesting.

Cheers

Lee

Code is Life
C/C++, ObjC Programmer, 3D Artist, Media Production

Website : www.leestripp.com
Skype : lee.stripp@bigpond.com
Gmail : leestripp@gmail.com

Yes thanks for the detailed response, this is a little out of my league as I'm not really keen on animation. Makehuman is interesting, it may be possible to use it, but I was hopeing to make something relatively simple from scratch. I know there's a simple way to do it, I'll have to experiment.

I will keep you posted as I marinate on this. If I forget, just pm me sometime if I get time to do it within the next few weeks. You deserve an answer :)

This topic is closed to new replies.

Advertisement