95
$\begingroup$

I have multiple cameras in a scene. What I want to do is to change which one is active. This way I can view the scene from different angles. How would I do this?

$\endgroup$
132
$\begingroup$

There are a few ways to set the active camera.

  • Key Binding: select it and press Ctrl+ Numpad 0.
  • From the menu:
    3D Viewport Header -> View -> Cameras -> Set active object as camera.

  • Scene property:
    Scene tab in the Properties Editor and pick a camera object from the list: Properties Editor - Scene Tab - Scene Camera

    enter image description here

Animation:

To change the active camera during an animation you can use Markers.

  1. Add a marker where you want to change the active camera (M in the Timeline, or Timeline header > Add marker will add a marker to the current frame):

    enter image description here

  2. Select the object which you want to set as the new active camera and the marker which you want to bind it to, then press CtrlB in the Timeline (or Timeline header > View > Bind camera to markers):

    enter image description here

Note that markers behave like keyframes, so you will need at least two markers with cameras bound to them to have any camera switching.
To illustrate this, here is an example with Camera.001 bound to the marker on frame 1, and Camera bound to the marker on frame 5:

enter image description here


Note: If setting the active camera is only effecting a single view, you may have Scene-lock disabled. In the 3D View header (Right hand side of layers buttons), there is a lock icon. This should normally be pushed in, unless you explicitly want to set a camera & layers only to a single view.

$\endgroup$
  • 1
    $\begingroup$ I just wanted to say that I had problems binding the active camera to a marker then I realized that I had restricted the rendering (the camera symbol on the right next to the camera in the Outliner). Cameras are not visible in the rendered product even if they are right in front of each other. Don't restrict the rendering or the viewport visibility of your cameras. This is a comment to help those noobs who like me were wondering why switching cameras was not working. $\endgroup$ – Miracles Happen Apr 12 '18 at 13:48
14
$\begingroup$

Another way to achieve camera switching in Blender is though the VSE or Video Sequence Editor.

  1. Establish multiple cameras in the scene.

enter image description here

  1. Add a scene strip to the VSE for each camera and set the active camera of the strip to each camera in the scene.

enter image description here

  1. Add a Multicam effect strip above these scene strips and use the buttons to switch between cameras. With a VSE preview window open you will see the switching occur (but not in the 3D view)

enter image description here

This can be used to feed the compositor with time offset scene renders as well. For example you may want to have a repeated action from alternate angles, simply set up the switching in the VSE then drag the scene strip along the timeline.

enter image description here

$\endgroup$
7
$\begingroup$

In order to change the currently active camera, select the one you want to be active and press Ctrl0. This will also change your view to the new camera.

To change cameras mid-animation, you need to use markers. A marker can be added by hovering with your mouse over the timeline and pressing M. Next you need to bind the second camera change with that marker. You can do it by selecting the camera and pressing CtrlB.

NB: It is important to know that markers behave a bit like keyframes, so it is important to add one at the beginning of your animation and bind it to your first camera.

$\endgroup$
4
$\begingroup$

run the following script:

import bpy
import os

scene = bpy.context.scene

currentcam = bpy.context.scene.camera

setcam = False

for ob in scene.objects:
    if ob.type == 'CAMERA':
        if ob == currentcam:
            setcam = True
        elif setcam:
            bpy.context.scene.camera = ob
            break


if currentcam == bpy.context.scene.camera:      
    for ob in scene.objects:
        if ob.type == 'CAMERA':
            bpy.context.scene.camera = ob
            break
$\endgroup$
  • 4
    $\begingroup$ To someone who has no idea how to run a script, how do I run this script and what does it do exactly? Try to add a bit more detail when answering, if the API changes (probably will) then your script will probably become obsolete, a few comments here and there will help. $\endgroup$ – iKlsR Jan 21 '15 at 18:45
  • 1
    $\begingroup$ @iKlsR Of course some more context information would be nice. But I think your requirements would prevent people from posting useful scripts, as it just becomes to tedious. $\endgroup$ – tobltobs Jan 20 '16 at 13:19
  • 1
    $\begingroup$ @tobltobs I agree, however I don't see the harm in appending a line of text to say open the text editor and do this or that or linking to a post that already answers that, it's not time consuming. Could be just me but when I answer I use layman terms and assume you know nothing about Blender. $\endgroup$ – iKlsR Jan 20 '16 at 16:30

protected by GiantCowFilms Jan 21 '15 at 15:21

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.