Sunday, January 10, 2010

Moving Home

I've moved this blog to Wordpress. You can find it here.

Thursday, June 25, 2009

Using CodeBaby to Create an Interactive Comic

In a previous post I mentioned that I'd won a 2009 LearnX Award for an online course I created for my employer, Telstra BigPond, using the wonderful CodeBaby application.

The lovely CodeBaby people have popped a brief snippet of said course on their site as an elearning case study. Before you skip over there to have a look, I thought I'd just explain, briefly, how I put it all together.

In one sense, it's quite a task for one person to do something like this from scratch in a short timeframe, mainly due to the need for attention to detail and being able to multi-task with different content and apps. On the other hand, using a combination of tools makes it possible for a single developer to produce something quite sophisticated and effective.

Why a Comic?
When you are producing material about expected behaviours it can sometimes make the learner feel a little anxious or possibly negative up front. As this course is about workplace culture and high performance I decided that a comic book story-telling format would immediately generate interest and a compulsion to 'turn the page' to find out what happens, rather than just relaying information.

I'm a big fan of story-telling anyway; providing examples that are meaningful and that produce an emotional reaction is much better than paragraphs of text.

This project is an interactive comic created with a range of different software tools but you can create your own comic using PowerPoint and some clip art or stock photos. If you have Articulate then adding audio is a breeze. But here's what I used:

  • CodeBaby
  • Flash
  • The Flash Flipping Book Component
  • Fireworks (or other graphics software)
  • Comic Life
  • Wavepad (or other audio editing software)
  • Blue SnowBall Microphone (or other mic)
Writing the Script
It's really important to make your stakeholders understand that this is a detailed production and that you get sign-off on the content before you start development. When you're dealing with audio and animation you really don't want to be going back and making changes.

As this is a story format, the content needs to be written as a script. I simply use Word to set out the storyboard and mark which bits are audio and which are visuals/text/animations. This helps your reviewers to understand the flow and how the end result will 'look'. I don't have time to create mock-ups and I usually develop on my own so I can picture what I want to do in my head, but if you're working with a team you may need to put more effort into this step.

When I start writing I often have a jumble of disparate facts and figures, bits from legals and SMEs. It can be daunting to make a start but I plonk it all into the document, separating each topic or idea into a table cell. Then I can begin to get rid of duplicate or similar information, move the order around and it soon begins to make sense.

Keep the tone conversational and mark words or phrases that should be emphasized when spoken. If you're doing the audio recording yourself, you'll be familiar enough with the content to know what you want to do with it - read it out loud as you write to hear how it will sound. If you'll be handing it on to someone else, you'll need to provide more specific direction.

Flipping Book
Realistic flipping pages are very difficult to accomplish in Flash and require more programming skills than I will ever have so a pre-built component was the way to go for me. I used Flipping Book which is very customisable. Your content is 'pulled' into the component through an XML text file which specifies each page as a jpeg, png, or swf file.

I created the surrounding interface in Flash, including the introduction, conclusion, background music and music controls, and a Flash menu component. Flipping Book just drops onto the stage as its own component.

First step is the audio. I use a Blue Snowball microphone and portable soundbooth to record each section as separate wave files. Make sure you do your recording under the same conditions - same room, same distance from the mic, same volume - in case you do need to re-record a section. I've tried Audacity and SoundBooth but keep coming back to WavePad; I just like the easy to use interface and it does the job quickly. More audio tips from me.

Got your audio? Now you can play with the wonderful CodeBaby! It's such a fun app to use and makes you feel like a real director. I use one of the stock characters, but you can have one custom made if you need a particular look, (it comes with quite a big selection of male and female avatars to choose from).

I wanted the CodeBaby pieces to stand out and be reserved for the main character, rather than animate the entire comic. I can't draw so I hit on the (brilliant!) idea of using the other stock characters to create the comic effect by posing them and taking screenshots.

This worked out terrifically well as I could import the screenshots into another application (Comic Life), combining them into scenes, adding speech bubbles etc without having to engage other people for more audio work or spend more time producing complex multi-character animations, which I didn't have time for.

Because I'm going to insert each CodeBaby animation into a separate swf file I produce them individually; import an audio file, animate the character and export as a swf.

It helps to think about your naming conventions when you are handling so many files eg audio01.wav goes into codebaby01.swf which goes into flashcb01.swf and so on.

The extra good news is that there is now a brand new version of CodeBaby that includes captioning and other nice enhancements!

I paste my CodeBaby screenshots into Fireworks to crop, resize or position etc. Saving them as PNGs means I can then import them into Comic Life in a high quality format. I also use Fireworks to lay out pages that aren't in the comic format; these could be graphs or some other illustration.

You're probably now getting an idea of what a detailed process this type of project actually is...

Comic Life
You don't absolutely need Comic Life for this but it does help lay out your non-flash pages and makes it easy to add different kinds of speech bubbles and add text or other effects. You can import backgrounds and the CodeBaby character pngs into 'frames'. I export each Comic Life page as a high quality PNG. Make sure the page sizes match the Flipping Book component page size.

I also used Comic Life to create the comic style headings by taking screenshots of the text and editing them in Fireworks, then copy and pasting into Flash.

Are you getting confused yet?

It's a bit complex to explain in this post but I created a Flash file that pulled a CodeBaby animation (swf) into an empty movie clip, added a preloader progress bar for each clip, some smarts for checking if it had loaded, and added controls to stop, play or scrub the clip. Looking at the code I'm not quite sure how I managed it, but I did. Again, make sure your page size matches.

Once this file was set up it was just a matter of making a copy and changing the code to pull in a different swf, or move the page contents around for differently sized CodeBaby animations or other content.

Flipping Book XML
I don't complete all the different components before starting to put the comic together as I find compiling it as I go often sparks new ideas or helps me iron out layout issues, find a better page order and so on.

The Flipping Book XML text file makes it easy to pop in new pages as you go or change the order around - it's just a matter of quickly editing and resaving the file.

The Results
There are a lot of other issues and steps in such a project but I hope this overview gives you some ideas of your own. You can see the results in the case study snippet.

Sunday, May 03, 2009

CodeBaby and me - LearnX award winning team!

If you had been in my kitchen one Thursday afternoon in March you may have wondered why I was hopping up and down, clapping my sweaty little hands and squealing with glee. Luckily this silliness lasted but a few minutes before my usual calm serenity returned.

You see, I'd just found out in a roundabout way that I had won a LearnX award, to be presented at their April 2009 conference. Considering the fact that I had only entered the previous week, a day before the deadline, the win came as quite a surprise but a pleasant one to be sure. I hadn't even intended to enter, but was encouraged to do so by a delightful man from Symmetree.

Some time last year I persuaded my employer to fork out a tidy sum so that I could get my greedy paws on the fantastic CodeBaby animated avatar software - don't ask me how, they must have just come back from a long lunch. We purchased said software through the Australian supplier, Roland from Symmetree.

Over the following few months Roland would contact me about program updates and interesting bits and bobs (helpful chappy that he is). During one conversation I mentioned how I was using CodeBaby to create an online course in comic book format and he was intrigued. I promised to send him a copy of the finished project. I did. He was quite impressed. In fact, he sent it to the CodeBaby boffins and they were equally impressed. How nice, I thought.

At the time, he made mention of the Awards and that he thought I should enter. 'Pshaw!' I said. (Actually, I think I tittered and said 'Really? Oh well, I'll think about it' and promptly thought no more about it). That was, until Roland called to say that he thought my course was so good that he'd persuaded his company to pay my entry fee if I agreed and would prepare the submission. What a nice fellow!

So, in the end I did enter, I did win the platinum award for my category and a shiny crystal trophy is now gathering dust on my desk. Huzzah!

Wanna See The Course?
You will be able to quite soon because the CodeBaby people, rather happy that their software was a major reason for the win, asked if they could host my files on the Showcase section of their site. They also actually really liked the content and how I had incorporated CodeBaby in a unique way - taking still shots of the characters to create the comic book effect. In the words of their product managers, "It was so interactive and engaging, we didn't want to stop until the very end". Nice.

They are also using it 'on the road' as a nice demo example of how their product can help a developer autonomously create quite a sophisticated elearning experience.

So stay tuned and I'll post a link and a bit more about how I created the module when it's up and running.