Oct 13, 2009

Thoughts on Silverlight Part II: Design and Animation

A quick introduction: My name is Tyson, I am an Art Director. I had the pleasure of working with my esteemed colleague, Jamie Kosoy, on the Victoria's Secret Fashion Show project recently. My design team (Chris Petrillo and Caroline Caine) and I also dove headfirst into Silverlight and I'd like to share some of our observations and insights.

Expression Blend

Our initial thoughts on the Blend interface were fairly positive. It reminded us somewhat of After Effects and it wasn't a difficult program to pick up if you already are familiar with Flash or After Effects. We did begin to run into some technical issues with it, however. Jamie discovered that it is a pretty "leaky" program pertaining to memory, and this seemed to be causing issues with certain files crashing on machines other than the one they were created on. One of our biggest issues with building in Blend was the lack of guides and guide layers. Usually our process involves bringing in design jpegs as guides for object placement. We did this, as usual, but were not able to set these layers as guides so they would hide during testing and not contribute to file size (this ended up being an entirely different issue). There were also many times when a program-native ruler guide would have been helpful in aligning elements, but these were also absent.
File embedding was both a blessing and curse. On one hand, we could pass files back and forth and never worry about pieces of the project missing. On the other hand, if we did not actively go through and delete all old instances of pngs, jpgs, etc., they would come along for the ride during export, adding extra heft to the file size of our XAP files. Our first instance of the background XAP was over 8 megabytes! Additionally, copying and pasting was problematic because we could copy entire elements, but if we didn't also copy imagery and any other supplemental files, we would end up with blank elements and broken code.

Timelines and Animation

In case it's not obvious, at Big Spaceship, we like timelines. We like to tweak keyframes and tweens until our fingers bleed. And one can still do this in Blend, but it uses a different model than Flash and other frame-based animation tools. It is based on actual time; a one second animation in a Blend "storyboard" will last one second in the project. The timeline defaults are not very conducive to detailed animation with the 100% view showing 14 to 20 seconds based on your layout. In the Victoria's secret project, none of our animations lasts longer than 2 seconds. Additionally, the default snapping is 10 "frames" per second. Changing these defaults every time became tedious.

timeline2
One of the things that was pretty nice about Blend was it's handling of animation and easing. The Blend environment (most of the time) previews animation perfectly and smoothly because it IS Silverlight. What you see is what you will get in the final product. The library of easing equations and the customization affordance for said equations was impressive and gave us a lot of flexibility to do 95% of our animation within Blend.

easing1
Copying frames from one element to another worked pretty smoothly, although we couldn't drag-select frames.
Finally, one of the most powerful things we found was the "base" state of an element. Many times throughout the project we found we needed to move or change a single element. The base state allowed us to move the element in one place and have that move propagate across all states. That's pretty righteous.

Brushes

One of the design teams favorite parts of Blend/Silverlight were the Brushes. This is a somewhat deceiving title for a panel that controlled the appearance of an object. If you haven't seen the Victoria's Secret site, there is a lot of gold on it – maybe the most gold you've ever seen on a website. We could not have accomplished this as effortlessly without the gradient fill option for text. The beauty was that we could then also animate said gradients.

brushes1
Another brush that every element possesses is the opacity mask. This can easily be set to a linear or radial gradient, allowing the designer/animator to create some nice gradated wipes and other subtle masking animations. We utilized this technique for a significant portion of the elements on the site like titles and even the main model image on the landing screen.

Typography

Font and type handling was probably the weakest part of Blend/Silverlight in my opinion. Open Type fonts can be used in Silverlight, but when we tried adding our OTF version of Helvetica Neue LT Std, it was not recognized. Only when we converted that font family to True Type were we able to use it within Blend. When activating the font, there were multiple prompts to overwrite Arial, which seemed fine since we were not using Arial in the project. What we did not realize until late in the project is that Arial is automatically embedded in each project file adding nearly a megabyte to the file size!

arial1
Additionally, the default unit for type is set on points, which do not match up equally with the pixel size. This threw us for a loop at the beginning of the project before we found the preference option for this default.
Beyond activating fonts and file-handling, we also ran into issues in the display of the typography. Silverlight seems to add its own style of anti-aliasing that actually makes the font appear much bolder than it actually is. To combat this, anything elements we had set in Bold in the design files, we set in Medium in Blend. We were fortunate that Helvetica Neue had many weights because I could see this becoming a big problem with font families that only have a bold and normal weight. Another thing we noted through trial and error is that fonts look better at some sizes than they do in others. We actually went through and changed all of our 16px type to 15px near the end of the project because it looked significantly more well-formed.

type1
Video

From what we could tell, Silverlight handles video very easily and is able to keep it looking smooth even on less awesome machines although we did see some funky performance issues at times. It's easy to get small file sizes that still look decent with the WMV format, exported from the Expression Encoder. Our biggest use of video in this project, besides the externally loaded videos, was the background. One of the visual themes of the project was defocused glittering lights. At first, we attempted to do this using .png's moving and changing alpha in order to save the processor. This was a misstep. The processor could not handle the .png animation as well as we guessed. So we stepped back and decided to try using videos for each different background, as well as videos for transitions in and out. At the time, this also was a shot in the dark we were not sure how Silverlight would handle video, let alone multiple videos playing at the same time on top of timeline animation. Thankfully, this was a successful attempt and we moved forward. There was one caveat – we needed to set the video to "resource" in order to get the kind of control over the video we wanted. This setting is still a bit confusing for us.

3D Projection

We found 3D(2.5D) projection to be an extremely useful tool in this project. Nearly every screen contains elements that use some amount of 3D projection. It actually became a major theme of the site when we realized how easily we could implement it. The most obvious use of this aspect was the Highlights section "carousel" – a navigation we wanted to include from the beginning of the project. There was a slight learning curve while we discovered how to exaggerate the perspective view, but for the most part, this was a very good "bang-for-your-buck" feature.

Final Thoughts

Silverlight is a formidable option for delivering rich web content. There are some obvious flaws still, but for a program in its earlier stages, It has some pretty muscular legs. I would love to see some more exploration into making this a more powerful design tool with options for transparent video and blending modes, a much stronger typography engine, and options for guides and guide layers. To piggyback a bit on Jamie's post, being able to build on OS X is critical. As designers, we spend a majority of our time in the content creation tools (Photoshop, Illustrator, and After Effects) and then use programs like Blend and Flash to deliver that content. If we are continually switching between Mac and Virtual PC or dedicated PC, we are losing time that we could be spending making each project as rich as it can be.

Share this Post


                           

Comments


Jesse Graupmann     Apr 05, 2010
I've read on other post how much you guys like Flash’s timelines which are essentially cousins to Blend’s Storyboards. So I’m curious what your thoughts are on procedural animations in Silverlight.

If you’re still working on any Silverlight or WPF projects I’d recommend Artefact Animator - http://www.artefactgroup.com/blog/2010/04/artefact-animator-live-and-open-source-for-silverlight-and-wpf/. It doesn't use storyboards but it gives you a simple syntax that mimics Tweener for Flash. It also uses the same code for the Silverlight and WPF version.

For example:

ArtefactAnimator.AddEase (element, Canvas.LeftProperty, 250, .7, AnimationTransitions.CubicEaseOut, 0);

As for all those negative comments, keep doing your thing. Big Spaceship rocks!


oyunlar     Feb 04, 2010
haha those are things that money can do!

oyunlar     Dec 23, 2009
This plugin loads only until 42% and then stops indefinatelly? can somebody help me

Yogesh     Nov 04, 2009
The two posts gives really indepth idea about Silverlight and Blend. Here are our thoughts on using Silverlight and Blend

http://www.upsidelearning.com/blog/index.php/2009/06/15/using-silverlightexpression-blend-for-elearning-development/


Alrick Telfer     Nov 02, 2009
Nice push there by Microsoft, lol.
The things that money can do!

Later

Mark Coleman     Nov 02, 2009
Hi - was just wandering - when putting a team together to take on these types of projects the client often takes advice regards the plugin architecture rather than dictating it though it's often more like 70 /30 split.

My question is regards cost - in the mentioned example what was the relative cost comparison when compared to building the project in flash (i'm thinking in terms of programmers + time required).






Sherif Tariq     Oct 23, 2009
Thank you so much for posting this article. As a web designer, I've been using Blend since early 2007 (waaaay back when it was still called Sparkle), and this is the first time I've read about an honest account about using Blend. Most of the articles I've read in the past talk in glowing terms about Blend, but never mention the memory leaks, the not infrequent crashes when customizing certain controls or some of the problems with the storyboard implementation.

My overall experience with Blend has been positive. Having come to Blend from a mostly HTML/CSS/JavaScript design background, being able to do things like rounded corners (finally!) in a website, and layouts that can stretch and not break has been a huge boon. I dread the day I'll have to go back to designing in HTML again :-)

Once again, thanks for the article. BTW, did Microsoft provide tech support with your Blend issues, or did you have to figure it out on your own? If it's the former, I am sooo jealous.


Robert Napier     Oct 21, 2009
Nice paid ad for Silverlight. Good job guys. Way to cash in.

Shelly Seitensprung     Oct 20, 2009
Thank you so much for sharing this information with us. I can totally underline what you say about Microsoft...well, we'll see what the future may bring.

Megan     Oct 19, 2009
Thanks a lot

Przemyslaw Soszynski     Oct 19, 2009
Why does the plugin loads only until 84% and then stops indefinatelly?
We have tried on 3 different computers and different browsers. Yesterday everything was ok.

Andrei Potorac     Oct 18, 2009
Seems like you guys had a lot of time to experiment instead of actually working on the website. Wouldn't using Flash be more productive? :)

As a Flash Designer and Developer, I really find some of the issues you mentioned unacceptable to using Silverlight. (especially the font issue)

Jamie     Oct 16, 2009
@Al Brown As mentioned before, we've had similar partnerships in the past with Adobe and other companies as well. Yeah, Flash and Silverlight can do a lot of the same things. And yeah, Flash was there first. But why not take that mentality all the way? HTML, CSS and JavaScript are capable of producing some pretty rich content without the expense of any plugin whatsoever... why make a user wait for a loader or download a plugin at all?

Is a client demanding a specific plugin or platform before we execute an idea the typical process around here? Sometimes. Sometimes they say "We want a Flash site" or "We want a banner ad" or whatever, and we'll make recommendations on whether we think that strategy is the best depending on their needs. Would we rather choose the technology ourselves? Of course. That's just not the way it works sometimes though.

We looked at this as an opportunity to expand our own horizons. Along the way, we found Silverlight to be better than Flash in some cases, and Flash better in others. If you still think we're a less credible agency, I won't try to change your mind. We're proud of our work and this project.

Al Brown     Oct 16, 2009
Not sure how much was paid to build the thing in Silverlight from MS. Why spend time learning a new tool that does the same thing as one already there. O yes the money they paid you to use there tool. Wish some company with that money would build something new not spend its money to pay people to use its software that is a ripoff of another companies tool.

I find this whole site and use of Silverlight a poor reflection on Big Spaceships creditability.

Nick Jones     Oct 15, 2009
I now see that it was Microsoft sponsored. Still learning to read ALL comments before posting...

What's the incentive like when they sponsor a project like this? Did the client pay for the additional time it took to learn Silverlight or is that what Microsoft covered? It'd be nice to be compensated for the learning curve since there's not currently enough incentive to use it otherwise.

Did you ever feel like you were cheating on Flash? I've used nothing else for 10 years so I know it'd make me feel all dirty if I chose Silverlight for a project instead unless there was a technological justification. That's not to say I wouldn't use it, just wondering if you felt that loyalty as silly as that sounds.

These articles have been really helpful so thanks for sharing your experiences guys!

Nick Jones     Oct 15, 2009
Good to hear from an AD who has actually used this! I've had trouble with the OTF version of HelveticaNeueLT in Flash as well so it may be more than a problem with Silverlight. Was this Microsoft sponsored? I can't imagine any other reason you'd choose to use it, even if it is a worthy Flash opponent.

Jo     Oct 15, 2009
Wow, I just wanted to say that the Victoria's Secret show looked AMAZING!

Tyson Damman     Oct 14, 2009
@Mason Brown
Thanks for the wishlist. We have a pretty lengthy list as well that we kept as we worked on the project :)
@Matt S
We did struggle a bit with nesting as well. Fortunately, Jamie, our developer on the project, was able to work with us to make sure all of our nested animations played when and where they were supposed to play. I agree with your comment about character animation–the tool is definitely not made for that kind of animation, but would be interesting territory to consider.
@Casey Britt
Thank you for the insight! This is basically the conclusion we realized a week or so into the project. Then it was a "duh" moment.

Casey Britt     Oct 14, 2009
Just as a note to those interested, the reason your fonts don't match up when you go from Photoshop to Blend is this.

Points are based on a measurement of 72 points per inch this does not change. Pixels however are a unit of measurement that is relative to whatever device/application you're on/in. Your design was probably done at 72 dpi in photoshop. Blend however operates at 96 dpi. Since dots per inch is pretty much the same as pixels per inch, when you are in photoshop, there are 72 pixels in one inch. Since there are also 72 points in one inch you have a 1:1 ratio. Points and Pixels are the same.

In Blend however this is not the case since there are 96 pixels in an inch (96 dpi) and as always 72 points in an inch. This means that in Blend there are 1.333 pixels in each point. Thus throwing off your measurements when you move from PS to Blend.

Hope that made sense.

Matt S     Oct 14, 2009
Great overview of the product.

I was contracted on a similar Microsoft sponsored project for their Surface technology about 6 months ago (the project was WPF... but thats close enough to Silverlight in many regards). Being a Flash animator/dev, the most frustrating aspect of Blend was working with nested timelines - anything beyond animating a simple loop over a parent timeline was tricky. I could imagine character animation would be a nightmare.

Frame-by-frame sequences were also non-existent (say, if I have a sequence of prerendered bitmaps... I ended up creating a simple piece of code to step through a series of bitmaps using a timer).

Also, when I used the preview version of Blend, the filters were very minimal, and blending modes were non existent (how ironic!). At least for the former, there are ways to code filters up and insert them back into the Blend tool as designer-friendly drag and drop tools.

But as you acknowledge above, there are many nice elements to Blend. Although it may seem like a minor point, I really digged the time based model over Flash's frame based approach.

Thanks again for the overview - I think it will clear up a lot misinformation and suspicions about Microsoft's offering.

(And yeah... a Mac version of Blend is a must if Microsoft want to bring over the design crowd. Sounds like a long shot, though.)

Jamie     Oct 13, 2009
@Dragos I respect your skepticism of using the technology in this scenario, but we have a different approach to it here. So first, I should point out for the sake of complete transparency that Microsoft was a partner on the project and that part of what they were looking for was to showcase their technology.

With that said, we don't really feel that there's all that much of a difference between that and doing a new project to showcase [in part] Adobe's latest Flash player (which has also happened). We're pushing the limits on every project. We're never doing the same thing twice. Just because we know the hot keys to Adobe's creative suite doesn't mean we have the slightest inkling of how we're going to solve a problem when we get started... and we prefer it that way. We love the thrill of a challenge and we love innovating, and so diving into projects with major clients without a sure answer on how we're going to accomplish the task is a given.

And that's a good thing, I think. It means we're starting with a clean slate for their problem, rather than assuming we know the answer before they even came to us.

Microsoft has made a lot of poor decisions in regards to our industry over the years. I join you in a lot of your complaints about the way they've handled themselves over the years. The relationship is a sour one, but it's not beyond fixing... Microsoft just needs to send some proverbial roses and chocolates along. They've got a lot of work to do to make their brand feel less toxic to so many of us out there.

Mike Downey     Oct 13, 2009
Great write-up, Tyson! I have forwarded all of the feedback to the appropriate product teams at Microsoft.

Dragos     Oct 13, 2009
Good review from a designer's point of view, but my question is why go and use Silverlight, re-learning everything and taking a shot-in-the-dark approach to design and production of this project?

Also, why risk using this new tech for a major client and on a commercial project, rather than try it first on a test project and then after you get the goings of it, use it for commercial projects if it fits the workflow?

Sorry, I am not against Microsoft or Silverlight or something, but I don't want to learn a new technology and have to work out a new workflow around it, after spending years trying to make the best of Creative Suite...

All this seems almost like a sponsored project by Microsoft, but I do take seriously your review.

As a web designer myself, I like standards, I like everything to run smoothly on every machine, I like to use tech that was proven to be great for any project.

Microsoft is doing almost everything against standards, IE is a big pain in the ass for every designer and developer and they know it. And still after knowing this, they release software and technologies to devide even further the market and make it hard for everybody...
Competition is great for business, but sorry, maybe not for this bussines...

Oh well, every man makes his choices.

Good luck with your projects!




Chris Sanders     Oct 13, 2009
Thanks for sharing with us your insights, I've been wondering how Silverlight would hold up against flash. From what you talk it sounds promising for video production.

Mason Brown     Oct 13, 2009
Good read. As a flasher learning Blend, i totally agree with your input. I put together my Blend wishlist, which you can read here:

http://maysundays.net/blog/?p=377


Speak






Submit »