View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

2-D Animation Studio - Scripting Interface by M. Ahsan Hussain

2-D Animation Studio - Scripting Interface and Error Handling by M. Ahsan Hussain


Our project for this semester, a 2-D Animation Studio, was based on providing the tools to create an Animated Movie. The Scripting Interface was therefore an integral part of the project. Each movie created had a script that contained all the necessary information to play it. This included the information about all the actors, props and the sequence of actions that were to be performed in each scene of the movie.

The scripting interface was created using a PluggableTextMorph inside of an outer TextMorph. The reason for choosing a PluggableTextMorph to display the script was to easily allow the loading of the script file (stored as XML) from the directory. The PluggableTextMorph also allowed you to easily save the contents (if changed) while editing a movie.

Uploaded Image: ErrorHandlingSnapshot2.gif

The buttons inside of the scripting interface were StringButtonMorphs. The reason for choosing StringButtonMorphs was that they provided a simple functionality required here to call a function when the buttons were clicked.

Lessons learnt from Scripting Interface

We gave the user too much control by allowing them to write XML into the script for their Movie. There were two issues with this:

1) The user was not sure how to put their actors, props, and sequence of actions for each scene. Since every line of code in the script had to be in XML, the user sometimes felt confused. Even though we did provide a default.xml as well as a readme file, it was difficult to figure out if one was using the correct tags and the correct positions in the script.

2) We put extra burden on error checking.

How we could have done a better job with these two issues:

We could have designed our scripting interface in such a way that the user would not have to type anything in the XML script file. This is similar to how our Actor Studio worked. The Actor Studio asked the user to type name of an actor and to choose their costume from among pictures. After the user was done, they could save and exit. This navigated them back to their script and this also automatically added the XML for this actor onto their script.

We could have displayed (using a PluggableListMorph) a list of all possible actions that an actor could perform. After clicking on the action, the user could have been asked to associate an Actor (from among a list of already created actors) with that action. And the XML for that could be automatically placed on the main script window.

Links to this Page