Estoy tratando de hacer una acción que haga un cambio, luego suba una capa, haciéndola visible en el proceso. Sin embargo, cuando uso los atajos Alt+ ]o Alt+ [, solo alterna las capas visibles. Cuando miro las acciones que he grabado, puedo ver que dice "Sin hacer visible". No veo una forma de cambiar eso, ni puedo encontrar el acceso directo en el menú.
¿Alguna idea aparte de escribir esto manualmente?
(usando Windows 10, Photoshop CC 2017)
Para seleccionar la siguiente capa invisible hacia adelante, haga lo siguiente.
Registre estos pasos como acción, que debería verse como la imagen a continuación
Command/Ctrl+ ,(Coma) alterna la visibilidad de la capa seleccionada por defecto. (apagado y encendido para la capa resaltada)
Agregue la tecla Opción/Alt y activará la visibilidad de todas las demás capas . + +Command/CtrlOption/Alt,
Agregue la tecla Opción/Alt y la tecla Mayús y desactiva la visibilidad de todas las demás capas . + + +Command/CtrlOption/AltShift,
Si eso no funciona para usted, verifique Edit > Keyboard Shortcuts
y desplácese hacia abajo hasta Capas y busque el Hide Layer
elemento para asegurarse de que el acceso directo aún esté asignado. Es posible que deba restablecer los métodos abreviados de teclado al conjunto predeterminado en la esquina superior derecha de la ventana Editar métodos abreviados de teclado.
Si desea mostrar solo la capa seleccionada actualmente, vaya a: Menú >> Capas >> Mostrar capa.
Pero, si quiere mostrar todas las Capas, use: alt ++ para seleccionar todas las Capas ctrl . A Ahora vaya a: Menú>> Capas >> Ocultar capas y luego Menú>> Capas >> Mostrar capas. es una buena práctica cambiar el nombre de la capa antes de hacer esto, para poder seleccionarla de nuevo.
Todos estos dos procesos serán registrados por la acción.
Antes de grabar su acción, asegúrese de que la capa activa esté oculta. Luego, comience su acción grabada con el paso "mostrar capa actual" (marcando la casilla de visibilidad de la capa activa, como de costumbre).
Luego agregue sus ediciones y cierre la acción con Alt+ [para pasar a la siguiente capa en la secuencia.
Explicación: afortunadamente, Photoshop considera que la propiedad "mostrar capa actual" es transitiva y relativa, no fija a la capa en la que se invocó.
Encontré esta pregunta por casualidad y pensé que le daría una oportunidad sin importar lo ridículo que se pusiera... Lo que se me ocurrió es faaaaaaaarr de ideal, pero funciona...
En caso de que no sea obvio... Este es un proceso bastante costoso para obtener la siguiente capa. Si el documento actual es bastante pesado o la computadora no es la más rápida, puede llevar un tiempo ejecutar el script. Dicho esto, parecía utilizable en mis pruebas...
No está claro si OP realmente quería que la siguiente capa fuera visible o si solo pensaba que si podía grabar una acción que la hiciera visible, siempre se seleccionaría. Esto no obliga a que la siguiente capa sea visible, pero si quisieras hacerlo, podrías hacerlo visible después de seleccionarlo:
nextLayer('up');
app.activeDocument.activeLayer.visible = true;
El guión (escrito para PS CC 2019):
// Select Next Layer (invisible or not).jsx
// https://gist.github.com/joonaspaakko/048c9b58ccbb6e6f44c894bf4ce30b68
nextLayer('down');
// direction (↑): "up" or "above"
// direction (↓): "down" or "below"
function nextLayer( direction ) {
var doc = app.activeDocument;
// Doc duplication is necessary because while the History panel can record visibility change, but for some reason it doesn't do that when the visibility command comes from a script... (AFAIK)
var tempDoc = doc.duplicate();
var layer1 = tempDoc.activeLayer;
// Turn background layer into a normal layer
var lastLayer = tempDoc.layers[ tempDoc.layers.length-1 ];
function cTID(s) { return app.charIDToTypeID(s); };
function sTID(s) { return app.stringIDToTypeID(s); };
var layer1ID = activeLayerID();
tempDoc.activeLayer = lastLayer;
var bgLayerExists = lastLayer.isBackgroundLayer;
if ( bgLayerExists ) { lastLayer.isBackgroundLayer = false; }
try { selectLayerByID( layer1ID ); } catch(e) {}
// Select all layers
var desc23 = new ActionDescriptor();
var ref5 = new ActionReference();
ref5.putEnumerated( cTID('Lyr '), cTID('Ordn'), cTID('Trgt') );
desc23.putReference( cTID('null'), ref5 );
executeAction( sTID('selectAllLayers'), desc23, DialogModes.NO );
// Make active layers visible
var desc209 = new ActionDescriptor();
var list93 = new ActionList();
var ref129 = new ActionReference();
ref129.putEnumerated( cTID('Lyr '), cTID('Ordn'), cTID('Trgt') );
list93.putReference( ref129 );
desc209.putList( cTID('null'), list93 );
executeAction( cTID('Shw '), desc209, DialogModes.NO );
// Reselect the starting layer
if ( bgLayerExists ) { lastLayer.isBackgroundLayer = true; }
selectLayerByID( layer1ID );
// Select next layer
try { snl( direction ); } catch(e) {}
// Store the layer
var nextLayer = activeLayerID();
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
// Try to select the next layer using its ID
try {
selectLayerByID( nextLayer );
}
// If it fails, well assume it did so because it was a background layer... and use another method for selecting that.
catch(e) {
var desc299 = new ActionDescriptor();
var ref187 = new ActionReference();
ref187.putName( cTID('Lyr '), "Background" );
desc299.putReference( cTID('null'), ref187 );
desc299.putBoolean( cTID('MkVs'), false );
var list138 = new ActionList();
list138.putInteger( 1 );
desc299.putList( cTID('LyrI'), list138 );
executeAction( cTID('slct'), desc299, DialogModes.NO );
}
function snl( direction ) {
var select;
if ( direction == 'up' || direction == 'above' ) {
select = cTID('Frwr');
}
else if ( direction == 'down' || direction == 'below' ) {
select = cTID('Bckw');
}
var desc67 = new ActionDescriptor();
var ref41 = new ActionReference();
ref41.putEnumerated( cTID('Lyr '), cTID('Ordn'), select );
desc67.putReference( cTID('null'), ref41 );
desc67.putBoolean( cTID('MkVs'), false );
var list17 = new ActionList();
list17.putInteger( 5 );
desc67.putList( cTID('LyrI'), list17 );
executeAction( cTID('slct'), desc67, DialogModes.NO );
}
function activeLayerID() {
var ref = new ActionReference();
ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "LyrI" ));
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
return executeActionGet(ref).getInteger( stringIDToTypeID( "layerID" ) );
}
function selectLayerByID(id, add){
add = (add == undefined) ? add = false : add;
var ref = new ActionReference();
ref.putIdentifier(cTID('Lyr '), id);
var desc = new ActionDescriptor();
desc.putReference(cTID('null'), ref);
if(add){
desc.putEnumerated(sTID('selectionModifier'), sTID('selectionModifierType'), sTID('addToSelection'));
}
desc.putBoolean(cTID('MkVs'), false);
executeAction(cTID('slct'), desc, DialogModes.NO);
}
}
jemtan990
scott
jemtan990