Project 2: 2D Animation #
Project Description #
This project explores the use of object-oriented programming in graphics, as well as scene hierarchies to perform transformations for 2D animation. To do this, students will create an animation withing Processing that will loop indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes) and have several levels of scene/shape transformations in order to create a range of interesting, cohesive movements.
Basic Requirements #
You will write the following:
- A 2D scene that is drawn via Processing within the sketch
project2.pde
. - Multiple objects that are continuously animated in this scene. These animations do not need to loop seamlessly. For example, an animated object might jump from the last position back to the first position, but this is acceptable as long as the animation continues.
- A project report to detail overall design and animation goals.
Your animation must have at least two classes for animating objects in the scene, and at least two levels of hierarchical grouping to form at least two levels of distinct animation using any of the following transformations: translate, rotate, scale.
You must also have at least two instances (objects) of class you create that differ in some way. For example, they may have different colors, or be transformed in different ways.
Finally, your animation must have some sort of narrative. This does not mean you need a story in the classical sense–for example, if you are animating a protein docking sequence, the docking is the narrative. However, your animation does need to attempt to convey something, rather than being a bunch of pretty shapes doing a pretty dance on the screen.
Extra Credit #
All assignments have possible extensions that you might consider adding to your scene for extra credit. Note that if the submission is well beyond the scope of the assignment, we will consider giving extra credit even if the features implemented are not ones suggested below. All requirements of the assignment must be met before credit for this will be given.
SVG Import (1pt) #
Instead of constructing your scene using geometry primitives, import SVG files. Note that you will still need to place these results within a class, and you will still need to perform transformations on them.
Interactivity (up to 5pts) #
Include some way of having the user interact with your animation. This could be clicking and dragging to move certain pieces around, using keypresses to change the animation mode, or clicking on the animation to place a black hole which slowly sucks up all the pieces you’re animating.
Whatever you do, document it in your report.
Report #
Your report should include the following information. You do not need to make the report long, as long as all the information below is included:
- The narrative of your animation.
- What the included classes do
- How you met the two-transformation requirement
- Your two classes and what members they have
- How you met the two-instance requirement (e.g. how you have at least two objects that differ in some way)
- Any unexpected challenges you faced along the way
Please submit the report in a plain text format (e.g. markdown or text).
Submission #
Your submission should include the following:
- A Processing file named
youreid_project2.pde
that runs the animation. - All the necessary classes and subclasses for the Processing file to run.
- A
README
text file that tells us the exact steps necessary to run your code and whether you’re using any slip days on the project. - A project report as described above.
- If applicable, a language model log in plaintext format and a permalink to your LM log.
Place this all into a directory named youreid_project2
, zip the directory,
and submit it to Canvas.