Dynamic components and animation in SketchUp


#1

Hello People ! There are many softwares to create an animation, even using your SketchUp model as a base. But did you know that you can create an animation directly in SketchUp using a plugin named Key Frame animation?

Result : https://www.youtube.com/watch?v=KxTKIUyRB7Q

We have linked 3 videos concerning dynamic components and Real-Time Animation in SketchUp which are french spoken but ENGLISH SUBTITLED !
The 3 videos are quite independant but I do advice you to watch all of them (10min all in all).

Part 1 : https://www.youtube.com/watch?v=7e2IlbVYDG4
The first part is an introduction. If you don’t know about dynamic components, it could be a great motivation to go and check official tuto, because this video won’t explain in deep detail how to proceed.

Special post feature : I can explain how are made the component : Dynamic Body Fence with Angle
I will talk about “grouping-level” on components. Every time you group something in another group or component, you create a new “level” of grouping.

As a reminder, the main features of a dynamic component for modifying are :

Position : Which control the position of the component axis system compared with the axis system of the previous grouping-level component

Size : The length of a component on its own axis system. Beware, the length modification acts as a scaling operation, not a push/pull !

Rotation : Which control the angle between of the component axis system and the axis system of the previous grouping-level component.

Copies : Very important stuff, permits you to duplicate the component

COPY : a read only attribute, which show the “copy ID” of a component. When you click on a component, the number 2.0 on COPY informs you that this is the 2nd copy so the 3rd instance (the main component is COPY = 0.0)

/ ! \ A very important tip: the different copies of a component may not actualize if you change a property of one of them. To make sure everything works well, set copies to 0, modify everything you need, then reput the formula in copies to recreate the different instances with the new properties!

Custom : As indicated, you can put a custom number or text which can be used later. In my example, the angle is a “custom”, the length between stakes is another “custom”.

/ ! \ Another very important tip: SketchUp reminds the different components definitions. Don’t hesitate to personalized a lot the names of the components and its definitions and customs to avoid bad interactions in a model ! (True story…)

Okay so let’s talk about the typical formulas:

Well, it doesn’t look friendly, but it is easy to make because every designation such as “BarrièreDynamiqueS!LenX” is added by just clicking on the value you need.

What is the sense of these formulas :

Copies : There is a copy of a stake every “distance between stake” I can put while dividing the total length of the fence. As I am working in angle, this distance is calculated by a division with the cos(angleS). To get an integer number, I use the formula FLOOR(expression,0) which “cut” the result with 0 decimal. I put a condition with IF because I didn’t want an extra stake if the distance between the 2 final stakes was inferior to the dimension of a stake (because it creates a collision which is bad looking).
So it creates many stakes which are now superposed.

I now use the position arguments to distribute the instances of my stakes.
X =if(COPY=copies,(BarrièreDynamiqueS!LenX-5),(copy(BarrièreDynamiqueS!Espacement))cos(BarrièreDynamiqueS!AngleS))

« If copy=copies » means the last instance, and its position is of course the end of the fence minus the lenght of the stake which is 5 : BarrièreDynamiqueS!LenX-5

Else, the position is the number of copy multiplied by the space between stakes which is my custom argument. : copy(BarrièreDynamiqueS!Espacement))cos(BarrièreDynamiqueS!AngleS)

To get the correct distance when you get an “angleS” (custom argument) different from 0, you need to multiply the distance by the cos(angleS), what I did in my formula.
Then you have to repeat it for the Z or the Y depending of your axis system.

For a specific part of the structure of the fence, the tip is to decompose it in different parts you can adjust by scaling : right rectangles and triangles, and then mask the faces you don’t want to display.


The reason why my formulas seems to be long is the fact that I always repeat a calculation while I could compare the values of elements using the same calculation. I am not sure this is mandatory but it may avoid troubles in the refreshing order of the components.
Now, train yourself !

Part 2 : http://youtu.be/PE46UiIecWw
The second part will explain you how we created a dynamic grab from a normal model. Once again, the video is not made for real beginners, but if you have seen the tutorials for beginners, it will give you some tips, the philosophy we are applying when creating dynamic components especially in advance featured, and the result !

Special post feature : In this component, I used a lot of rotation and position arguments, with a custom which is the position of the grab. The user sees a definition of the position such as “open” “intermediate” or “closed”, but the system can use text (on a If condition) or values. If possible, use the values 0 and 1 which are very efficient, so you will be able to use the values in the formulas directly!

Part 3 : http://youtu.be/oLnEQ3M5gKc
How you can animate the grab directly in SketchUp with KeyFrame animation ! How it works, some other tips, and why it works great with our dynamic component !

Special post feature : With the dynamic component, the main idea is to avoid moving the different part by ourselves before saving them in Key Frame. Of course, if you have to use a component only 1 time in a single model, it is OBVIOUSLY more quick to do it manually and then save it in KeyFrame.
This is why we only do this for often used models such as Wheel-loader, grabs, harbor cranes !

I hope it helped you to create your own dynamic components. And if you have to do it for many models for stairs, accesses, fences, you also have a great and cheap extension: Profile Builder 2.

Stay tuned and like our Facebook page :wink:


Animation making
Dynamic Components Resources [wiki]