Animator: Parametric Animation plugin - Discussion
-
@tdahl said:
I uploaded a more complete version of my work-in-progress model to DropBox.
- TomWooh, big file, 136 Mb and superb model, really!!
I tried to include a rotation in the model, and did not have major issue of performance.
Note that I must have a much smaller screen than you have, which explains why the camera seems to be offset.
Fredo
-
@tdahl said:
I've encountered an Animator problem (in v1.8a) that I encountered once or twice with v1.7d, where the editor and player become mostly unresponsive.
There is a problem with one of the Rotation movement, called SSAA Azimuth, which apparently references a pivot component which has disappeared.
This causes the error, blocking the whole animation of objects. If you open the Ruby console, you can see the errors.
I would suggest you remove it from the animation, using the Maintenance dialog box (as it is uneasy to select the clip element in the timeline). Then you can recreate this rotation.
I have fixed the errors in the code for a next release.
One limitation in Animator is that groups and components referenced by the animation must not be deleted. Otherwise, you get this type of behavior.
Animator already tracks this for the main objects to move (Clip element will appear in red), but here it is the reference pivot object, and I did not cover the case yet.Fredo
EDIT: I made the changes to ensure that this type of error is detected. The faulty sequences will appear in Red (with a tooltip giving the error) and will be ignored
This will go in the next release -
Fredo, thank you for conducting further experiments with my model files. The remaining performance issue I saw and reported with v1.8a seems to have been a transient condition, because creating animation steps has been OK for the past day or so. Sorry for the false-alarm report. By the way, I also learned how to hide the Animator GUI while playing an animation in Edit mode and have happily discovered that playback performance is great with that approach.
Thanks for the compliment on my work-in-progress model. It represents about 1,500 hours or so of time in SketchUp and Photoshop (to do photo scaling and interpolated measurement using a collection of some 3,500 detail photographs I've taken of actual Viking hardware during the past few years). In 2016 I created a making-of video that describes my process. I'm currently using Animator (and also hope to use MSPhysics) to create another video demonstration of the model.
https://youtu.be/1vyzoWudom8 -
What approaches do people suggest for configuring a camera path that orbits around and closes in on a subject, with the goal to have a smooth motion throughout the path (while keeping the camera pointed where desired)?
I have been using SketchUp scenes to define discrete camera positions, and creating Animator camera objects in the timeline for each scene. I have a hard time avoiding a bounce when the camera reaches each discrete scene key position. The three Animator camera path choices (circular, linear, bezier) all yield bounces unless the straight-line path between camera positions is naturally somewhat linear (which defeats the goal of orbiting around a subject, perhaps dipping above or below). The circular and bezier choices sometimes yield wildly crazy intermediate pointing and pathing (compared to SketchUp's native scene-to-scene camera motion), so I tend to use the linear choice in Animator.
Perhaps I could create a curve (welded out of line segments, curves, etc.) using SketchUp tools, and then constrain the camera to that geometric path? I seem to recall that is possible, but I don't know how camera pointing is defined with that approach.
-
@tdahl said:
Aha! That makes sense. Thank you very much Fredo for diagnosing my model's problem! Before seeing your fast reply I was experimenting further and noticed that when hovering the mouse over three of the rotation animations in the timeline, the entire Animator GUI temporarily disappears. I could click in empty space (in the SketchUp viewport) and the chosen rotation would be selected and the GUI would reappear. I could then delete the rotation. After deleting the three rotations with this odd GUI behavior, the rest of Animator started working as expected. For all three of those rotations, I had used a temporary piece of geometry to be able to select the pivot point easily. Then I later deleted those "temp" objects. I did not correlate the beginning of the strange behavior with my having deleted those three rotation-pivot key objects.
Lesson learned, thank you. I will simply hide those pivot objects in the future.
- Tom
Maybe you can use a construction point on the component / group that serve the pivot.
Also, when you select the rotation pivot, right click to show the contextual menu. Then you can choose the right object, or the absolute coordinates for pivot. I'll try to make this more user friendly in a next release, but this is today the way you can select the pivot reference.Fredo
-
@tdahl said:
The circular and bezier choices sometimes yield wildly crazy intermediate pointing and pathing (compared to SketchUp's native scene-to-scene camera motion), so I tend to use the linear choice in Animator.
I have modified the algorithm for circular interpolation in Animator 1.8b (along with LibFredo6 8.0b).
Still not the native Sketchup scene transition algorithm, but I hope a smoother transition.
Fredo
-
@unknownuser said:
I have modified the algorithm for circular interpolation in Animator 1.8b (along with LibFredo6 8.0b).
Still not the native Sketchup scene transition algorithm, but I hope a smoother transition.
Fredo, thank you very much! I just upgraded to 1.8b and the circular camera paths are definitely better to my taste. I have been working on a sequence with multiple camera positions (see below) where the prior circular pathing was a bit too crazy for a number of the transitions. With this new version I was able to set them to circular and achieve a nicer result. Fantastic improvement, thank you again.
- Tom -
Tom,
Quite impressive, first the model itself and the animation for the mountng.
For the animation, did you proceed by unmounting from an assembled model (and then running the video backward), or the contrary?
Fredo
-
Hi Fredo, as you suspected the animation was done by disassembling an intact model and then running the animation in reverse. A very handy feature of Animator to be able to do that!
- Tom
-
Very impressive Tom.......
-
I am completely new to Sketchup, but it seems that Animator might be a good starting point for what I would like to realize.
I have discrete event simultion of a container terminal written in Python (with my salabim tool). There I can do 2D animations. My idea is to interface either the code or a file with actions (crane moves, spreader, lowers, container is placed, ...) with Sketchup.
Is there any possibility of interfacing Animator with 'the outside world', preferably with an API, but a file is also acceptable. Does that involve Ruby programming.Any advise is welcome.
-
@ruudvanderham said:
I have discrete event simultion of a container terminal written in Python (with my salabim tool). There I can do 2D animations. My idea is to interface either the code or a file with actions (crane moves, spreader, lowers, container is placed, ...) with Sketchup.
Is there any possibility of interfacing Animator with 'the outside world', preferably with an API, but a file is also acceptable. Does that involve Ruby programming.Animator is designed to generate videos of animation based on parameterization of object and camera movement.
If the simulation aspect is more important for you, then I would suggest that you have a look at MSPhysics, which is more a Physical engine, which can also generate videos. I think it has some kind of script programming.Fredo
-
@Fredo
Thanks for the response.
Maybe just a little bit more explanation: All I want to do is animate the output of a simulation. This output might look like:
t0=100 t1=110 object=crane1 x0=10 x1=300
t0=100 t1=120 object=crane2 x0=20 x1=200
t0=110 t1=200 object=spreader1 z0=100 z1=10
t0=120 t1=130 object=container191 location=(10,20,40)
Just to give an example.
Would there be any way to interpret that kind of info (format totally discussable) and animate it with Animator/Sketchup? -
Animator does not have (yet) a specification scripting language. Again, it is not designed as a simulation tool, but as a video generation plugin.
It all depends on what you have in mind. Maybe, if you already have the model built in Sketchup, and you post it, I can tell what you can do (or not do) with Animator, and in MSPhysics.
Fredo
-
Does the ability to Control-click a set of elements in the timeline to group them into a clip still exist? This was shown in one of Fredo's earlier YouTube Animator videos, #2 I think. When I try (using v1.8b on a Mac in SketchUp Pro 2017), attempting to Control-Click on a timeline element pops up a tiny gray menu thing with "Exit" as the only choice. I have not figured out any other way to collect a set of timeline elements into a group, which would be convenient for re-using a set of coordinated actions.
-
Tom,
I think on Mac, this is Command+Click.
Tell me if it does not work.
Fredo
-
Hi Fredo, it turns out on the Mac it is Option+click to select multiple elements in the timeline (I can't believe I did not try that!). Thanks for the quick reply and for prompting me to experiment further.
- Tom -
Is there an easy way to create a movement action (such as a rotation) that only applies to one instance of a component definition? A number of times now, I've applied a movement action to one instance of a component and later discovered that the same action is being applied to all other instances of the same component definition. I am not consciously doing anything to cause the action to be applied universally, and I do not want the action to be applied universally; I only want the movement action to be applied to the component instance that I selected in the GUI when creating the movement action.
I generally do not give each instance a unique instance-name, but I'm trying to remember to do that in the future - in case that would cause Animator to only apply a movement action to the component instance that is directly selected in the GUI when creating or editing the movement action.
When I discover the universally-applied movement behavior has occurred, what I do to "correct" it (to my intended animation) is to delete the movement action and purge it from the model and save and exit from Animator, select each instance of the component and make-unique (using SketchUp's native GUI), then re-create the movement action in Animator's GUI with the desired component-instance. This is a bit of a bother. I bet there is a direct way to create a movement action that only applies to one instance of a component definition but I don't know what it is.
-
Tom,
In principle, Animator treats each instance of a component as a separate object.
However, if an object is embedded within a super-component, and you apply a transformation to the object, then all instances of the object within the super-component instances will also be transformed. This is because the transformation is applied relative to the parent.
This is the same behavior as in Sketchup. I guess that if you manually move the object via a Sketchup native tool, you will observe the same propagation.
Tell me if not the case.
Fredo
To remove the movement, I think the method you mentioned is fine. Just suppress the sequence via the Maintenance dialog box.
-
Hi Fredo, OK good to know more precisely the behavior of Animator with respect to nested components - thanks. I don't think SketchUp works in the same way, though at this point you probably don't want to change Animator behavior because a behavior-change would break compatibility with existing model animations that people have been creating.
In native SketchUp if you modify the content of a component then all instances of the component are automatically updated. In other words, if you open for editing any instance of a given component definition and make a change, that change applies to the definition and therefore all instances will instantly reflect the change (regardless of nesting). However, if you make a change from the "outside" of a component instance - to alter its position or overall scale, for example, that change only applies to the selected instance(s). This is not affected by how instances of the component might be nested within other components or groups.
I'll try to remember to make-unique any component instances before applying instance-specific animator actions to them.
- Tom
Advertisement