Animation - Translation against a cylinder

Started by CoalHedgehog, May 22, 2017, 03:26:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

CoalHedgehog

If I have a set of objects around a cylinder, can I animate them all to move away from the cylinder based on the relative object angle?

That doesn't really make any sense, so have an image:


mattjgerard

Well, if this is looking top-down, (which for some reason my brain immediatly assumes this is an arieal view), you would just animate in the + or - direction of the coordinate system. If you are in Global mode, then the top circle would be +Z, the bottom would be -Z, right one would be +X and left would be -X. That would move them away from the center.

Here's where it gets complicated-

If you select each small circle individually, you can go into LOcal mode on the coordinates for that object only. You can then rotate that object so that the -Z is facing away from the center object. Then if you animated each individual object along its own Z coordinate vector (which would be pointing towards/away from the center) then you could use the same value to animate, but you'd still have to perform 4 seperate animations. Or, create one, then copy/pasta 3 times.

If that doesn't make sense I'll try to make a diagram like you so kindly did.

CoalHedgehog

Thanks for your reply, mattjgerard. It makes perfect sense, and works to a point.

The problem is when another two balls are added in between each existing set, giving a total of 12 balls.

There doesn't seem to be a consistent or accurate way of moving them as both X and Z need input.

Having Z face away from the centre would work, but with the start point always at different angles, it's almost as much effort working out which way to position Z.

I don't think there is going to be an answer tbh, and I'll probably end up linking this thread on the Wish List forum.

mattjgerard

Yeah, it would be a lot of work to make it all work. The only thing is that its all math, so for the balls at the 45's, that would require those to be rotated on their local axis 45deg so the z+ would be pointing away from the center ball. Here's something I just knocked together. I rotated the individual outer objects so thier z axis pointed in towards center, then all I had to do was animate one object in its Z direction, then copy/pasta the animation to the other objects and they all move towards/away from the center. All using just the individual object Z axis animations. There's the ksp file attached too so you can pull it apart and see how it works.

Is this what you are looking to accomplish?

Will Gibbons

The only way to do this is follow proper assembly structure in 3D modeling package. If each smaller item is created and has its own local set of axis, then is inserted as sub-components into an assembly, in KeyShot, you just create an animation on one part in the local axis you want it to move. Then right-click this animation and paste it as a linked animation in the scene tree to the others you wish to translate.

In this webinar, I walk through exactly how this is done. There's also a PDF provided in the description of the video you can download to follow along. https://www.youtube.com/watch?v=d8m8KPv6bLo

mattjgerard

Quote from: Will Gibbons on May 26, 2017, 06:49:35 AM
The only way to do this is follow proper assembly structure in 3D modeling package. If each smaller item is created and has its own local set of axis, then is inserted as sub-components into an assembly, in KeyShot, you just create an animation on one part in the local axis you want it to move. Then right-click this animation and paste it as a linked animation in the scene tree to the others you wish to translate.

In this webinar, I walk through exactly how this is done. There's also a PDF provided in the description of the video you can download to follow along. https://www.youtube.com/watch?v=d8m8KPv6bLo

If you are importing individual objects into Keyshot from multiple files, would the solution I proposed work? It is doing the same thing you described, just directly in Keyshot without having to use an external 3d program. It seemed to work pretty well when I set it up, and worked as expected. Just wondering why you are stating that the only "proper" way to do this is in an external program when KS can handle it just fine? It probably would make more sense to do it in the 3D app if the person is using C4D or blender or something to build the scene I suppose.

Will Gibbons



If you are importing individual objects into Keyshot from multiple files, would the solution I proposed work? It is doing the same thing you described, just directly in Keyshot without having to use an external 3d program. It seemed to work pretty well when I set it up, and worked as expected. Just wondering why you are stating that the only "proper" way to do this is in an external program when KS can handle it just fine? It probably would make more sense to do it in the 3D app if the person is using C4D or blender or something to build the scene I suppose.
[/quote]

If you have a proof of concept and it's functional, then yes. It works. Based on my personal experience, KeyShot assigns a local axis based upon how the geometry is imported, not as it's rotated within KeyShot. So, in some cases, if you go about it with the method you describe, KeyShot will see the local axis as imported and it won't work the way you intend it to. Having it set up on import is just more robust.