Rotate around multiple Origins

Hey there, i’m struggeling with a seemingly simple Animation and i could use some Help figuring out how to do it.

I am not sure if the image upload works so here a short explanation:
Picture the default cube wiggeling from his +x edge to his -x edge. He is standing perfectly still, and then goes on and balances himself on one of his edges or vertices. There he holds, to fall back down again swinging to the counter edge or vertice. So i basically want to somehow rotate him around multiple different points, since this isnt a thing, how would i achieve this effect/look in another way?

Is this something that does seem easy but is actually hard to do? or am i missing a really basic thing?

Thanks in advance :slight_smile:

Hey, Welcome to BA !!
It is a bit like you stated about seemingly simple but yet HOW ? I would look into using the ‘Pivot’ constraint and an Empty (you could have multiples) You will have more to animate but you will have the ability to control your ‘pivot’ point. Hint: the P/const rotates on that axis only that you choose other wise it rotates from the object origin - keep in mind its good for only 179.9 degrees of rotation till it ‘flips’. It uses ‘Global’ space.

You should create empties where you want the rotation centers (empty1 for the first rotation center and empty2 for the second), then parent the cube to empty2, parent empty2 to empty1 and rotate the empty1 then empty2

I tried some months ago with Pivot constraint but failed because once you deactivate the constraint, it jumps back in the scene to the position it should have with its own origin as pivot point, but maybe I missed something? Could you share a file with this method?

Hey, glad to be here. Thanks for the fast answer. This seems doable but also very tedious, and as @moonboots mentioned i dont really get how to animate more complex stuff with it since i am not able to animate the different Pivot points between each other without them resetting and getting wild.

Hm any hints on how to keep the empties connected to the specific pivots of my object? It seems like this way, the more down the chain i am animating, after a while more empties start floating around in nothingness, which is obv. cool but not really useful i guess.

here is what it gives, the empties don’t stay connected. I haven’t found another way for this kind of animation (where the pivot point changes throughout the animation), but there may be one:


1 Like

You can measure the distance from plane to cube, and then raise the cube by that amount. All bones in default orientation (local +Y points in world +Z):

  1. Bone “Altitude” at world Z -10000 or so (bigger is better), shrinkwrap to cube.

  2. Bone “AltitudeChild” at same world Z, parent to Altitude, shrinkwrap to plane.

  3. Bone “Copy Altitude” parented to cube (which will turn into a control in just a second) copy locations local->local Y of Altitude Child.

  4. New cube, parented to old cube, with copy world->world Z location from copy Altitude. Hide old cube.

Demo’d this with a file (or something relatively similar) for somebody in the past, but looks like I deleted the file. You might be able to find it by looking through my message history. Above is the general idea, wouldn’t be surprised if I forgot some particular detail, so you’ll want to understand constraints before trying it out, but like I said, I’ve tested the general concept in the past.

Hello Bandages, thanks but my intelligence is super limited ^^ I hope the other ones will understand your method

oh wow sry i dont get that either^^. Its fascinating/annoying how hard this is to realize tough.

Sorry, it’s not directly what you’re looking for anyways-- I was getting ahead of myself. It’s just a way of raising the cube to the appropriate level so that you can move/rotate it manually without worry about the world Z.

If you want to roll a cube, the best way to do it is with rigid body physics. Make a cube, give it rigid body physics, make a non-rendering rigid body with Animated, link the two with a point constraint, drag the Animated RB around.

Rolling a cube around without physics is never going to be right-- it’s the same problem as auto-rotating wheels, it needs to know the entire path, because it’s rotation isn’t a function of where it is, but of where it’s been.

As for the explicit question, yes, Moonboots provides one method to rotate around multiple origins. There are other techniques, like using a pivot constraint, or setting up a movable parent (in same axes as child, child gets invert local-local copy position from the parent.) But they’re not going to be any good for what you’re demonstrating with a cube.

1 Like

ok thank you very much for that detailed explanation. i will try to dive in and create sth from physics, altough i imagine the artistic controle is a bit hard to pull off. Thanks a lot!

Hey, You prob did not miss anything - but here is the ‘Useful’ description/explanation for using the ‘Pivot’ constraint ;;(A) Its only a temporary replacement for an objects pivot point (and that is ONLY useable for 179.9999 degrees) to be used to create an ‘action’ or ‘actions’. (B) Animating the ‘Pivot Offset’ is what is needed and the rotation axis of the object. (C) moving the ‘pivot target’ is tricky and may need to be counter animated using the pivot offset.
So take the default cube and add an empty, add P/const to cube and empty as target (-X rot). Set KeyFrames on cubes X rot (0) and set P/Offset X= 0, Y= 0.5, Z= -0.5 and K/F. Frame 22 re-K/F the offset and rotate cube X -90 and K/F. Frame 44 rotate cube X -179.999 and K/F, set P/Offset X= 0, Y= 1.0, Z= 0 and K/F, only prob is the curves for Y and Z (between 22 and 44) are the opposite of what we need, so they need to be inverted/mirrored on the Y axis in the fcurve editor.
Since this creates an action other actions can be created and use the power of the NLA to get what is needed. But it is a bit of a bummer that after all these years and versions we dont have a better ‘pivot’ constraint.