I was working on a project recently, where the storyboard asked for a ‘get your brain in gear’ animation, something similar to this…
The gears didn’t have to be mechanically accurate, just good enough to convey the idea. My first thought was to create a video, but then I remembered having answered a related question in the eLearning Heroes community. So, how do you spin objects in Storyline around one axis? You can’t motion paths, because the object would simply travel, along the path (even if it is circular) but would not rotate.
There are two other options:
1. Create custom states for an object, with the object slightly turned in each state and then use triggers to switch between states.
2. Use a Spin Entry Animation and continuously hide/show the object so that the entry animation repeats.
Before committing to the client, I wanted to test out option #2 and set up my Storyline project like this:
Each Wheel is a .png with transparent background (For this test, I didn’t bother cleaning the edges of the bitmaps).
Each Wheel has a Quarter Spin Entrance animation, which depending on the wheel’s position of the chain either spins it clock wise or counterclock wise. So far so good. The problem is that this setup would only spin each wheel once.
So, I added an offstage object (rectangle) with a looped motion path. whenever the loop is complete, each wheel’s state is set to Hidden and immediately changed back to Normal. This way, the entrance animation is played again, adding another quarter spin, and another…
It only took a few triggers to make that work. Wit the problem solved I wanted to try one more thing: have the animation start and stop based on a button click.
This technique can be applied to any object and provides an easy way to add rotation to Storyline projects.
Edit 10/2016: Here is the .story file for download.
Edit 04/2017: I noticed that in SL360’s HTML5 output, the spin animations I used show some weird behaviour. The rotation will speed up uncontrollably. It’s actually cool to look at, but this bug makes the method I described unusable for HTML5 output.