デザイン効率化戦略;複数レイヤーにペーストする作業を自動化
Illustratorで、複数のレイヤーの同じ位置にオブジェクトをペーストする工程は単純作業だけど手間がかかります。
そこで今回は、選択したオブジェクトを一括で複数のレイヤーにペーストできるIllustratorスクリプト【MultiLayerPaste】を紹介します。
このスクリプトを使えば、一つ一つレイヤーを選択し同じ位置にペーストしていた作業工程を自動化することができます。
時間と手間を節約して、よりクリエイティブな作業に集中したい方は!最後まで読んで、この便利なスクリプトをぜひ試してみてください。
それではどうぞ
Profile
この記事を書いている私は、DTPデザイナーとしてIllustratorの操作経験が15年以上あり、スクリプトも自ら作成し、デザイン作業の効率化を図っています。
本ブログでもスクリプトに関する記事を定期的に公開していますので、ぜひご参考にしてください。
関連記事:「完全無料」で作業の効率化!Illustratorスクリプト特集!
【MultiLayerPaste】スクリプトの概要
まずは、【MultiLayerPaste】とはどのようなスクリプトなのかをご説明します。
スクリプトのダウンロード
【MultiLayerPaste】は、こちらからサンプルとしてダウンロードできます。 使用前に、必ず「注意事項と免責事項」をご確認ください。安全に利用していただくための重要な情報が記載されています。
ダウンロード:MultiLayerPaste.jsx
ダウンロードができない方は、次の章でソースコードを公開しているのでテキストエディタにコピーしてお使いくだい
スクリプトの機能
【MultiLayerPaste】は、私が自作したオリジナルスクリプトで、オブジェクトを一括で複数のレイヤーにペーストする必要がある場合に便利です。
以下で主な機能をご紹介します。
- 選択アイテムの数をカウント Illustrator内で選択されているオブジェクトの数をカウントし、ユーザーに対してその数をポップアップで通知します。
- 各レイヤーに対して、次の条件を満たしているかを確認します。
- 同じ位置にペースト 条件を満たすレイヤーに、オブジェクトを元の位置にピッタリ同じ場所で貼り付けます。
- レイヤーの保護と整理 ペーストが完了したレイヤーは、自動的にロックされ、非表示にされます。これにより、意図せず編集してしまうミスを防ぎ、作業スペースをすっきり整理できます。
* 表示状態かどうか:非表示のレイヤーはスキップします。
* ロックされていないか:編集可能なレイヤーに対してのみ処理を行います。
スクリプトの使い方
【MultiLayerPaste】は、以下の手順で利用できます。
- STEP1.コピーするオブジェクトを選択
- STEP2.ファイルメニューからスクリプトを選択
- STEP3.【MultiLayerPaste】を起動
- STEP4.パネルの【OK】または【キャンセル】ボタンを選択
なお、次の記事ではIllustratorスクリプトのメニュー以外からの使い方について詳しく解説しています。
ぜひこちらの記事も参考にしてください。
動作チェック
このスクリプトは、以下の環境で動作確認済みです。
・Illustrator 2024【Mac】
【MultiLayerPaste】スクリプトのソースコード
ここでは、【MultiLayerPaste】の動作フローと各処理条件が一目でわかるソースコードを紹介します。
理解しやすいよう、説明用のコメントアウトも含まれていますので、参考にしながらコードの動きを確認してください。
ソースコード
var doc = app.activeDocument; // 現在アクティブなドキュメントを取得します
var cont = doc.selection.length; // 選択されたアイテムの数を取得します
var win = confirm('現在!アイテムを' + cont + '個!選択中です。実行しますか?', ''); // ユーザーに選択されたアイテムの数を通知し、確認を求めます
if (win) { // ユーザーが確認した場合のみ、以下のコードを実行します
if (cont > 0) {
app.copy(); // 選択されたアイテムをコピーします
// 選択されたアイテムのレイヤーを取得します
var selectedItem = doc.selection[0]; // 最初の選択アイテムを取得(複数選択でも同じレイヤー前提)
var selectedLayer = selectedItem.layer; // 選択されたアイテムのレイヤー
for (var i = 0; i < doc.layers.length; i++) { // すべてのレイヤーに対してループを実行します
var layer = doc.layers[i]; // 現在のレイヤーを取得します
if (layer !== selectedLayer) { // 選択アイテムのレイヤー以外で処理を実行
if (layer.visible !== false && !layer.locked) { // レイヤーが表示状態で、かつロックされていない場合のみ、以下のコードを実行します
doc.activeLayer = layer; // 現在のレイヤーをアクティブにします
app.executeMenuCommand("pasteInPlace"); // 同じ位置にペーストします
layer.locked = true; // レイヤーをロックします
layer.visible = false; // レイヤーを非表示にします
}
}
}
}
}
なお、Illustratorスクリプトの作成方法については、下記の記事を参考にしてください。
注意事項と免責事項
【MultiLayerPaste】は、商用利用可能です。ただし使用につきましては、下記の注意事項と免責事項を必ずお守りください。
注意事項
- 予期せぬエラーやデータ損失を防ぐために、スクリプト実行前には必ずデータを保存してください。
- 事前にスクリプトの動作確認を行い、環境に適しているか確認してください。
- Illustratorのアップデートによりスクリプトの動作が変わる可能性があります。アップデート後の不具合についてはサポートできませんので、あらかじめご了承ください。
免責事項
- ご利用はすべて自己責任でお願いいたします。
- スクリプトの使用によるトラブルや損失について、当方は一切の責任を負いません。
- 商用利用における成果物の品質や結果に関しては、一切の責任を負いません。
- 本スクリプトの著作権は制作者に帰属します。無断で転送・販売・配布することは禁止いたします。
まとめ:一括ペーストしてくれる【MultiLayerPaste】スクリプト
今回は、選択したオブジェクトを一括で複数のレイヤーにペーストできるIllustratorスクリプト【MultiLayerPaste】を紹介しました。
今まで一つ一つレイヤーを選択し同じ位置にペーストしていた作業工程を自動化することができます。
時間と手間を節約して、よりクリエイティブな作業に集中したい方は!この便利なスクリプトをぜひ試してみてください。
ダウンロードはこちら:MultiLayerPaste.jsx
というわけで今回は以上です。
『【効率化】複数のレイヤーに一括ペーストしてくれるIllustratorスクリプト』を最後までお読みいただき、ありがとうございました。
Illustratorスクリプトのおすすめ書籍!
また、以下の記事で今回紹介した書籍以外にもスクリプトに関する書籍を紹介しているので参考にしてください。
この記事へのコメントはありません。