Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

It is possible to specify the distance between camera and object, and the number of revolutions around the object during the simulation. With "orientation" the camera's rotation can be clockwise or counter-clockwise.

The script is for Y-based axis setups. If you have a Z-based axis setup go to → "Camera Operations (Z-Setup)"

Code Block
languagepy
import math

camera           = scene.getCamera("SceneCamera01")
focusObject      = scene.getObject("Cube01")
objectPosition   = focusObject.getParameter("Position")
frame            = scene.getCurrentFrame()
radius           = 1.5
cycles           = 3.0
verticalPosition = 0.5
orientation = 0

if (frame == scene.getMinFrame()):
	camera.setParameter("LookAt", objectPosition)

if (orientation == 0): sign = 1
else                 : sign = -1

simRange    = float(scene.getMaxFrames() - scene.getMinFrame()) - 1.0
degPerFrame = (360.0 / simRange) * cycles
radians     = (sign * degPerFrame * math.pi / 180.0) * frame

xCoord         = math.cos(radians) * radius + objectPosition.x
zCoord         = math.sin(radians) * radius + objectPosition.z
cameraPosition = Vector.new(xCoord, verticalPosition, zCoord)
 
camera.setParameter("Position", cameraPosition)