Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│レイヤーとマスクのリンクを一括で繋ぐ方法

Photoshopでレイヤーとマスクのリンクを一括で繋ぐスクリプトを紹介します。

作業中に外れてしまったリンクをまとめて再接続できるスクリプトです。

目次

レイヤーとマスクのリンクを一括で繋ぐメリット

  • 全レイヤーのマスクリンクを一括で再接続できる
  • 手作業で1つずつリンクし直す手間を削減できる
  • 意図しないマスクズレを防ぎデータ管理を効率化できる

スクリプトの導入方法

STEP.1 スクリプトをダウンロード・格納

  1. 下記のコードをテキストエディタ等に貼り付けて保存

Photoshopのほかの操作は、まとめからご覧いただけます。

CGM_ConnectMaskLinks.jsx

main();

function main() {
  if (!documents.length) return;
  linkLayers();
}

function linkLayers() {
  var ref = new ActionReference();
  ref.putEnumerated(charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
  var count = executeActionGet(ref).getInteger(charIDToTypeID('NmbL')) + 1;
  var Names = [];
  try {
    activeDocument.backgroundLayer;
    var i = 0;
  } catch (e) {
    var i = 1;
  };
  for (i; i < count; i++) {
    if (i == 0) continue;
    ref = new ActionReference();
    ref.putIndex(charIDToTypeID('Lyr '), i);
    var desc = executeActionGet(ref);
    var layerSection = desc.getEnumerationValue(stringIDToTypeID('layerSection'));
    var Id = desc.getInteger(stringIDToTypeID('layerID'));
    if (typeIDToStringID(layerSection) == 'layerSectionEnd') continue;
    if (desc.hasKey(charIDToTypeID("UsrM"))) linkChannelMask(i);
    if (desc.getBoolean(stringIDToTypeID("hasVectorMask"))) linkVectorMask(i);
  }
};

function linkChannelMask(idx) {
  var desc = new ActionDescriptor();
  var ref = new ActionReference();
  ref.putIndex(charIDToTypeID("Lyr "), idx);
  desc.putReference(charIDToTypeID('null'), ref);
  var desc2 = new ActionDescriptor();
  desc2.putBoolean(charIDToTypeID('Usrs'), true);
  desc.putObject(charIDToTypeID('T   '), charIDToTypeID('Lyr '), desc2);
  executeAction(charIDToTypeID('setd'), desc, DialogModes.NO);
};

function linkVectorMask(idx) {
  var desc = new ActionDescriptor();
  var ref = new ActionReference();
  ref.putIndex(charIDToTypeID("Lyr "), idx);
  desc.putReference(charIDToTypeID("null"), ref);
  var desc1 = new ActionDescriptor();
  desc1.putBoolean(stringIDToTypeID("vectorMaskLinked"), true);
  desc.putObject(charIDToTypeID("T   "), charIDToTypeID("Lyr "), desc1);
  executeAction(charIDToTypeID("setd"), desc, DialogModes.NO);
}
  1. CGM_ConnectMaskLinks.jsx を 以下のフォルダに保存。
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\
  1. Photoshopを再起動。

STEP.2 スクリプトを実行

  1. [ファイル] → [スクリプト] → [CGM_ConnectMaskLinks] を選択。
  2. すべてのレイヤーのマスクがリンクされる。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

レイヤーを操作するスクリプトは、ほかにもあります。

まとめ

  • すべてのレイヤーのマスクリンクを一括で再接続可能
  • 誤ってリンクを外してしまってもすぐに復旧可能
  • レイヤーとマスクのズレを防ぎデータ管理を効率化

Photoshopでレイヤーとマスクのリンクを一括で復元し、作業効率を向上させましょう。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

動作要件とPCの確認項目

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次