Even if you open as an object from ACR? According to the help file: "Press Shift while clicking Open Image to open the image as a Smart Object in Photoshop. At any time, you can double-click the Smart Object layer that contains the raw file to adjust the Camera Raw settings." This tells me that the Smart Object is still actually the RAW file itself and has not yet been rendered. But I really don't know for sure.
Example: I open up a file as object from ACR (Hold shift while clicking "Open Object" button). If I make a copy of that layer (drag down to create new layer) then right-click on the layer name and choose "Edit Contents" it reopens the ACR dialog. I can make changes to this and whatever changes I make are processed on all normal copies of this layer. I can make as many changes as I want and each time I reopen the ACR dialog in this manner, the last settings that I used on that layer are active regardless of what the original sidecar file holds.
If I right-click on the layer and choose "New Smart Object via Copy", that creates a new layer also, but the "Edit Contents" settings in ACR are independent of the layer it was copied from. I can then change this layer as much as I want and those settings are preserved and changeable until I rasterize the layer or convert to Smart Object. In this manner, I can create as many independent Object Layers that can be reopened in ACR to have new settings applied.
I'm trying to find where those settings are kept. They are not in the original sidecar file nor any other file I can find with a search. This leaves me with my first option of opening up the same RAW file multiple times from disk after altering the sidecar file for the changes I want then copying all the layers into one document.
Here is what I had in mind. Note the document is the same size as the raw file. This will place 5 copies of the raw file in the activeDocument, each with a different exposure.
var rawFile = new File( "~/Desktop/DSC_5396.NEF" );
var xmpFile = new File( "~/Desktop/DSC_5396.xmp" );
var exposures = ['-2.0','-1.0','0.0','1.0','2.0'];
for(var e=0;e<exposures.length;e++){
setExposure( xmpFile, exposures );
placeFile( rawFile );
}
function setExposure( file, exp ){
file.open('r');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.open("r", "TEXT", "????");
var xmpStr = file.read();
file.close();
loadXMPLibrary();
var xmp = new XMPMeta( xmpStr );
xmp.setProperty( XMPConst.NS_CAMERA_RAW, "Exposure", exp );
file.open('w');
file.encoding = "UTF8";
file.lineFeed = "unix";
file.write( xmp.serialize() );
file.close();
};
function placeFile( file) {
var desc = new ActionDescriptor();
desc.putPath( charIDToTypeID('null'), file );
desc.putEnumerated( charIDToTypeID('FTcs'), charIDToTypeID('QCSt'), charIDToTypeID('Qcsa') );
var offsetDesc = new ActionDescriptor();
offsetDesc.putUnitDouble( charIDToTypeID('Hrzn'), charIDToTypeID('#Pxl'), 0.000000 );
offsetDesc.putUnitDouble( charIDToTypeID('Vrtc'), charIDToTypeID('#Pxl'), 0.000000 );
desc.putObject( charIDToTypeID('Ofst'), charIDToTypeID('Ofst'), offsetDesc );
executeAction( charIDToTypeID('Plc '), desc, DialogModes.NO );
};
function loadXMPLibrary(){
if ( !ExternalObject.AdobeXMPScript ){
try{
ExternalObject.AdobeXMPScript = new ExternalObject
('lib:AdobeXMPScript');
}catch (e){
alert( ErrStrs.XMPLIB );
return false;
}
}
return true;
};
function unloadXMPLibrary(){
if( ExternalObject.AdobeXMPScript ) {
try{
ExternalObject.AdobeXMPScript.unload();
ExternalObject.AdobeXMPScript = undefined;
}catch (e){
alert( ErrStrs.XMPLIB );
}
}
};