スクリプトリスナーは、レイヤーマスクに関してはあなたの友人です。彼らは少し痛みがあるので。 レイヤ名が与えられたときにここでレイヤーマスクを選択する機能があります
あなたはコピーして、新しい層
// FUNCTION SELECT MASK
function selectMask(LayerName)
{
try
{
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk '));
ref.putName(charIDToTypeID('Lyr '), LayerName);
desc.putReference(charIDToTypeID('null'), ref);
desc.putBoolean(charIDToTypeID('MkVs'), true);
executeAction(charIDToTypeID('slct'), desc, DialogModes.NO);
// =======================================================
var id1083 = charIDToTypeID("setd");
var desc238 = new ActionDescriptor();
var id1084 = charIDToTypeID("null");
var ref161 = new ActionReference();
var id1085 = charIDToTypeID("Chnl");
var id1086 = charIDToTypeID("fsel");
ref161.putProperty(id1085, id1086);
desc238.putReference(id1084, ref161);
var id1087 = charIDToTypeID("T ");
var ref162 = new ActionReference();
var id1088 = charIDToTypeID("Chnl");
var id1089 = charIDToTypeID("Ordn");
var id1090 = charIDToTypeID("Trgt");
ref162.putEnumerated(id1088, id1089, id1090);
desc238.putReference(id1087, ref162);
executeAction(id1083, desc238, DialogModes.NO);
}
catch(e)
{
//alert("This layer has NO layer mask!");
activeDocument.selection.deselect();
}
}
に適用することができるはずです(と仮定すると、それが存在します)