Tuesday, April 21, 2009

We're all clones

Look at this picture. It's an ordinary group of people.


Now, show me a comparable shot in a machinima film. You'll find it hard.

Why?

Because they're all different heights and different builds, and they all have unique face shapes. Which is, of course, normal for human beings, but very rare indeed in machinima. Given that it's one of the most requested features in Moviestorm - in fact possibly the most requested feature - you might wonder why we don't just do it. The answer, according to the tech guys, is that it's hard. Well, they always say that, don't they? And as a film-maker, I don't care if it's hard. I just want my characters to look like real people.

Well, it turns out it's a damn sight harder than most of us realise. When EA did the market research for Sims 3, one of the most requested features was "I want to make a character who looks like me." It's a reasonable request, you'd have thought. Surely we don't have to be limited to one standard height for men and one for women? Or to fat people who merely look like they've just had a good meal? We can give people double chins, jowls, or curved spines? After all, you can have all these characters in games.

Well, no, you can't. Not easily. Most game characters are carefully hand-built, and only have a very limited amount of customisation and things they can do. Sims characters and Moviestorm characters come with an immense range of customisable costumes and props, and an almost infinite selection of animations once you start combining them in strange ways, and that's where we reach the limits of real-time animation technology. If you don't mind intersections, or you're going for a cartoony look, you can get away with it, but if you're going for something akin to realism, it goes into the same category as flowing hair and pulling shirts.

Take these examples:
  • Make a character's face really fat. Now give him specs. Unless the specs can deform to match the face, then they'll sink into his face. When I'm at the optician, I spend time trying different sizes of frame to get one that fits. I can do this because there are spectacle manufacturers in the real world who are prepared to spend their lives making different sizes of every frame. In the machinima world, we'd have to build lots of different sizes of each frame, and then you'd have to spend time trying them on your characters. That would be time-consuming and expensive, and simply not worth the effort.
  • Get a character to sit in a chair and fold his hands across his belly. In real life, we stop bending our knees when our butt hits the seat, and we stop moving our arms when our hands hit our stomachs. Animated characters don't work like that: they apply a defined movement to a skeleton. A tall character and a short character have to bend their knees different amounts to achieve butt-seat contact, which would mean having to calculate that movement in real time individually for each character. Same with the hand movement: we'd have to calculate where the belly actually is, and then calculate exactly how much to move the shoulder, elbow and wrist to achieve perfect placement. Being out by a few degrees will result in the guy floating above the chair with his hands in his entrails, or squidged into it, Casino Royale style, with his hands in a ballet posture.
  • Now make two characters kiss. You may remember from your teenage years how long it took to learn not to bash her face with your nose, and to hold her gently without grabbing her or putting your hands where you shouldn't. And meanwhile she's learning to avoid your clumsy movements so it all appears graceful. If you know exactly what height and build both characters are, and can manoeuvre them to exactly the right starting place, you can easily define how much you need to move the limbs to get them to look right. Performing that calculation in real time is seriously tricky.
So it's not surprising that we tend to fall back on a small range of standard character sizes and canned animations. It makes it much, much easier to create something that looks good.

But surely all these problems are soluble? It's just maths, after all. A bit of complicated 3D geometry. Shouldn't be that hard.

Well, you probably could solve the geometric problems given time and a good mathematician, and then code them up. Whether you could run them in real time on a desktop PC is a whole different question. That would require some very nifty algorithms, and probably more powerful machines than we have right now.

Somewhere about now, you're probably going to tell me to stop with the excuses. It's just a programming problem. Just get some decent coders and make it work. But check this. EA tried to do this for Sims 3. And despite spending several million bucks on the problem, they couldn't do it. They concluded it was just too hard, and reverted to the old system of fixed heights and modest changes in body shape.

And, frankly, if EA can't do it satisfactorily, I'm inclined to give the Moviestorm dev team a bit of a break. For the time being, we just have to accept this as another limitation of the medium, and live with identikit characters.

9 comments:

InAnna Maiya said...

I was thinking at first that you could just mimic SL's avatar building sliders.
But really, they worked out the customizing clothing and accessories etc to fit various sized avatars issue by giving the user the ability and job of having to re-size all objects yourself for your av. And still they intersect like crap, unless you get really good at tweaking or building your own objects in-world to work with your av.
Then if you later adjust your avatar's shape at all, you are back to tweaking said objects for it all over again.

So even their character building system is extremely lacking. (Not to mention the crap graphics. ) ;)

Overman said...

Perhaps a better intermediate solution than to support all actions for all possible character heights and widths would be to provide support for SOME predefined bodies. A shorter than normal body type, a taller than normal. A fatter than normal (plus fatter+shorter and fatter+taller). Multiply by gender means 2X each I suppose. And while it's a big task to accommodate this finite set of animation / clothing possibilities, at least it's finite, and would provide some degree of variety.

The advantage of having presets to choose from, versus anything goes, would be that you could tag wardrobe / accessory items according to the body types they will fit, and filter out unfit items from the user's view when they select a certain body type.

Perhaps there could be, coupled with the above, a scaling slider for the characters for fine tuning between the preset sizes. (Probably not as powerful a scaling slider as is available for scaleable props, unless of course you wanted to allow for mega and mini sizes, which actually could be pretty cool.) Yes, it'll mean users have the capability of breaking interactive animations by misaligning sizes... so make it an advanced (and well documented) feature that basic users won't get tripped up by.

In the mean time, a large variety of skins / skin tones / hair, and more powerful face morphing tools will buy you a LOT of time for the bigger task of height and weight variety.

sisch said...

I agree whole-heartedly with Overman - fat people, children - would be nice, yes. Tall and short would be great, too, but that can be taken care of with clever camera angles, if you really want it badly.

But more skins, faces, more morphing power, hair, clothes - THAT would make my day.

Kara Rae Garland said...

This is a problem I had with Second Life. I made my avatar quite large (as I wanted it to look like me and I am a voluptuous plus-sized lady) and her hands sank into her sides, looking quite ridiculous. It was as if the designers hadn't anticipated anyone actually wanting their avatar to be larger.

Kate Fosk said...

@Kara I think there is a market in SL for an animation overrider created for large avatars, and it would be very handy to be able to purchase clothes where the attachments are already placed for a more rounded body shape. I spend way too much time adjusting things for one of the larger characters for our upcoming work (actually I enjoy doing this.shh don't tell Mike..working working)
I guess the difference for me is that it is much easier, and more enjoyable to adjust clothes, and to spend time looking for suitable poses (or even creating them) than it is at present to create the look I need in moviestorm.
Machinima creators always have limitations, and an ability to ignore certain things better than others.
Moviestorm seems to me to be more focused on movement than colour and texture, which can be a blokey bias.
This isn't a bad thing at all, part of its distinctive quality, and reflects the values of its creators - Kate

Kate Fosk said...

Update: Had a search around for animation overriders for larger female shape,
https://uncensored.xstreetsl.com/modules.php?name=Marketplace&file=item&ItemID=1325232I haven't tried this one out.
AOS replace the default sl animations and only work for non interactive animations but wouldn't it be cool if users could make and sell these for MS? Every character in a movie could have a slightly different way of moving/ standing etc -Kate

anaglyph said...

Interesting. Is there no solution akin to the landscape modelling algorithms that take various parameters and mathematically extrapolate from them? In other words, if you want a particular mountain, you have to sculpt it accurately, but if you are going for 'mountainness' you give the algorithm the restraints you require (snow at 5,000 feet, jagged faces, appropriate procedural textures and so forth) and then you generate a whole batch of stuff and choose what you like.

I guess EA has looked at that possibility and it's not feasible for some reason.

Anonymous said...
This comment has been removed by a blog administrator.
neko s. said...

Anna: yeah, all flexible clothing goes through your "body" -- it's like you're actually a ghost. Which, you know, is very cyberpunk... the whole "ghost in the machine" thing ;)

Kara and Kate: I think there is an animation overrider for the thicker avatars. In fact... I might even have one. Message me in-world: Purrple Heyse