The solution we came up with worked, but it has to do with both NUKE and MAYA. Here's what we did:
INSIDE MAYA
The default shake expressions are applied to a parameter called 'verticalShake' and 'horizontalShake'. Unfortunately, nuke can not read that.
camera1Shape.verticalShake = noise(frame/15);
camera1Shape.horizontalShake = noise(frame/20);
However, it CAN read it if it's applied to the filmback (and the maya documentation explains these properties are identical in nature). So we copied those expressions and applied them to the film offset parameter in maya.
camera1Shape.verticalFilmOffset = noise(frame/15);
camera1Shape.horizontalFilmOffset = noise(frame/20);
We then baked those two channels (and disabled the checkbox for Shake). Exported it out as FBX and brought it into nuke.
INSIDE NUKE
Here is where things get a little tricky. Nuke and Maya use two different measurements (inches vs mm) for film backs as well as where it places the center of the offsets. Nuke uses NDC coordinates (-1 < 0 < +1) where the center of frame is 0 in both x&y. Maya does not.
To alleviate the issue we have to do a little math inside of nuke for the camera to match perfectly.
- Import the camera into nuke and uncheck 'read from file'.
- Create a 2D position user knob called 'mayaFilmOffset' and copy the values from U and V to this new knob.
- Then delete the U and V keyframes.
- Then apply this expression to the U & V window offset values.
- U: (2/haperture)*(mayaFilmOffset.x*25.4)
- (((root.format.h/root.format.w)*2)/vaperture)*(mayaFilmOffset.y*25.4)
Once all that is done the camera will match perfectly to the camera that was inside of Maya!