クリエイター手抜きプロジェクト[446]Adobe Illustrator CS6〜CC 2015編 ふたつの四角形を線で連結する/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,000文字)



今回は選択した四角形を線で結ぶスクリプトです。線で結ぶといっても、単純に結ぶわけではありません。組織図などで見られるような線を描画します。以下の図のような感じになります。

┌─────┐
│     │
└──┬──┘
   │
   └──┐
   ┌──┴──┐
   │     │
   └─────┘

スクリプトはふたつの四角形を選択してから実行すると、自動的に上図のような線が描画されます。この線は連続直線ではなく、バラバラになっています。必要に応じて連結してもらえばよいかと思います。





// 選択した2つの四角形を結ぶ線を描画する
var lineWidth = 1.0; // 線の太さ1.0pt
var color_C = 0; // 戦の色(シアン)
var color_M = 0; // 戦の色(マゼンタ)
var color_Y = 0; // 戦の色(黄色)
var color_K = 100; // 戦の色(黒)
// 連結戦を描画
(function (){
if(app.selection.length < 2){
alert("少なくとも2つの四角形を選択してください");
return;
}
if (app.selection.length > 2){
alert("選択した四角形が多すぎます。2つだけにしてください");
return;
}
var box1 = app.selection[0];
var box2 = app.selection[1];
var y1 = box1.geometricBounds[1]; // x1,y1-x2,y2
var y2 = box2.geometricBounds[1];
if (y1 > y2){
var box1 = app.selection[1];
var box2 = app.selection[0];
}
var center1X = (box1.geometricBounds[2] - box1.geometricBounds[0]) / 2 + box1.geometricBounds[0];
var center2X = (box2.geometricBounds[2] - box2.geometricBounds[0]) / 2 + box2.geometricBounds[0];
var centerX = (center2X - center1X) /2 + center1X;
var top1 = box1.geometricBounds[1];
var bottom1 = box1.geometricBounds[3];
var top2 = box2.geometricBounds[1];
var bottom2 = box2.geometricBounds[3];
var centerY = (bottom2 - top1) / 2 + top1;
line(center1X, top1, center1X, centerY);
line(center1X, centerY, center2X, centerY);
line(center2X, centerY, center2X, bottom2);
})();
// -----------------------
// 直線を描く
function line(x1, y1, x2, y2){
var lineObj = activeDocument.pathItems.add();
lineObj.setEntirePath([[x1, y1],[x2, y2]]);
lineObj.stroked = true; // 線を表示する。塗りは指定しないと「なし」に設定される
lineObj.strokeWidth = lineWidth; // 線の太さ
lineObj.strokeColor = setCMYKColor(0, 0, 0, 100);
// CMYKカラーを設定し、CMYKカラーオブジェクトを返す
function setCMYKColor(c,m,y,k){
var CMYK = new CMYKColor();
CMYK.cyan = color_C;
CMYK.magenta = color_M;
CMYK.yellow = color_Y;
CMYK.black = color_K;
return CMYK;
}
}

線の太さを変更したい場合は、以下の行の1.0の数値を変更してください。単位はポイントになります。

var lineWidth = 1.0; // 線の太さ1.0pt

線の色を変更したい場合は、以下の数値(0〜100)を変更してください。CMYKモードでの使用が前提になっています。

var color_C = 0; // 戦の色(シアン)
var color_M = 0; // 戦の色(マゼンタ)
var color_Y = 0; // 戦の色(黄色)
var color_K = 100; // 戦の色(黒)


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

今回はリクエストがあったので作成したスクリプトです。作ってないネタが結構あるので、正月にでもまとめて作ってしまいたいところです。

イングレスは、田舎だといつも同じメンバーの数人なのでL8のレゾネーターが全部ささるところは一か所くらいしかなかったりと、なんともな感じ。

iPhone 6s Plusで4K映像を撮影するのはいいけど、やはりいくつかの機能が欲しいところ。まず、傾きが知りたい。まあ、傾斜計が欲しいということです。可能ならパナソニックのビデオカメラのように、傾きを自動補正してくれると嬉しい。

次にグリッド。静止画撮影の場合はグリッド表示できるけど、なぜかビデオカメラの場合は表示されません。いくつかのグリッドを選択でき、さらに自分なりのグリッドも表示できると便利になります。

さらに、ヒストグラムの表示機能も欲しいのと、白飛び黒潰れの部分が分かるようにしてもらえると、ありがたい。ここまではソフトウェアでどうにかなる部分なので、OSのアップデートでどうにかしてくれないかなあ。

さらに、iPhone 7sくらいかiPad Proなら、30フレームでなく60フレームでの4K撮影もできるとよい。というか、そこまでいくと小型ビデオカメラ/ハンディカムはいらない感じに。

ついでに、デジタルズームでなく光学ズームもあるといいけど、これは無理っぽい。iPhone 9sくらいになったら8K映像も撮影できると面白いかもしれない。でも実用的かどうかは分かりませんが。

・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・ExtendScript Toolkit(ESTK)基本編
http://www.amazon.co.jp/dp/B00JUBQKKY/

・データビジュアライゼーションのためのD3.js徹底入門
http://www.amazon.co.jp/dp/4797368861

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/