忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショの勉強中。。。

[イラレ]
スクリプトでできないことをSDKにお願いするプラグインを作った

イラレスクリプトから気軽にキーオブジェクトを取得したいっていう動機でScriptMessageのプラグインを作り始めたんですが、出来上がったのはほぼアピアランス操作のプラグインでした。

applyEffect等と組み合わせれば出来ることはかなり広がるんじゃないかと思います。
動いたとか動かなかったとか不具合とか意味わからんとか何でもいいので下のコメントかツイッターにご報告いただけるとうれしいです。


OnegaiSDK


何これ?

イラレのスクリプトだけでは手が届かないかゆいところ(主にアピアランス関係)に手を届かせるプラグインです。

Download

【Windows】
Ver0.1 (2019/06/22)
CS6 (64bit)
CC2017-2019 (64bit)

【Mac】
Ver0.1 (2019/06/12)
CS6 (64bit)
CC2017-2019 (64bit)

インストール

OnegaiSDK.aipを所定のプラグインフォルダに入れるか、または適当なフォルダに入れてイラレの環境設定>プラグイン・仮想記憶ディスクでそのフォルダを追加します。

使い方

appとpageItemのメソッド『sendScriptMessage』を使ってコマンドを実行できます。
第1引数は"OnegaiSDK"
第2引数はコマンド名
第3引数は下記の『in』(なしの場合は空白文字列"")
にします。

用語

後のコマンド説明のため、用語を決めておきます。

Paint:線または塗り
Effect:効果
Contents:アピアランスパネルの「文字」とか「内容」とか。パスアイテムには無い。
Pre Effects:アピアランスパネルで線・塗りより上にある効果
Post Effects:アピアランスパネルで線・塗りより下にある効果
Last Effect:Post Effectsの中でも一番下のもの。通常、スクリプトのapplyEffectで追加したものはこれになります。


以下、「n番目」と書いてある場合、一番上がn=0、次がn=1です。n=-1で一番下を指定することもできます。

app.sendScriptMessage で使えるコマンド

getKeyObject

in:なし
out:整数n
app.selection[n]がキーオブジェクトとなるようなnを取得します。
キーオブジェクトが無い場合は-1です。

pageItem.sendScriptMessage で使えるコマンド

getGraphicStyleName

in:なし
out:グラフィックスタイル名
適用されているグラフィックスタイルの名前を取得します。

addFill

in:なし
out:なし
塗りを追加します。

addStroke

in:なし
out:なし
線を追加します。

removePaint

in:整数n
out:なし
n番目のPaintを消去します。

movePaintTop

in:整数n
out:なし
n番目のPaintを一番上に移動します。

movePaintUp

in:整数n
out:なし
n番目のPaintを一つ上に移動します。

movePaintBottom

in:整数n
out:なし
n番目のPaintを一番下に移動します。

movePaintDown

in:整数n
out:なし
n番目のPaintを一つ下に移動します。

moveContentsTop

in:なし
out:なし
Contentsを一番上に移動します。

moveContentsUp

in:なし
out:なし
Contentsを一つ上に移動します。

moveContentsBottom

in:なし
out:なし
Contentsを一番下に移動します。

moveContentsDown

in:なし
out:なし
Contentsを一つ下に移動します。

moveLastEffectToPaint

in:整数n または”pre”
out:なし
Last Effectをn番目のPaintに移動します。”pre”の場合はPre Effectsに移動します。

focusPaint

in:整数n
out:なし
n番目のPaintにフォーカスします。

removeAllEffects

in:なし
out:なし
すべてのEffectを消去します。

removeEffectsOfPaint

in:整数n または”pre” , ”post”
out:なし
n番目のPaintにつけられたEffectをすべて消去します。”pre”の場合はPre Effects、"post"の場合はPost Effectsをすべて消去します。

getStyleString

in:なし
out:文字列
アピアランスの構造が大まかに分かる文字列を取得します。


使用例

選択アイテムに塗りと『パスのオフセット』で青いフチをつけてみる
var sel0 = app.selection[0];
sel0.sendScriptMessage("OnegaiSDK","addFill","");
sel0.sendScriptMessage("OnegaiSDK","focusPaint","-1");
var c0 = new CMYKColor;
c0.cyan = 100 , c0.magenta = c0.yellow = c0.black = 0;
//sel0.fillColor=c0; //パスアイテムならこっちでいいけど
app.activeDocument.defaultFillColor = c0; //テキストならこっち
sel0.applyEffect ('<LiveEffect name="Adobe Offset Path"><Dict data="R mlim 4 R ofst 5 I jntp 2 " /></LiveEffect>');
sel0.sendScriptMessage("OnegaiSDK","moveLastEffectToPaint","-1");
sel0.sendScriptMessage("OnegaiSDK","moveContentsTop","");
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

動作報告です

win10 64bit CS6 環境

デフォルトプラグインフォルダにそのままコピー
デフォルトプラグインフォルダにフォルダを作成
その中にコピー
環境設定からフォルダ指定

以上すべて試しましたがプラグインの読み込みエラーとなってしまいました(--;

思い当たる原因などございましたらご教授くださいませ。

よろしくおねがいします。

Re:動作報告です

ご報告ありがとうございます。
すいません、
http://file.sysys.blog.shinobi.jp/OnegaiSDKaipCS6win0_12.zip
こちらで再度試してみていただけますか?

  • kawamoto_α
  • 2019/06/21(Fri.)

無題

早速のご対応ありがとうございました。
ご指定のファイルでインストールできました。
使用例も使えました!

ありがとうございました!

Re:無題

よかったです。
こちらのビルド設定のミスでVisual Studioがインストールされていない環境で動かないようでした。ご報告ありがとうございました!

  • kawamoto_α
  • 2019/06/21(Fri.)

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ


イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)