Tuesday, 8 April 2008

a timeline of a new timeline

I've been spending the past few weeks months eons (on and off) rebuilding Storm's timeline. There were several reasons behind this:
  • The old timeline was, let's face it, ugly
  • The old timeline didn't use Java's standard JComponent hierarchy, meaning it was never really going to work with the tutorial system
  • Labels for activities couldn't be manipulated if they were behind one another.
  • The old timeline was, let's say it again, ugly!
This is what we started with - the main timeline and the gesturizer -


So me'n'Matt sat down and designed a dumbbell-like system. Each circle is an event in the activity and the ribbon between shows the progress of the animation (a twist for every repeat - or something).


This was accompanied by a bunch of frantic doodling trying out new ideas. Cool ideas here are a zoomy-timeline (left hand side) that scales up as you mouse over it, and putting "tabs" on the top of labels so they could be brought to the front.


Once the basics were implemented Mitch and me disappeared into the flea-pit for a day to come up with a more complete skin. After lots of whiteboarding and inkscaping (an awesome rapid prototyping tool) we came up with a page of ideas. At this point the tube-line skin was looking good - it was very usable in particularly crowded circumstances and had a kick-ass style of it's own. We dropped the "twisty" idea: although it was great for showing you repeats, it was just too fussy and we wanted something a lot cleaner.


( tube-line is down the right hand side of this screengrab)

When you clicked on an activity a ring menu (similar to the one on set) appeared to let you manipulate each activity. We eventually dropped it because it was just too fiddly.


The next big improvement was to add labels (people couldn't tell which colour was which activity on first glance & first use) and adding texture (so peeps could differentiate between different ways of extending an activity).


Although the dumbbells stacked well (their central line moved to show those underneath) we didn't like manipulating activities through only their end points. It always felt you should be stretching them when you were just moving them around. So we lost the big endings, and polished up some details -


Mitch did a nice set of sprites to skin the timeline and master monitor, and a bag of niggling bugs later, we were pretty much good to ship.


So, what's changed? Well, among other things.....
  • The colour-coding on the items is now based on the type of activity, not the actor, which makes it much easier to see what's going on.
  • The "grab handles" are clearer, so you know where to grab the activities. There's a new type of grab handle for some activities which allows you to stretch or loop them just by dragging (this feature is on it's way but won't be in the next release).
  • Activities resize dynamically so you can fit several things on a line simultaneously and they're still quite clear.
  • When an actor has to move to do an action, the walk and the action are clearly linked.
  • The timeline background has a subtle pattern on, which helps you get an idea of the timescale.
  • The zoom button has been moved and now doesn't look like it's there to scroll the timeline up and down.
  • There's a new timeline cursor which is much clearer and more precise.
  • The play controls have been superimposed on the mini-monitor to save space (will people click on the monitor instead of the play button? we'll just have to wait and see ;) ).
  • The gesturiser UI and workflow has been completely redesigned, and the timeline in the gesturiser is now linked to the main timeline. You can only add sequences to the gesturizer that flow into each other - many less jumps in the animations.
  • There's no "end of time" - you can keep on adding events whenever you like ( about bloody time)
  • It's a whole lot less ugly!
And to remind y'all how much the timeline has evolved over the years, here are some images from the archives of really ancient concepts and ideas, most of which never saw the light of day!


Monday, 7 April 2008

Walk this way

Johnnie: Even though I work in the same room as most of the rest of the Moviestorm team, I'm constantly surprised by the new and exciting things that seem to pop up out of nowhere every so often. For example: Mark, our resident fastidious genius, has been sitting quietly in a corner for the past week or so, occasionally swearing loudly and cursing all computers. I didn't give it a moment's thought - that's par-for-the-course for Mark - but then I happened to glance at his monitor and I saw this:




If you're having trouble viewing this movie, you can download it from the Moviestorm servers instead.

That's right. Mark has quietly revolutionised the way that you move your characters around the set. You can now just pick up a character and drag them somewhere, and Moviestorm will automatically add a walkpath. What's more, you can drag them somewhere else halfway through the walk, and Moviestorm will adapt the walk to smoothly transition between the three points. You can do that as many times as you like. Moviestorm simply keeps a record of the walk-path curve (you can see it on the ground in the video) and adapts it as needed. No more messing around with keyframes or walk speeds or ugly stop-start turning. Now, it just works. Good, ain't it?

Before you all ask, no we don't have a release date for this yet. Sorry. It will make it into a forth-coming update though, and I don't expect it to be too far away. Patience, Grasshopper.

Thursday, 3 April 2008

Cel-shaded loveliness

Commenting on yesterday's screenies of the new faces, AngriBuddhist said...

"The third picture, the one saturated in red, is beyond a doubt the most gorgeous thing I've seen MovieStorm produce."

Awww, thanks, Angri. But personally, I prefer this one.
It's basically the exact same shot as the bottom one, which we posted yesterday on the official blog, but with the cel shading turned on, a deep purple ambient light, and a strong blue directional light. 100% Moviestorm, no post-processing, no shoppery, nothing. And you should see her move...


It's one of the things I really like about using Moviestorm, that you can shoot a scene, and then go back and completely change the look and the atmosphere with just a few button presses.

Wednesday, 2 April 2008

And Men Created Women

Over the last few months, we've been hearing muffled Gallic curses emanating from the cupboard under the stairs. Tempted though we were to investigate, we decided to ignore them, and see what happened. Many times we'd arrive at work to find a trail of baguette crumbs and bottles of Stella Artois strewn across the lobby.

Then one day, we found a large pile of meshes and textures, along with a handwritten note written in a language none of us understands, and a conspicuous hole where the engineers ought to have been. We tried to act unconcerned, and waited patiently to see what would happen. Three weeks later, we found them gibbering at the back of the garage, babbling strangely about renderers and fresnel highlights, and no longer able to tell the difference between a real human being and a computer-generated avatar. "We... have... created.... Woman!" they croaked.

And they had.




It's been a mammoth task. The "quick fixes" we tried last year made some improvements, but they weren't enough to take us to where we want to be.

After lots of discussion we decided to stick with the existing skeleton, largely because rebuilding that would have involved rebuilding all our animations, and that was just too terrifying to contemplate. We then created several new base head meshes, one each for Asian, African and European ethnic types, and then created old and young faces for each one. We then had to check the neck seams to make sure that all the new heads would fit onto the existing costumes and bodies correctly, and that the skin colour on the body would match the skin on the faces. And then we created a bunch of different makeups for each face.

The next job was to redo the hair so that all the hairpieces fitted onto the new heads. We decided to rethink the entire head construction, so that we would be able to make all the hats go with all the hairstyles, which would give us much more variety and flexibility. This meant completely rebuilding all the hairpieces, and made the job considerably larger than we originally intended. But it was worth it.

At this point, it was over to the programmers to build the new heads in. However, although they looked better in 3Ds Max, they still weren't looking right once we got them on set. They looked flat and lifeless. The solution to this involved building a new renderer so that we could get the right level of shininess onto the eyes and onto the tops of the heads and eyebrow ridges. The team came up with several new shaders, which really made a difference, but at a significant cost in framerate. At this point, the models went back to the artists, so they could add in more shine and texture and make use of the new shading, while the engineers worked out how to speed everything up so it ran as fast as before but looked better. And, of course, it had to look good with and without the cel shader.

And that's roughly what you see now. But there's more yet to come. We're working on the hair to make it smoother and more translucent. This has involved going back to the hair again and working out whether to use scissor blend or alpha blend for each hair type, and writing yet more bits of rendering code to handle that. The hair is now pretty well working - expect some more screenshots later this week.

We've got some basic morphing tools in development, and now we can give our characters bigger or smaller noses. The challenge is to make that compatible with the animations and props such as glasses: if we know the size of a character's nose, it's easy to make her touch the end of her nose, or kiss without digging her nose into her man's cheek. Once the nose size changes, all the pre-canned animations could go wrong, and we could have horrible intersections or misses. Apply the same logic to the size of the cheek, the jaw, the eyebrows, or the shape of the skull, and you have a whole bunch of pain.


Developing the faces really shows the way that this type of product development is a symbiosis between design, art, and programming. Obviously, great art doesn't get you far unless the code is there to make it look good, and no matter how good your engine is, the quality of your art is critical. And most importantly, at the end of the day, our faces have to look good in movies, under different lighting conditions, while talking or looking around, and in close-up. They're not game characters, they're animated 3D movie actors, and this has meant finding a new way to make them versatile, appealing and interesting.

So yeah, it's taken a while, but it's been worth the wait.

(More screenshots in the Moviestorm forums - restricted to early beta testers only.)

Tuesday, 1 April 2008

Moviestorm Idol - picking the winners

Judging competitions for music videos is always bound to provoke controversy. You have to put your musical prejudices aside and look at the film-making skill that went into creating the video. It's not about whether the director picked a piece of music you like. However, none of our judges threw glasses of water over each other or stormed out in an artistic huff, so I guess it didn't go too badly. And I'm sure Johnnie will be back from Casualty shortly.

These are the two eventual winners: Spong3y's in-your-face nu-metal Down with the Sickness, and Zuckerman's utterly gorgeous jazz piece Horn Section. They couldn't be more different, but they really show the versatility of what you can do with the Moviestorm music packs.



Down with the Sickness - Feat Storm


Horn section