Hi Marcus,
Animation for this is no different in Blender really, than in any other 3d application…
There’s the static parts, and the things you want to animate.
Just create keyframes for those things in your timeline you want to show when the model is in ‘exploded view’.
Animate in ascending blocks, so it’s a bit easier to work with in Puzzels later.
e.g. set1 = fr. 0-50, set2 = fr. 60-110, set3 = fr. 120-170 etc., these numbers are easier to remember and bug check.
Be sure to make Collections in Blender for all the areas you want ‘trigger’ in WebGL.
For our project we had the following:
– a base Collection for the static parts
– a Collection for all parts that needed to receive a material swap
– 3 Collections for each animated parts hierarchy. This way you can trigger all those elements in a Collection at the same time with puzzles.
In Puzzles you have to set up variables for all possibilities regarding animation or materials changes, and use these in the puzzle logic.
e.g. anim1_start, anim1_stop, anim2_start, anim2_stop, material1, material2 etc.
This way you can check if a variable is ‘set’ by a puzzle, and that way you can trigger something else based on that variable.
e.g. the ‘anim1_start’ variable is checked on button anim2. If set, rewind anim1 first, before starting anim2. When that is done, set the variable to ‘anim2_start’.
And same for the other animations, or the material swap.
So check is something is set, if so – do X first. If not, run immediately. Lot’s of ‘if:do’ and ‘else if:do’ statements in a puzzle piece. ;)
We linked all puzzles to HTML buttons, but you can easily use parts of the model to trigger them.
A watermarked test I did with two exploding sets can be seen here:
https://www.rowumedia.nl/clients/schroeder/index.html
Same workflow as explained above.
wow.. long post
Hope it helps,
Rob
Below sea level: 52.213545 Lat, 4.422061 Long