14
「イラレ」でスクリプトを動かしてみた。 注)「イラレ」=「アドビ・イラストレーター」です。 ズームス 保田 2012.12.27

Xj0009 イラレをスクリプトで動かしてみた

Embed Size (px)

DESCRIPTION

AdobeイラストレータではJavascriptらいくなスクリプトを使うことができます。ちょっと使ってみたので報告します。

Citation preview

Page 1: Xj0009 イラレをスクリプトで動かしてみた

「イラレ」でスクリプトを動かしてみた。  注)「イラレ」=「アドビ・イラストレーター」です。

  ズームス 保田 2012.12.27

Page 2: Xj0009 イラレをスクリプトで動かしてみた

きれいなインフォグラフィクスを作れるツールがほしい

PowerPointは論外

Keynoteはデフォルトテンプレート以外は面倒

Flashは印刷用の書き出し貧弱

Photoshopは基本的にラスター・データ主義

Unityは2Dやるには重すぎ

Rはデザインセンス・ゼロ

Processingはプリセットが少ない

C++とかは敷居高すぎ

イラレ(イラストレータ)はプログラミングできない???

Page 3: Xj0009 イラレをスクリプトで動かしてみた

イラレにもスクリプトがあった!

http://www.adobe.com/devnet/illustrator/scripting.html

Page 4: Xj0009 イラレをスクリプトで動かしてみた

サンプル・スクリプトを動かしてみた

MakeLinearGradient.jsx (デフォルトのサンプルスクリプト)

Page 5: Xj0009 イラレをスクリプトで動かしてみた

スクリプトを編集する Extended Script Toolkit

■Windows:C\:\\Program Files\Adobe\AdobeUtilities CS6\ExtendScriptToolkitCS6 ■Macの場合、 アプリケーション>ユーティリティ>AdobeユーティリティCS6>AdobeExtendedToolkitCS6 の下の ExtendedScriptToolkit.exe/app を起動。ファイル>開く... で、該当スクリプトを開く。

Page 6: Xj0009 イラレをスクリプトで動かしてみた

簡単なスクリプトを作ってみた ellipse.jsx

var PI =3.14159265; // パイ(定数) //var targetdoc = app.documents.add( DocumentColorSpace.RGB ); //ドキュメントを新規追加 var targetdoc = app.activeDocument; //アクティブドキュメントの取得 var xColor = new RGBColor(); //RGBカラーオブジェクト var num = 12; //配置する円の個数 var delAng = 2*PI/num; //配置の角度増分 var xp = 400; //配置の中心X var yp = -300; //配置の中心Y var rad = 150; //配置円の半径 var radell = 25; //円の半径 for ( var i=0; i < num ; i++ ){ //円を配置する var xe= xp+ rad*Math.cos(delAng*i); var ye= yp+ rad*Math.sin(delAng*i); var theEllipse=targetdoc.pathItems.ellipse(-radell, -radell,radell*2,radell*2); //円(楕円)の描画 theEllipse.position = [xe-radell, ye+radell]; xColor = targetdoc.swatches[i+4].color; //スウォッチの色を順番に使う theEllipse.filled=true; //塗りつぶし theEllipse.stroked = false; //線 theEllipse.opacity = 70; //不透明度(0-100) theEllipse.fillColor =xColor; //塗りつぶし色の指定 }

Page 7: Xj0009 イラレをスクリプトで動かしてみた

簡単なスクリプトを作ってみた結果 ellipse.jsx

Page 8: Xj0009 イラレをスクリプトで動かしてみた

こんなのも簡単! circlesAndLines.jsx

Page 9: Xj0009 イラレをスクリプトで動かしてみた

さらにこんなことも(すみません、他人のです)!

Metaball.js

Page 10: Xj0009 イラレをスクリプトで動かしてみた

つまり、イラレでスクリプトが使えれば …

正確なレイアウトができる

修正・やり直しが簡単

再利用も容易

ケースによっては、単品でも手動より早い

インフォグラフィクスとか、ぴったり! オリジナルのライブラリを蓄積したい

インフォグラフィクスのオンライン・サービスもできそう!(詳しくは次回)

Page 11: Xj0009 イラレをスクリプトで動かしてみた

イラレのScriptサンプル

http://vectips.com/tricks/10-free-and-extremely-useful-illustrator-scripts/

http://vector.tutsplus.com/articles/web-roundups/20-free-and-useful-adobe-illustrator-scripts/

http://www.adobe.com/cfusion/exchange/index.cfm?s=5&from=1&o=desc&cat=210&l=-1&event=productHome&exc=17&PID=3985898

http://illustrator.hilfdirselbst.ch/dokuwiki/en/skripte/javascript/uebersicht

フォルダを指定して読み込み http://dtpstepup.blog47.fc2.com/blog-entry-7.html

色々(日本語) http://d-p.2-d.jp/ai-js/pages/01_scripts/index.html

高度なスクリプトライブラリ http://www.aivault.com/2009/10/10/50-wonderfully-practical-scripts-for-adobe-illustrator/

スクリプト色々 http://park12.wakwak.com/~shp/cgi-bin/wiki.cgi/view/JavaScript_scripts

Scripts for Adobe Illustrator http://park12.wakwak.com/~shp/lc/et/en_aics_script.html

Page 12: Xj0009 イラレをスクリプトで動かしてみた

参考:BoundsとControl Points

参考 http://cssdk.host.adobe.com/sdk/1.0/docs/WebHelp/app_notes/illustrator_paths.htm

Page 13: Xj0009 イラレをスクリプトで動かしてみた

参考:サンプルスクリプトを見てみる 1

// Check a document is open if ( app.documents.length > 0 ) { var docPathItems = app.activeDocument.pathItems; ----------------- if (gradientExists == false) { // Call createGradient function to create gradient myGradient var myGradient = createGradient(); ! // Apply gradient myGradient to all objects selected // in the document for ( var i=0; i < docPathItems.length ; i++ ) { docPathItems[i].filled = true; docPathItems[i].fillColor = myGradient; } redraw(); alert( "Note that MyLinearGradient has been added to the Swatches panel." ); }

!アプリケーションオブジェクトからドキュメント数を調べる !アクティブドキュメントのパスを全て取得 !グラデーションがまだ作られてない場合。。。 !!!グラデーションを作成し、変数 myGradientに代入 !!!!!!!すべてのパスにmyGradientを適用

Page 14: Xj0009 イラレをスクリプトで動かしてみた

参考:サンプルスクリプトを見てみる 2

function createGradient() { // Create a new gradient // A new gradient always has 2 stops var theGradient = app.activeDocument.gradients.add(); theGradient.name = "MyLinearGradient"; theGradient.type = GradientType.LINEAR; // Add 2 new gradient stops var newStop1 = theGradient.gradientStops.add(); var newStop2 = theGradient.gradientStops.add(); // Create color objects for all the gradient stops var startColor = new RGBColor(); var newStop1Color = new RGBColor(); var newStop2Color = new RGBColor(); var endColor = new RGBColor(); startColor.red = 0; startColor.green = 100; startColor.blue = 255; ----------------------------------- var myGradientColor = new GradientColor(); myGradientColor.gradient = theGradient; return myGradientColor;

!!!!!グラデーションオブジェクトを新規作成 グラデーションの名前 グラデーションの種類(リニア) !!グラデーション・ストップを追加 !!!カラーオブジェクトを生成 !!!各RGBを定義していく !指定したグラデーションのGradientColorオブジェクトを作る