【2023年12年23日 更新】
訪問していただき、ありがとうございます。
- グリッドデザイン用のグリッドを作るのが手間
- ボックスサイズを計算するのが難しい
- 一度、作ると変更が大変
デザインをするときに、グリッドデザインの手法を活用していると人は多いですよね。
しかし、Illustratorでグリッドデザイン用のグリッドラインを引くには、サイズを計算し四角形ツールやガイドを使うなど大変手間がかかります。
そこで今回は、グリッドデザイン用のグリッドラインを引く作業を簡略化するために、必要な数値を入力するだけで【グリッドライン】がアートボードに配置されるスクリプトを紹介します。スクリプトの動作フローと処理条件を理解できるようにソースコードも掲載していますので、ぜひ参考にしてください。
Profile
この記事を書いている私は、DTPデザイナーとしてIllustratorの操作経験が15年以上あり、スクリプトも自分の業務で必要になったものを自ら作成し、デザイン作業の効率化を図っています。
最近では、当ブログでも自作スクリプトを公開しています。
本記事で紹介するスクリプトは、記事内でダウンロードすることができますので、Illustratorでグリッドデザインをする際にお役立てください。
それでは、どうぞ
1.【グリッドを自動生成】スクリプトの概要
ここでは、【グリッドを自動生成】スクリプトの概要について解説していきます。
まず、本スクリプト(スクリプト名: gridLien.jsx)は、私がJavaScriptベースで自作したIllustrator用のスクリプトです。
スクリプトのポイント
このスクリプトは、アートボードのサイズを測定し、入力された数値を基にグリッドを作成するものです。また、プレビュー機能も備えているため、事前に仕上がりを確認することができます。
・アートボードのサイズを測定します。
・入力された数値をもとにグリッドを作成します。
・プレビュー機能も備えています。
スクリプトの入手方法
本スクリプトは、下記からサンプルとしてダウンロードすることができます。
ダウンロードと使用については「注意事項と免責事項」に記載していますので、必ずお読みください
ダウンロード:gridLien.jsx
スクリプトの使い方
本スクリプトは、下記の5STEPで使うことができます。
- STEP1.ファイルメニューからスクリプトを選択
- STEP2.【gridLien.jsx】を選択
- STEP3.起動したウインドウに数値を入力
- STEP4.プレビューを確認
- STEP5.【OK】ボタンをクリック
なお、次の記事ではそもそもIllustratorスクリプトってどうやって使うのか、活用事例を交えて紹介しているので良ければ参考にしてください。
次のセクションでは、スクリプトのソースコードを公開します。
2.【グリッドを自動生成】スクリプトのソースコード
ここでは、スクリプトの動作フローと処理条件がわかるソースコードを紹介します。説明用のコメントアウトも含まれていますので、ご参考にしてください。
なお下記の記事では、Illustratorスクリプトを自作する方法についてサンプル事例を交え解説しているのでよければ参考にしてください。
//パネル設定 ここから
var win = new Window('dialog','グリット表示',[200,200,450,480]);
win.titel = win.add('panel',[20,15,235,190],'グリット');
var checkBob01 = win.add('checkbox',[35,40,150,60],'グリッドを作成');
win.add('statictext',[35,67,135,85],'オフセット値:');
var offSet = win.add('edittext',[120,65,150,90],'0');
win.add('statictext',[160,67,190,85],'mm');
win.add('statictext',[35,92,100,120],'横 分割数:');
var split_W = win.add('edittext',[100,95,130,120],'5');
win.add('statictext',[145,92,195,120],'間隔:');
var margin_W = win.add('edittext',[180,95,210,120],'0');
win.add('statictext',[35,121,100,155],'縦 分割数:');
var split_H = win.add('edittext',[100,125,130,150],'5');
win.add('statictext',[145,121,195,155],'間隔:');
var margin_H = win.add('edittext',[180,125,210,150],'0');
win.add('statictext',[35,157,105,180],'レイヤー名:');
var layerName01 = win.add('edittext',[110,157,210,180],'gid');
var btnOK = win.add('button',[20,200,120,250],'OK',{name:'ok'});
var btnCancel = win.add('button',[130,200,230,250],'cancel',{name:'cancel'});
//パネル設定 ここまで
offSet.active = true;
//パネル 初期設定 ここから
checkBob01.value = true
//パネル 初期設定 ここまで
//設定プレビュー ここから
win.onShow = function(){ //.onShow:ウインドウが表示される時に発生するイベント
main();
app.redraw();
app.undo();
};
offSet.onChange = function(){ //.onChange:フォーム内の要素の内容が変更された時に起こるイベント
main();
app.redraw();
app.undo();
}
split_W.onChange = function(){
main();
app.redraw();
app.undo();
}
margin_W.onChange = function(){
main();
app.redraw();
app.undo();
}
split_H.onChange = function(){
main();
app.redraw();
app.undo();
}
margin_H.onChange = function(){
main();
app.redraw();
app.undo();
}
//設定プレビュー ここまで
//キャンセルボタンの処理ここから
btnCancel.onClick = function(){
win.close();
}
//キャンセルボタンの処理ここまで
//OKボタンの処理ここから
btnOK.onClick = function(){
win.close();
main();
};
//OKボタンの処理ここから
//グリッド作成ここから
function main(){
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM; //座標値をアートボード基準
var docObj = app.activeDocument;
//アートボード寸法 ここから
var rect = docObj.artboards[0].artboardRect;
var left = rect[0];
var top = rect[1];
var right = rect[2];
var bottom = rect[3];
//アートボード寸法 ここまで
//数値の変換ここから
var offset = point(offSet); //オフセット値
var splitW = changeText(split_W); //分割数 横
var splitH = changeText(split_H); //分割数 縦
var marginW = changeText(margin_W);//横方向 間隔
var marginH = changeText(margin_H);//縦方向 間隔
//数値の変換ここまで
if(checkBob01.value === true){
var width = (right - left) - (offset * 2); //オブジェクトの横サイズ
var height = (top - bottom) - (offset * 2); //オブジェクトの縦サイズ
var ww = (splitW - 1) * marginW;
var hh = (splitH - 1) * marginH;
var smallWidth = (width - ww) / splitW;
var smallHeight = (height - hh) /splitH;
try{
var newLay = lays.getByName('gid'); //グリッドレイヤーが存在する場合
} catch(e){
var lays = docObj.layers; //新しいレイヤーを作成する
var layObj = lays.add(); //レイヤー名を指定する
layObj.name = 'gid';
for(var y = 0; y < splitH; y++){
for(var x = 0; x < splitW; x++){
var rectObj = docObj.pathItems.rectangle(-offset - (y * (smallHeight + marginH)), offset + (x * (smallWidth + marginW)),smallWidth , smallHeight);
rectObj.guides = true ;//ガイド化
};
};
var slays = lays['gid'];
slays.locked = true; //レイヤーロック
};
};
};
//グリッド作成ここまで
win.show();//ウインドウパネルの表示
//パネルの文字列を変換ここから
function changeText(str){
var cText = eval(str.text);
return cText;
}
//パネルの文字列を変換ここまで
//数値の変換ここから
function point(num){
var setText = eval(num.text);
var mp = 2.8356;
var change = setText * mp;
return Math.round(change * 100) / 100;
};
//数値の変換ここまで
3.注意事項と免責事項
本記事に記載してあるスクリプトを実行した結果生じるトラブルに関しては一切の責任を負いません。ご利用は自己責任にてお願いいたします。
またIllustratorのアップデートにより動作が変わってしまう可能性もあります。アップデートによる動作の不具合に関しては、対処しかねるので予めご理解ください。
最後に本記事で配布しているスクリプトを無断で転送・販売・配布することは禁止いたします。
動作チェック
・IllustratorCS6【Win】
・Illustrator2024【mac】
で、動作チェックをおこないました。
4.【グリッドを自動生成】スクリプトのまとめ
今回は、【グリッドを自動作成】スクリプトについてポイントを交えながら紹介しました。
ポイントのおさらいすると
・アートボードのサイズを測定します。
・入力された数値をもとにグリッドを作成します。
・プレビュー機能も備えています。
グリッドデザインはWebデザインや紙面デザインの仕事でよく使われますが、Illustratorでグリッドを手動で用意するのは時間と手間がかかります。しかし、この記事で紹介した【グリッドを自動作成】スクリプトを使えば、その手間を省けます。ぜひこのスクリプトを活用して、Illustratorの作業を効率的におこなってください
なお、Illustratorスクリプトについて学んでみたいと思った方は、次の記事でおすすめの書籍とWEBサイトについて紹介しているので良ければ参考にしてください。
というわけで今回は以上です。
『グリッドデザイン用のグリッドを自動生成するIllustratorスクリプトを紹介』を最後までお読みいただきありがとうございました。