リンクをクリップボードにコピー
コピー完了
マスク用にこう言った短形を自動で生成するスクリプトをご存知の方いらっしゃいませんか
画像は9面なのですが100面分割など大量のマスクを作る際、手で作業するのは時間の無駄な気がしまして、、、
ポイントはすべての長方形が違う色で生成され、レイヤーが分かれているところです
ガイド線ではなく短形が生成されるスクリプトが欲しいんですが自分で作らないとないんでしょうかね
練習を兼ねて書いてみました。(思ったより長くなった...)
以下をメモ帳やテキストエディットなどにコピペして、文字コードUTF-8で適当な名前に拡張子「.jsx」で保存してください。
(function(){
var actDoc = app.activeDocument;
var xCnt = prompt("ヨコの数(10以下)", 1);
if(xCnt > 10) {alert("多すぎです"); return;}
var yCnt = prompt("タテの数(10以下)", 1);
if(yCnt > 10) {alert("多すぎです"); return;}
var tCnt = xCnt * yCnt;
preferences.rulerUnits = Units.PIXELS;
var docW = actDoc.width.value;
var docH = actDoc.height.value;
var xx = Math.floor(docW / xCnt);
var yy = Math.floor(docH / yCnt);
var st
...リンクをクリップボードにコピー
コピー完了
短形とは矩形(くけい:長方形)のことでしょうか?
お使いのバージョンやOSなども書いておくと、ちょうどいい物をお持ちの方が現れるかもしれません。
また、「違う色」もちょっと曖昧すぎて、「よし特別に書いてあげよう」と思っている方には伝わりにくいかと…
リンクをクリップボードにコピー
コピー完了
矩形(くけい:長方形)のことです
失礼しました
違う色に関しては、、ランダムでよいのですが、全く同じ色でなければい良いというか
色の濃さが違う赤でも可です、、という感じです
リンクをクリップボードにコピー
コピー完了
練習を兼ねて書いてみました。(思ったより長くなった...)
以下をメモ帳やテキストエディットなどにコピペして、文字コードUTF-8で適当な名前に拡張子「.jsx」で保存してください。
(function(){
var actDoc = app.activeDocument;
var xCnt = prompt("ヨコの数(10以下)", 1);
if(xCnt > 10) {alert("多すぎです"); return;}
var yCnt = prompt("タテの数(10以下)", 1);
if(yCnt > 10) {alert("多すぎです"); return;}
var tCnt = xCnt * yCnt;
preferences.rulerUnits = Units.PIXELS;
var docW = actDoc.width.value;
var docH = actDoc.height.value;
var xx = Math.floor(docW / xCnt);
var yy = Math.floor(docH / yCnt);
var stx = 0, sty = 0, edx = xx, edy = yy, cntx = 1;
for(var i = 1; i < tCnt + 1; i++) {
var layObj = actDoc.artLayers.add();
layObj.name = i;
actDoc.selection.selectAll();
var RGBcolor = makeRdmRGBcolor();
actDoc.selection.fill(RGBcolor, ColorBlendMode.NORMAL, 100, false);
var selReg = [[stx, sty], [edx, sty], [edx, edy], [stx, edy]];
actDoc.selection.select(selReg);
makeLayerMask();
stx += xx; edx += xx; cntx++;
if(cntx > xCnt) {
cntx = 1; stx = 0; edx = xx; sty += yy; edy += yy;
}
}
}());
function makeLayerMask() {
var idMk = charIDToTypeID("Mk ");
var desc14 = new ActionDescriptor();
var idNw = charIDToTypeID("Nw ");
var idChnl = charIDToTypeID("Chnl");
desc14.putClass(idNw, idChnl);
var idAt = charIDToTypeID("At ");
var ref8 = new ActionReference();
var idMsk = charIDToTypeID("Msk ");
ref8.putEnumerated(idChnl, idChnl, idMsk);
desc14.putReference(idAt, ref8);
var idUsng = charIDToTypeID("Usng");
var idUsrM = charIDToTypeID("UsrM");
var idRvlS = charIDToTypeID("RvlS");
desc14.putEnumerated(idUsng, idUsrM, idRvlS);
executeAction(idMk, desc14, DialogModes.NO);
}
function makeRdmRGBcolor() {
var colObj = new SolidColor();
colObj.rgb.red = Math.floor(Math.random() * 255);
colObj.rgb.green = Math.floor(Math.random() * 255);
colObj.rgb.blue = Math.floor(Math.random() * 255);
return colObj;
}
使用方法
テスト環境
注意事項など
リンクをクリップボードにコピー
コピー完了
まさか作ってくださる方がいらっしゃるとは、、
ものすごく助かりました!ありがとうございます!