# Autoshot Overview Source: https://docs.lightcraft.pro/autoshot/autoshot-overview Autoshot is the desktop or laptop counterpart to Jetset. It works as a connecting piece between traditional 2D or 3D digital content creation tools like Blender, Unreal, After Effects, Nuke, Maya, etc. and Jetset. ## The Main Loop Jetset and Autoshot work with these tools in a well-defined ‘loop’. The loop consists of 4 basic steps: * Place scene locators (empty 3D objects named sceneloc\_\*) in the original scene in locations that will be matched to specific points in the live action shoot * Export a subset of the main scene as a USD file set, including the scene locators, convert the USD files into a single packaged ‘blocking proxy’ USDZ file, and push the USDZ file to Jetset over the local network using Autoshot * Load the proxy USDZ file into Jetset, pick a live action origin, and pick the desired scene locator from the scene. * Shoot a take with a real time preview of the live action and CG interaction * Pull the take data back to the desktop or laptop wirelessly using Autoshot, and pick which shot take you want to process. * Still in Autoshot, choose which target application you want to create a shot package for, and the color space/gamut of the footage. * Hit Run, and Autoshot will extract an image sequence from the shot takes, package up the camera tracking data, and write out a script file that will directly import the completed shot package into the original 3D app, or other 2D & 3D applications used in the production pipeline. This whole process can be run in a couple of minutes, and is the core design of Jetset & Autoshot. # Output Directory Structure Source: https://docs.lightcraft.pro/autoshot/directory-structure Autoshot has a flexible system to create an output directory structure to match your VFX pipeline. ## Default Output Directory Note -- this was originally created to match the ETC 'Pathways' folder structure, but it's a well structured file and folder naming convention. ### Definitions ``` {SEQ} Sequence number e.g. PTH_001 {SHOT-CODE} Shot code composed of sequence + shot number e.g. PTH_001_170 ``` ### Directories ``` /{SHOT-CODE} /3D /BlenderFiles /BlenderRender /v00 /Editorial /Plate /v01 /Proxy /v01 ``` ### Example: PTH\_002\_210 ``` /PATHWAYS/ /PTH_002_210/ /3D/ /BlenderFiles/ /PTH_002_210_v001.blend /PTH_002_210_v002.blend /BlenderRender /SLP_v001/ /PTH_002_210_SLP_v001.mp4 (Slap Comp) /BRN_v001/ /PTH_002_210_BRN_v001_01001.EXR (Blender Render) /PTH_002_210_BRN_v001.mp4 /Editorial/ /Plate (ACEScg EXR image sequence from camera original) /v001 /PTH_002_210_PLT_v001_01001.exr /Proxy (sRGB JPEG Downsample of Plate) /v001 /PTH_002_170_PRX_v001_01001.jpg /PTH_002_170_PRX_v001.mp4 ``` # Folder Setup Panel Source: https://docs.lightcraft.pro/autoshot/folder-setup-panel The Folder Setup panel shows the locations of the main directories used by Autoshot. ## Project Directory The Project directory is the parent project folder. A new folder is typically created for each separate project or client. Autoshot will use this folder to create 3 subfolders: * Takes * Assets * Sequences ### Takes The Takes folder is where Autoshot will sync takes to. The takes directory structure mirrors the way files are stored on Jetset. A separate dated folder is created for each individual day of shooting; this folder contains the day’s takes. Underneath that folder, a Camera folder is created. This will be named A, B, C, D, etc. depending on which camera the Jetset app was set to. Inside the Camera folder are subfolders for: * Scans (if created) * Images (if 2D background images were added to the scene, they are stored here for later use) * Metadata (contains the JSON files where the tracking data and shot metadata are stored) * Videos (contains the iOS camera original, real time composite, and depth videos for each take) ### Assets The Assets folder is generated for an optional location for project assets, such as USD and USDZ exports ### Sequences The Sequences folder is where Autoshot will place all data and files generated as part of processing takes for use in post production. Sequences are stored by the date of the take processed, with subdirectories showing the individual takes from that day that are processed. Inside the individual take directories are subdirectories that contain the actual generated files: * aimattes: Autoshot-generated 8 bit greyscale images, written in PNG RLE format. * blend: generated Blender files * camEXR: EXR files extracted from the iOS camera original video * camPNG: PNG files extracted from the iOS camera original video * cinecamEXR: EXR files extracted from the cine camera original. These are ACEScg format and DWAA compressed by default, with ZIP compression optional * c4d: generated Python file for C4D import * nuke: generated Python files for Nuke import * syntheyes: generates Sizzle script for Syntheyes import * maya: generated .ma file for Maya import ## Cine Camera Directory The Cine Camera directory is where Autoshot will search to find camera original files, such as BRAW, ProRes, or log .mp4 files. Autoshot can directly read ProRes and .mp4 files, so if camera original files are in these formats, proxies are not needed. ## Cine Proxies Directory The Cine Proxies directory is where Autoshot will search for matching proxy files for the cases where it cannot read the camera original files directory (BRAW and other RAW file formats.) In this case, Autoshot needs both the Cine Camera directory and the Cine Proxies directory to be pointed to directories containing the files. When the ‘Scan’ button is pressed next to the Cine Camera directory, Autoshot will search through either the camera originals, or in the case of RAW file formats the proxies folder. ### Detecting ID and Timing It will load each take, and search through it to detect the black and white ID/timing markers that are displayed on the Digital Slate browser at the beginning of every Jetset take. It uses this information to match a given Cine take to the correct Jetset take, and to calculate the correct cine offset timing for the tracking data. ### Image Sequence Extraction Then, when a sequence is processed, and the camera original is a ProRes, .mp4, or .mov log file, Autoshot will extract EXR files directly from the same camera original file it found ID and timing from, and convert these frames to ACEScg formatted EXR files. If the camera original file is in a RAW file format, such as BRAW, the files in the Cine Camera directory will be used for the actual EXR extraction, as they contain the full captured color information from the cine camera. ## Hotkeys/Shortcuts **Shift-Scan** will erase the stored table of take file to cine video file matches, and re-scan the cine video files. **Shift-Browse** on the Project Folder Browse button will pull up a list of the most recent project folders. # Pasting File Paths on the Mac Source: https://docs.lightcraft.pro/autoshot/paste-file-path-mac Use this trick to paste file paths on the Mac. This is useful when running scripts in SynthEyes and other tools. After running Autoshot to generate a SynthEyes (or other) script, you’ll need to point SynthEyes to the correct directory to run that script. You can click the highlighted file line in Autoshot to open up a Finder window that is set to the correct directory, and then select and copy the file path that is at the bottom of the Finder window. So — how do you then paste a file path on the Mac? The answer (from user JPTX1292!) is to use Command+Shift+G anywhere inside the Finder file browser, or whenever a 3rd party software uses the Finder window to retrieve a file! Here’s the sequence in SynthEyes: # Sync Panel Source: https://docs.lightcraft.pro/autoshot/sync-panel The Sync panel is used to identify, select, and sync files from Jetset devices on the local network. ## Jetset Clients List The ‘Jetset Clients’ panel lists all Jetset devices found on the local network. This happens automatically, or whenever the Refresh button to the right of the panel is clicked. (The iOS devices must be actively running Jetset to be detected.) Users can click to highlight on individual detected Jetset clients. ## Current Project The Project text box below will show the name of the project that the currently selected Jetset client has active. This way, one can avoid accidentally synchronizing takes from one project into another’s working folders. The 'Sync To' box directly below the 'Project Name' shows the name of the currently selected Autoshot project folder. Jetset will check to make sure that the 'Sync To' directory name has the same name as the currently selected 'Project Name' folder, and show a red warning if the names don't match as a courtesy to the user. This won't stop you, however from syncing the files if you click the Sync button. ## Manual Connection If the Jetset devices aren’t detected automatically, it’s possible to manually enter in the IP address of the device into the IP address line, and then click Connect. The Jetset device should then be listed in the client list. ## Open Web Page The Open Web Page button will open a browser window pointed to the IP address of the currently selected Jetset client. This is usually faster and more convenient than manually typing in the IP address into the browser address bar. ## Sync Date Selection The Sync Date dropdown lets you pick which date of recorded takes that you wish to synchronize. You can also choose ‘Sync All’, to synchronize all of the takes of a given project to the current Autoshot project directory. ## Sync Button The Sync button next to the Sync Date dropdown triggers the actual take sync process. Takes are synced by comparing the files in the local project folder with the files in the selected Jetset device; this way only missing files are synced, saving time. ## Sync Options * Match File Size checks to see that the copied file has exactly the same number of bits as the source file. This should be checked by default. The only reason to uncheck it is when syncing to a Google Drive device. Google Drive pads the file sizes by 512 byte intervals, so that the copied file is actually slightly larger in size than the source file. * Verbose sends detailed debugging information for the file cloning process to the console. This can be useful when debugging file transfers. # Take Selection Panel Source: https://docs.lightcraft.pro/autoshot/take-selection-panel The Take Selection panel lets users pick which take they will be processing.. ### Day and Take The Day dropdown shows the list of the shooting days from the current project in Autoshot. The Take dropdown shows the list of the available takes from that shooting day. The Open button next to the Take dropdown will be a frequently used button. This opens up a file explorer to the Autoshot-created take subdirectory in the current project folder hierarchy. This is very useful for directly jumping to the various generated scripts and files that Autoshot generates for a given take. ### Take USDZ and Sceneloc The Take USDZ line shows which USDZ file was loaded when the currently selected take was active. The Sceneloc line shows which scene locator was active when the currently selected take was active. ### Cine Focal Length/Angle These are only active when a Jetset Cine take is loaded. Cine Focal length shows the calibrated focal length of the currently selected take. This is based on the horizontal field of view angle shown to the right combined with the entered sensor width at the time of calibration. The Angle field to the right of the Cine Focal Length field shows the HFOV value calculated during the Jetset Cine lens calibration. This is an actual value determined directly from the lens and sensor width parameters. ### Cine Calibration, Solve/Resolve, and GUI Check The Cine Calibration line shows the filename of the Cine lens calibration that was loaded when the current take was recorded. The Solve/Resolve button is used to calculate the actual 3D cine lens position offset, field of view, and lens distortion from the captured frames of a Jetset Cine calibration. If this calculation has already been done, the button will show Resolve instead of Solve. The Solve/Resolve process uses the integrated COLMAP solver (included in the Autoshot Tools install) to perform this calculation. The GUI check button can be used after a 3D solve has been completed. This will open up the COLMAP GUI so that you can check where the various camera positions were found in the solve, as well as the 3D point cloud from all the matched 3D points in the solve. The COLMAP GUI button is just used as a debugging tool, and isn’t a necessary step to running Cine takes like the Solve button is. ### Cine Footage Matched The Cine Footage Match line shows the name of the cine video take that matches the current Jetset take. This can be determined automatically via digital slate matching or timecode matching. If the automated methods don't work, the take can be manually selected with the *Manual Pick* button. ### Cine Time Offset The Cine Time Offset panel shows the time offset (in seconds) from the beginning of the current cine video clip in the 'Cine Footage Match' line to the beginning of the currently selected Jetset take. This is calculated either with the flashed markers of the digital slate, or with the automated timecode match. Note that the timecode based match is not as accurate as the digital slate match; for this reason we recommend clicking the 'Refine Offset' button after doing a take match based on timecode. The 'Refine Offset' button will trigger a quick optical flow analysis between the cine footage and the Jetset video; this data will be used to refine the Cine Time Offset. Using Cine Time Offset is not recommended for digital slate matches as the slate is more accurate. # After Effects Source: https://docs.lightcraft.pro/compositing/after-effects Autoshot has an AE exporter that can automatically assemble rendered frames and camera originals into a composition. ## Setup and Script Export In Autoshot: * Under Run Values/Program, choose ‘Others’ * Set the Clip In and Clip Out frames to specify which frames you want to extract. * The After Effects workflow does not yet use scene locators, so you don’t need to specify which one. * Set the camera manufacturer and color space of the source clip. All Autoshot EXR files are automatically converted to ACEScg. * You can specify an AI matte processor if you want mask shapes for the human figures in the footage. * Next, hit Save and Run. Autoshot will then run the EXR file extraction and write out a .jsx file into the /ae directory under the created sequence directory. To find this directory, click the ‘Open’ button next to the selected take in the Take dropdown selector. This will open a File Explorer to the correct directory. To run this script in After Effects, go to File -> Scripts -> Run Script and navigate to the /ae directory above, then choose the generated .jsx file. This will create a new composition with the footage and tracked camera loaded. ## Verifying Project and Footage color This is a good start, but we want to verify that the color is correct. By default, the generated AE script will set the After Effects project to ACES color management. You can verify this with File -> Settings: Finally, we’ll right click on the EXR sequence under the Project panel and choose Interpret footage -> Main. Pick the Color tab and then select scene\_linear: ACES – ACEScg: Now the displayed color in After Effects should be correct. Please note that there is a Keylight effect applied to the footage by default. # Multi-Peel in SynthEyes Source: https://docs.lightcraft.pro/compositing/multi-peel-syntheyes This is a great way to automated your multiple feature detection and ‘peeling’ process, using a Synthia script developed by Matt Merkovich. ## Synthia Natural Language Synthia is a natural language interface; it provides a great way to automate SynthEyes tasks for tracking artists that don’t want to deal with the technical details of Sizzle or Python, the other scripting languages that SynthEyes supports. To get an idea of how easy it is to automate tasks, here’s the script: *** //Multi-Peel MATTMERK Style say ““. say “Don't multitask while running: check email, twitter, etc. 😉“. say “It will grab window focus and crash the script“. say ““. features room. make current camera’s small blip density 0.008. make current camera’s big blip density 0.004. make current camera’s small blip size 8. make current camera’s big blip size 16. make current camera’s maximum tracker count number of frames\*2.2. click and wait for “blips all frames” button. //wait 2 seconds. click and wait for “peel All” button. //wait 2 seconds. clear all blips. make current camera’s small blip size 12. make current camera’s big blip size 24. click and wait for “blips all frames” button. //wait 2 seconds. click and wait for “peel All” button. //wait 2 seconds. clear all blips. make current camera’s small blip size 16. make current camera’s big blip size 32. click and wait for “blips all frames” button. //wait 2 seconds. click and wait for “peel All” button. //wait 2 seconds. clear all blips. make current camera’s small blip size 20. make current camera’s big blip size 40. click and wait for “blips all frames” button. //wait 2 seconds. click and wait for “peel All” button. //wait 2 seconds. clear all blips. *** ## Usage Instructions * Download the Multi-Peel script from [https://lightcraft.pro/downloads/](https://lightcraft.pro/downloads/) * Select Script->User Script Folder in SynthEyes to open the User Scripts folder. * Copy the Multi-peel\_MATTMERK\_Style.sia file from Downloads into the User Scripts folder. * Pick File->Find New Scripts in SynthEyes. * The script can now be run from the Script menu; it will appear alphabetically in the list. # Nuke Source: https://docs.lightcraft.pro/compositing/nuke Autoshot has an AE exporter that can automatically assemble rendered frames and camera originals into a composition. ## Setup and Script Export In Autoshot: * Under Run Values/Program, choose ‘Others’ * Set the Clip In and Clip Out frames to specify which frames you want to extract. * Make sure to select the Scene Locator that was used in the take to have the 3D tracked camera and scene scan mesh show up in the correct position in Nuke’s 3D coordinate space. * Set the camera manufacturer and color space of the source clip. All Autoshot EXR files are automatically converted to ACEScg. * You can specify an AI matte processor if you want mask shapes for the human figures in the footage. * Next, hit Save and Run. Autoshot will then run the EXR file extraction and write out a python file into the /nuke directory under the created sequence directory. To find this directory, click the ‘Open’ button next to the selected take in the Take dropdown selector. This will open a File Explorer to the correct directory. To run this script in Nuke, go to File ->Run Script and navigate to the /nuke directory above, then choose the generated .py file. The script will generate a node group. Nuke Non-Commercial and Nuke Indie are limited to 10 nodes per Python script run, but the essential nodes are all there: * EXR loader for the camera footage EXRs in ACEScg format * EXR loader for the Undistort STMap generated by Jetset Cine’s lens calibration * A loader for the 8 bit grey scale AI Mattes (if generated) * STMap node to undistort the camera footage * An Axis node with the position and orientation of the chosen Scene Locator * A ReadGeo node to read the scanned mesh in, and a Wireframe node to set it to wireframe. * A Camera node with the animated track associated with the camera frames * A Scanline Render node to see the combined 2D/3D join * A Write node pre-configured to write to the /compEXR and /compJPG directories for saved EXR and JPG proxy renders ## Verifying Project and Footage Color Double clicking the camera original footage node will bring up the Loader panel, where you can confirm that the footage is being correctly interpreted as ACEScg: Hit L on the keyboard to play through the footage and verify the tracking match: