RV Player in Deadline

Deadline > Tools > Options > Image Viewers >
  • Preferred Image Viewer > CustomViewer1
  • Custom Image Viewer
  • Executable > /opt/rv/rv-centos7-x86-64-2021.1.0/bin/rvpush
  • Arguments > merge {SEQ%}
  • Name > RV

Setting up double click to view in RV Player in Deadline
Deadline > Tools > Options > Monitor Options > Task List >
  • Completed Task double-click Behavior > View Image

RV player in Maya

Maya > Windows > Settings/Preferences > Preferences > Applications > Sequence Viewing Applications
Both “image Sequence & Quicktime (MOV) files
Program : /opt/rv/rv-centos7-x86-64-2021.1.0/bin/rvpush
Optional Flags: -tag playblast merge %f

Maya Problems and Solutions

ERROR: “unknown ref node”
SOLUTION:
maya.cmds.delete('_UNKNOWN_REF_NODE_')
File>OptimizeSceneSize is a 'Delete Unknown Nodes' 

ERROR: Error: [driver_exr] defaultArnoldDriver@driver_exr.RGBA: can’t create file “.exr”:
SOLUTION:
Make sure there is no “/” in front of your “File name Prefix”

Maya Script Clips

Variables

Global vs Local

global int $varname = 3; - This is a global variable and can be seen by other scripts

Defining a Variable

int $varname; - Integer value. Example int $varname = 10;

float $varname; - Float value. Example float $varname = 1.2345;

string $varname; - Creating a string. Example string $varname = "Hello World";

vector $varname; - Creates a 3 digit vector. Example vector $varname = <<1,0,0>> or = <<255,128,0>>;

$varname[]; - This is for arrays

matrix $varname[3][4]; - Creates a Matrix


Int and Floats math

int $varA = 5;
float $varB = 5.123;
$varA + $varB = 10; < - You can get a float out of a int
$varB + $varA = 10.123;

Strings

string $varname; - Creating a string. Example string $varname = "Hello World";

Line Options
"\n" = New line
"\t" = Tab
"\\" = Backslash

Examples:

string $varname = "Hello World";
// Result: "Hello world" //

print ($varname + ", Hello computer" ;
// Result: "Hello world, Hello computer" //

 

Vectors

Vectors are always three floats values

Examples:
vector $varname = <<255,128,0>>;
// Result: <<255, 128, 0>> //

print ($varname.x)
// Result: 255 //

Set a value
$varname = <<123,$varname.y,$varname.z>>;
// Result: <<123, 128, 0>> //

Arrays

int $varname[] = {1,2,3};
float $varname[] = {1.25,2.8,3.0};
string $varname[] = {"one","two","three"};

clear($varname); - Will clear an array out

Examples:

int $varname[] = {1,2,3};
$varname[0] = 9
// Result: 9 //

int $varname[] = {1,2,3};
$varname[0] = 9;
print ($varname);
// Result: 9 //
// Result: 2 //
// Result: 3 //

Looking for a value in a array. This returns a True (1) or False (0).
string $Lists[] = {"one","two","three"};
string $UserInput = "three";

print (stringArrayContains($UserInput, $Lists));
// Result: 1 //

 

 

Matrix

matrix $matrixname[Row#][Column#] = << 1, 2, 3, 4 ; 5, 6, 7, 8 ; 9, 10, 11, 12>>;
// Result: << 1 2 3 4; 5 6 7 8; 9 10 11 12 >> //

1 2 3 4
5 6 7 8
9 10 11 12

 

Script Clips

Get current render
GetCurrentRenderer();
// Result: arnold //

Get list of all render layers
string $GetRenderLayers[]=`ls -type renderLayer`;
// Result: defaultRenderLayer //

getAttr ($isRenderLayerEnabled + ".renderable ") == 1)

Gets frame padding via a number
setAttr ("defaultRenderGlobals.extensionPadding",4);
getAttr ("defaultRenderGlobals.extensionPadding");

// Result: 4 // myrender.####.exr

Gets format type via a number
setAttr( "defaultRenderGlobals.outFormatControl",1)
getAttr( "defaultRenderGlobals.outFormatControl")
  • 1 = name (Single Frame)
  • 2 = name.ext (Single Frame)

Pixel Aspect
setAttr( "defaultResolution.pixelAspect",1.25)
getAttr( "defaultResolution.pixelAspect")

Gets a list of all cameras in the scene
string $all_cameras[] = `ls -type camera`;
// Result: frontShape perspShape sideShape topShape //

 

EXR compression
getAttr( "defaultArnoldDriver.exrCompression" );
// Result: 3 //

32 or 16 bit EXR
getAttr( "defaultArnoldDriver.halfPrecision" );
// Result: 0 //

EXR tiled On/Off
getAttr( "defaultArnoldDriver.exrTiled" );
// Result: 1 //

Auto Crop On/Off
getAttr( "defaultArnoldDriver.autocrop" ) 
// Result: 0 //

MultiPart EXR On/Off
getAttr( "defaultArnoldDriver.mergeAOVs" );
// Result: 0 //

Finding Version name
import os
print "PATH : " + cmds.file(q=True, sn=True)
print "BASENAME : " + os.path.basename(cmds.file(q=True, sn=True).split('.')[0])
print "VERSION : _v"+ os.path.basename(cmds.file(q=True, sn=True)).split('.')[1].split('mb')[0]

Random Rotate:
vector $rndRot = << 0,0,90 >>;
for ($object in `ls -sl -tr`)
rotate `rand ($rndRot.x)` `rand ($rndRot.y)` `rand ($rndRot.z)` $object;

EXR Maya to Nuke

Working on Maya (Arnold) to Nuke best EXR setting for time

Compression Types:
Run Length Encoding (RLE) : This is a basic form of compression that is comparable to that used by standard Targa files.
Zip (16 Scanline) : deflate compression applied to blocks of 16 scanlines at time. This tends to be the most effective style of compression to use with rendered images that do not have film grain applied.
Zips (1 Scanline) : deflate compression with zlib wrapper applied to individual scanlines (not based on the ZIP file format despite its name).

Tiled:
Not great for compositing packages such as Nuke or Fusion

AutoCrop :
If you have a lot of black space this might help cropping out un-used pixels.

Merge AOVs :
This create one EXR file instead multiple pre channel/pass

Arnold to Nuke EXR

FORMAT BIT DEPTH FRAME SIZE GB COMPRESSION TILED AUTO CROP LOAD TIME sec MEMORY WRITE sec
EXR 32 bit 10k 1.7 Zip (16 scanline) Tiled no 3.23 1.6 GB 59.2
EXR 32 bit 10k 1.76 Zip (16 scanline) Scanline no 1.06 1.6 GB 56.5
EXR 32 bit 10k 1.7 ZipS (1 Scanline) Tiled no 1.83 1.6 GB 67.86
EXR 32 bit 10k 1.76 ZipS (1 Scanline) Scanline no 0.01 8.18 KB 52.92
EXR 32 bit 10k 1.76 ZipS (1 Scanline) Scanline yes 0.07 8.18 KB 52.92
EXR 32 bit 10k 14 none Scanline no 0.08 8.18 KB 174.92
EXR 16 bit 10k 0.51 Zip (16 scanline) Tiled no 0.78 1.6 GB 51.26
EXR 16 bit 10k 0.53 ZipS (1 Scanline) Scanline no 0.05 8.18 KB 43.1
EXR 16 bit 10k 0.53 ZipS (1 Scanline) Scanline yes 0.05 8.18 KB 42.95