I want to create a simple expression that will rotate an object based on the current time.
You can assign a Float Script Controller to the respective rotation sub-controller and use the current Time global variable to get the time.
FOR EXAMPLE,
if you want to rotate the object about its X axis, you should assign a Float Script controller to the .rotation.x_rotation.controller property:
``` obj = Teapot() obj.rotation.x_rotation.controller = Float_Script() obj.rotation.x_rotation.controller.script = "currentTime"
```
This will rotate the object, but the rotation will be very fast because the time value is taken as radians, causing a full 360 degrees rotation every 6.28 frames!
To take the time as degrees,
YOU CAN USE
``` obj.rotation.x_rotation.controller.script = "degToRad currentTime"
```
This will rotate the object 360 degrees in 360 frames. You can of course multiply the result by any factor to control the exact speed,
LIKE
``` obj.rotation.x_rotation.controller.script = "0.1 * degToRad currentTime"
```
will rotate the object at 360 degrees in 3600 frames...
Another way to do the same is using the Float Expression controller. Unfortunately, it is not completely scriptable.
FOR EXAMPLE
``` obj = Box() obj.rotation.x_rotation.controller = Float_Expression()
```
will assign a float expression controller to the X rotation track.
Now you can open the Expression window by going to the Motion tab, right-clicking the controller and selecting Properties...
ENTER THE EXPRESSION
``` degToRad(F)
```
and press the Evaluate button.
The result should be the same as the Flot Script controller version.