## CaptureViewport

### Introduced

v1.0

### Description

Captures the viewport into an image sequence.
Note: This command does not work in normal batch mode because it relies on the Softimage user interface. However you can use the "-uiscript" command line argument instead of "-script" to use this command as part of a batch process.

### Scripting Syntax

    CaptureViewport( [Target], [Interactive] );

### Parameters

Parameter | Type | Description
--- | --- | ---
Target | Long | Viewport to capture. Default Value: -1 (the current viewport, or viewport B if no current viewport)
Possible Values: | Description:
-1 | The current viewport (under the cursor)
1 | Viewport A
2 | Viewport B
3 | Viewport C
4 | Viewport D
Interactive | Boolean | Specifies whether running in batch mode (False) or interactive mode (True) Default Value: False

### Examples

#### 1. JScript Example

    /*
            This example demonstrates how to perform a viewport capture via scripting.
            The File Format is specified by the File Name extension. To specify the codec parameters,
            you can save a preset via the UI and then load the preset back by scripting anytime you need it.
            You can also specify the codec parameters by setting the "DSCodec" parameter, which
            contains an encoded string for the codec parameters. The string for a desired set of codec
            parameters can be obtained by doing a capture interactively as following:
            - in a 3D view, click the Camera pulldown menu > Start Capture to open the Capture Viewport dialog
            - select the desired format from the File Format pulldown menu
            - click Codec to select the desired parameters, click OK to exit the codec dialog
            - click OK to start a capture
            The encoded string for the codec parameters is printed in the Script History window. You
            can copy it for future use in scripting.
            You can also get the encoded codec parameters string by scripting, e.g.:
                    LogMessage( GetValue("ViewportCapture.DSCodec"));
    */
    // Get the current frame
    var currFrame = ActiveProject.Properties.Item("Play Control").Parameters.Item("Current").Value;
    // Set the capture options
    var oViewportCapture = Dictionary.GetObject("ViewportCapture");
    // Capture a 1-frame sequence
    oViewportCapture.NestedObjects.Item("Start Frame").Value = currFrame;
    oViewportCapture.NestedObjects.Item("End Frame").Value = currFrame;
    // Specify the output file name
    // The output file format is determined by the extension
    oViewportCapture.NestedObjects.Item("File Name").Value = "C:\\test.mov";
    // Set the Quicktime codec parameters (in this case: "Keyframe every 10 frames")
    SetValue("ViewportCapture.DSCodec", "AAAAFnNwdGxycHphAAAAAAAQAAACAAAAABR0cHJsAAACAAAd+FEAAAAKAAAAGGRyYXQAAAAAAAAAUwAAAQAAAAEAAAAACW1wc28AAAAADG1mcmEAAAAAAAAADHBzZnIAAAAAAAAACWJmcmEAAAAACm1wZXMAAAAAABxoYXJkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKc2RuZQAAAAAADGNtZnJhcHBsAAAAAA==", null);
    // Do not display dialog
    CaptureViewport( 2, false );

#### 2. VBScript Example

    CreatePrim "Sphere", "NurbsSurface", "MySphere"
    SetValue "PlayControl.Out", 40
    ' Setting a key frame on XPos at frame 1
    SaveKey "MySphere.kine.local.posx", 1, -9.0
    ' Setting a key frame on XPos at frame 10
    SaveKey "MySphere.kine.local.posx", 10, 3.0
    ' Setting a key frame on XPos at frame 30
    SaveKey "MySphere.kine.local.posx", 30,-3.0
    ' Setting a key frame on XPos at frame 40
    SaveKey "MySphere.kine.local.posx", 40, 9.0
    ' Setting a key frame on YPos at frame 1
    SaveKey "MySphere.kine.local.posy", 1, -2.0
    ' Setting a key frame on YPos at frame 30
    SaveKey "MySphere.kine.local.posy", 30, 2.0
    SetDisplayMode "Camera", "shaded"
    CaptureViewport 2, true

### See Also

Flipbook Viewport Capture parameters