Rotating on central axis with animation - Why state is being skipped

Hello everyone,

For those who have implemented rotating objects in Storyline 2, I'm hoping someone can share some knowledge.  Been attempting to solve this brainteaser for a while now and am running out of ideas.

This is just a demo, and trying to get the rotating mechanic down before applying it to a project. Keep in mind the black numbers (1,2,3,4) are only there to show up/down orientation of the object when it turns.

 

 

The cool, original idea on how to spin/rotate an object (on central axis point) came from this post!   It included a windmill sample from Mike Enders using buttons to change the states to show rotating.  Each state contains a quarter-turn Animation.

I added onto this - by including triggers that hide/reveal the buttons as the object turns (this is for a simulation purpose to better show the points of turning if the object is held in someone's hands). An SL2 sample is attached to give the idea.

There's 4 states with quarter-turn animations applied. The first four spins with quarter-turns work nicely.

On attempting to get an object to spin around and keep on rotating after the 4th turn (after full 360 degree turn).. that's where it's going wrong.

Basically after the fourth button "Spin 4" is pressed... the"Spin 1" button is set with a trigger to become visible/active again  (to allow continued quarter-turns of the object however many times the learner wants).  Currently the trigger attached to Step 1 button tells the Object to change back to State 1 again.

Logically it made sense to change back to State 1 for it to do the first quarter-turn animation again. However, it doesn't appear to be working right.

Instead of playing State 1, it instead appears to skip over State 1, and jump to State 2.

If anyone has any idea why this happens, please share!  Or if there are other workarounds to do continuous rotations, they are definitely appreciated as well. Unsure if it's something in SL2 causing it to skip over the state 1, or if the trigger logic just isn't set up right?

4 Replies
Jay Yearley

Thanks, your example is somewhat different with the continuously looping rotation  (while my demo above is based on button clicks), but it gives me an idea.

Thinking it must have something to do with needing to change the state the object to hidden, then back to normal (to get the first State 1 quarter-turn entrance animation to play over again properly).

Just strange though how the quarter-turn animations in State 2, State 3, and State 4 will play fine - after jumping over the first State 1

 

Question: how can one change an Object quickly to "Hidden" then to "Normal"?  I looked at your example and the screenshots (even your screenshots on the Community post), but the trigger that sets Normal and Hidden are not visible on them.

Initial thought is to use a variable (initially set to "False") for this, though Is there a way to apply a trigger that changes the variable to "True" after an Animation inside a state ends?

Richard Hill

Hey Jay,  ( this may be too late) But your problem illustrates an interesting effect with rotating animations within states.   Apparently an object will remember the current rotation degree of an object residing within each state, even when it leaves and returns to that state. So it isn't "skipping" as you presume, but instead counting and remembering. To validate it just keep clicking and you will see it increments every 360.  It's really a neat phenomena, and actually could have some practical purpose( like storing choices, or words)  In order to stop this you will somehow need to reload the metalplate image or its states.

You have 3 possible ways to accommodate this if you still want it to work

1. increase the number of states X 4 to make up for the 4 sides, and you will need conditionals to ascertain when each triggers.  ( not my first choice)

2. Swap the states on your object for Layers ( simply copy and paste the contents of each state onto a new layer) then call those layers instead of states on your buttons. This will reset your animation states to 0 degrees because each object reloads.

3A. Lastly(A, B)  you can place the contents of your spinner into a layer and have it pause at the beginning and reload at end(loop).

3B. Pause the main timeline at the beginning, shorten it's length, and then reload it upon timeline end. ( which is what I chose)