Discussion
1. Simple Animation.
It was very easy to create this animation
in Cult3D. Drag a mouse click, drag
an 'animation play' action and you're
done. Nuff said.
Shockwave proved to be more of a
problem. The drag and drop behaviours
provided with the software once again
let me down. I was able to quickly
set up one animation to be triggered
by clicking the lever, but animating
all of the components from that one
mouse click seemed impossible. Shockwave
(and Viewpoint) creates named animation
sequences for any animated objects,
and attaches the motions to those
objects. When an object is animated
it's children are moved appropriately,
but their animations are not triggered.
While I was able to trigger the animation
of all the appropriate elements in
Cult3D by affecting the parent; in
Shockwave I had to animate four elements
seperately.
Once I had this figured out, I created
a simple function to trigger the appropriate
animations. I also created a simple
behaviour to trigger the animation
when the user clicked on the appropriate
object. This approach of grouping
all of the mouse-click interactivity
into one behaviour strikes me as ideal,
the user interface to all interactivity
can be controlled with one case statement.
The code-based structure of the Viewpoint
format is a mixed blessing. The advantage
of being able to had code keyframe
values is really helpful in creating
certain types of animation. The drawback
is that in order to program interactivity
one needs to wade through a morass
of XML code. Viewpoint's authoring
tools leave a lot to be desired, values
can be set and tested, but any interactivity
needs to be done outside the autoring
tool! Triggering the animation was
easy enough with a few lines of code,
but I had to open the file in the
SceneBuilder, add a hotspot object,
save out the file, open the file in
a text editor, add the trigger code,
save the file. It was an exhausting
process.
2. Open Close animation
Once again this was no problem for
Cult3D; I created two different actions,
each of which triggered a different
section of the animation data. For
flow control I used a simple conditional
test to trigger the appropriate event.
Having completed the first animation
somewhat painfully in Shockwave, the
second was no problem. I simply added
a function to trigger the right animation
sequence based on a conditional test.
To link the interactivity to the mouse
click I simply added a new case to
my control behaviour, voila!
The only snag I ran into using Viewpoint
was the need to manually create a
new timeline for the second animation.
There must be a better way to accomplish
this but I couldn't find it. Viewpoint
does have a very simple way to handle
flow control however. When specifying
a click event, the user can assign
it an ID value. The ID values correspond
to the number of clicks required to
trigger the action. One click triggers
ID #0, the second triggers ID #1.
This certainly helps create this kind
of common interactivity.
3. Introductory Spin.
Once again I had no problem creating
this animation in Cult3D. Using a
simple rotation action attached to
the scene load event. An empty mouse
click event triggers the 'stop' action
when the user first clicks on the
scene.
I saved myself some time in Shockwave
by avoiding the library behaviours
and going directly to the code myself.
The library rotation behaviour makes
rotating the object simple, but doesn't
provide any interface to turn the
rotation off. By adding a few lines
of code and a boolean value to my
control behaviour I was able to accomplish
this quite quickly.
To be honest I was so frustrated
with Viewpoint by this time that I
didn't even try to create this animation.
Exposing the code for the entire project
does make it possible for users to
create anything they want, but it
does not make it easy. I much prefer
Shockwave's approach to compartmentalize
it's code to help make it understandable.
4. Button functionality.
Both Cult3D and Viewpoint use javacript
to communicate between the host page
and the object. Luckily for me both
packages provide sample files can
be easily modified for my purposes.
Shockwave definitely has the advantage
in this case; since the 2D buttons
can be included in the Shockwave file
itself, there is not need to worry
about javascript syntax and embedded
object naming. Connecting the buttons
to my pre-made functions was also
simple.
Conclusions
It should be no surprise that there
is no clear winner in this experiment.
Cult3D's programming simplicity is
certainly it's greatest strength,
but the hands on access of Shockwave's
Lingo makes it hard to choose.
A word about timelines.
The animation of the bird removing
the cigarette presents a small problem.
The cigarette is supposed to slide
out attached to the tray and then
be picked up in the birds beak; because
of the kinds of motion involved this
makes the parenting hierarchy complex.
When I first created this presentation
in Cult3D, my approach was to use
two cigarettes, one in the tray and
one in the bird's mouth. When the
bird leans down to pick up the cigarette,
I switch the visibility of the two
objects.
In Director, animation is played
back as a chunk, not in relation to
the scene's score. As a result it
became very difficult to sequence
the hiding and unhiding of the cigarette
to match the animation. The alternative
was to try an interactively switch
the cigarette's parent, but this would
also have presented a timing problem.
So much so in fact that I rebuilt
the animation sequence to rely on
a series of dummy objects with no
visibility effects at all.
I should point out that Viewpoint
does give the user the ability to
sequence different animations based
on different timelines, but I ended
up using my rebuilt animation for
all three presentations.
I can't say enough about the ability
to sequence complex events to a timeline.
When creating interactive content,
the ability to synch non-keyframe
events (sfx, url access, function
calls etc.) is crucial. Cult3D's drag
and drop timeline sequencer is the
clear winner here.
|