PDA

View Full Version : Making objects orbit around a central object?



Hobo Joe
27-Nov-07, 18:45
Is there some sort of plugin that would make it so that I could make a bunch of objects do a circular orbit around one central object?

I'm trying to make an animation that includes 'atoms', by making a large number of 'electrons' orbiting around the nucleus, but I'm planning on making several, each having a large number of orbits on them, and doing this with the IPO takes a VERY long time. I'd have to do each one individually and tweak it until the orbit looked properly circular.

If not, I'd be glad to accept other methods for pulling this off. Thanks in advance!

enhzflep
27-Nov-07, 19:19
How are you doing it at the moment I wonder?

Whenever I want to do something like this, I just set the object center to be at the center of rotation i.e the atoms nucleus, create a visual Rot keyframe on frame1 then advance forward about 50 or so and place another keyframe for visual Rot. I then select the IPO curve, tab into it to edit, select the 2nd vertex, then hit N to bing up the transformation dialog. I just set in Ymax & VertexY to 36.0 and I'm done. My object will now rotate 360 degrees around a central point in the number of frames I want. I suppose it takes me something like 30 seconds to create the object and have it rotate around a central point.

I suppose you could do this in python fairly rapidly. There's a script somewhere in the python section that I wrote for importing camera tracking data from BouJou4. Perhaps this will have the information in it that you need for accessing objects and setting their IPO curves.

I'd imagine you'd use an empty as the center i.e Center_1, Center_2, etc then use object names that identified them as belonging to this center_point. i.e Electron1_c1, Electron2_c1, Electron1_c2, Electron2_c2.

In this way, you could setup the whole scene, run the python script and be done with it. Of course when you start getting into arbitrary axis of rotation(not just on X, Y or Z) and or variable speeds of rotation, this script will get a little more complex, though it shouldn't be too bad, I suppose.

Hobo Joe
27-Nov-07, 19:36
How are you doing it at the moment I wonder?

Whenever I want to do something like this, I just set the object center to be at the center of rotation i.e the atoms nucleus, create a visual Rot keyframe on frame1 then advance forward about 50 or so and place another keyframe for visual Rot. I then select the IPO curve, tab into it to edit, select the 2nd vertex, then hit N to bing up the transformation dialog. I just set in Ymax & VertexY to 36.0 and I'm done. My object will now rotate 360 degrees around a central point in the number of frames I want. I suppose it takes me something like 30 seconds to create the object and have it rotate around a central point

Could you elaborate on that a little bit? I started to manually key in the orbiting object by creating a key, moving forward a few frames then rotating the object 90 degrees, then adjusting the IPO to make it look more like a circular orbit, rather than straight lines between all the points I keyed in.

And as for making a script myself... Well, I don't know anything about python, so that's kindof out of the question....

enhzflep
27-Nov-07, 19:45
Sure I can.

I'm due elsewhere just now, though I'll be back in about 5hrs, so I'll go into it further as soon as I return if it's solved for you already.

S.

grimey
27-Nov-07, 23:44
I believe pydrivers would be easier than keying since they're mathematical functions. And here's a new script that might be helpful http://blenderartists.org/forum/showthread.php?t=103587

MorbidDog
28-Nov-07, 00:17
one of the easiest ways of doing this would be to put an empty at the center of wherever you want your object to be orbiting around and then parent the object that is to be orbiting to the empty then select the empty and insert a keyframe for the rotation and then go up however many frames you want depending on the speed and then insert another frame and edit the keyframe and move the z up 36 on the y axis and then select extrapolate for your extend mode and your object will rotate around the z axis of the empty, if necessary i can provide a .blend to demonstrate

Hobo Joe
28-Nov-07, 00:39
one of the easiest ways of doing this would be to put an empty at the center of wherever you want your object to be orbiting around and then parent the object that is to be orbiting to the empty then select the empty and insert a keyframe for the rotation and then go up however many frames you want depending on the speed and then insert another frame and edit the keyframe and move the z up 36 on the y axis and then select extrapolate for your extend mode and your object will rotate around the z axis of the empty, if necessary i can provide a .blend to demonstrate

It would be nice if I could get a .blend, because I'm having a hard time understanding exactly what it is you're trying to describe.

Thanks! :o

hunter551
28-Nov-07, 01:10
Parent the objects to an empty that is at the centre of rotation and then rotate the empty.

Hobo Joe
28-Nov-07, 10:09
Parent the objects to an empty that is at the centre of rotation and then rotate the empty.

Thanks, that fixed the problem of an inconsistent circle. Looks like I'll still have to do each object by hand though.


Thanks for all the help, everyone!