Hey Everybody!
I’m modelling and animating a fictional aircraft for an independent film I’m making this summer. I’ve had experience in modelling and animation, but there’s one thing that I haven’t been able to figure out…
Is there a way to make an object rotate at a constant rate? Keyframing is still a little funky, like I can’t just rotate something with keyframes, it takes the quickest route it can by bypassing a 360 degree rotation. I’m wanting to have some spinning pieces like propellers and gears on this craft and want to animate them in Blender.
I’m sure the answer is just sitting under my nose, but I have no idea where to look!
Thanks!
Alex
Open up the IPO Curve Editor window with your object selected . Select The axis you want to rotate on by LMB selecting either the RotX/Y/Z curve . Ctrl-LMB in the IPO window . Do this twice . And with the curve selected go to the IPO header -> Curve -> Extend Mode -> Extrapolation . This will make your object rotate for ever . The sharpness of the slope determines the speed of rotation . The direction of the slope determines the direction (a slope going up from left to right turns your object counter clockwise etc.) .
This is for objects only armature bones require some different steps … but stuff like props and such shouldn’t use bones in the first place …
Or you can use a driver. Personally I’d use a python driver that said self.RotX (or y or z) +1 (or some other arbitrary number to give you the speed you want) this way it constantly rotates while the animation is playing
Aha! Thank you both! I did the extrapolation property and it worked. I really like the idea of using a driver, but I’m not really sure how to do it… StarRanger4 could you tell me how to do that, I think I have the right idea but I’m missing something…
Ok. Select the object your going to work with, then go into the IPO editor window.
Choose the ‘Channel’ you want to have driven, then hit cntl-N, just like you would to bring up the properties panel in edit mode. You should see something like this:
![]()
at this point you can either tell it to drive the channel via another object, or by clicking on that faded snake you get the python expression box. Inside the python expression use self to tell python your talking about the selected object instead of any other, and then what chanel. So if you were rotating the x axis the statement should be
self.RotX + n
where n is a number that represents by how much you want RotX to increment every frame in degrees.
A caveat: manually reset the rotations back to 0 inbetween animation passes. you dont HAVE to, but you will have problems eventually when value X grows larger than the precision allotted to it.