忍者ブログ

ぼんぷろぐ

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

[イラレ]
選択アイテム群をキーオブジェクトのレイヤーに移動するスクリプト

OnegaiSDKの使用例です。
イラレでは複数のアイテムを選択しているとき、その中の一つをさらにクリックすることで、そのアイテムを『キーオブジェクト』にできます。
この状態にあるとき、すべての選択アイテムをキーオブジェクトのあるレイヤーに集める、というスクリプトを作ってみました。
InDesignの方では同じ機能のスクリプトいつも使ってるんですが結構便利です。


プラグインOnegaiSDKがインストールされていることが必要です。
http://sysys.blog.shinobi.jp/Entry/104/

(function() {
    sel = app.selection;
    if (sel instanceof Array && sel.length > 1) {
        var n = +app.sendScriptMessage("OnegaiSDK", "getKeyObject", "");
        if (n > -1) {
            var layer0 = sel[n].layer;
            for (var i = n - 1; i >= 0; i--) {
                if (sel[i].layer != layer0) sel[i].move(layer0, ElementPlacement.PLACEATBEGINNING);
            }
            for (var i = n + 1; i < sel.length; i++) {
                if (sel[i].layer != layer0) sel[i].move(layer0, ElementPlacement.PLACEATEND);
            }
        }
    }
})();
PR

[イラレ]
スクリプトでできないことを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","");

[イラレ]
イラレの画像再リンクをエクスプローラーから行うためのAHKスクリプトをつくったー

前にBridge用のこういうのを作ったんですが、まあBridgeもいいけど結局エクスプローラーでやりなくなるよねーということで作りました。

ダウンロード

イラレの選択画像をこれに再リンク.ahk


使う準備

AutoHotkeyがインストールされていない場合はインストールします。(拡張子ahkの関連付けがされていることが必要なため、インストーラーを使ってのインストールをオススメします)

②「ファイル名を指定して実行」で
shell:sendto
を入力してOKを押します。

③開いたsendtoフォルダに「イラレの選択画像をこれに再リンク.ahk」を入れます。

使い方

①イラレ上で、リンク画像、埋め込み画像、またはそれらをクリッピングマスクしたものを1つだけ選択します

②エクスプローラー上で画像ファイルの右クリックメニューで「送る」>「イラレの選択画像をこれに再リンク.ahk」を選択します

③イラレ上で画像が置き換わります



このスクリプトは、したたか企画さんの スクリプトでのアクション動的生成を簡単にするライブラリを使用しています
http://sttk3.com/blog/tips/illustrator/dynamic-generate-action.html

[イラレ]
Sppyに「ESTKにF5を送る」機能を追加しました

イラレのスクリプトをキーボードショートカットで実行する『Sppy』を更新しました。
ダウンロードはこちら

Sppy ver 1.1の変更点

  • 「ESTKにF5を送る」機能を追加
  • CC2019でテキスト入力中にもスクリプトが発動してしまう問題を修正
  • パネルがイラレのウィンドウの従属ウィンドウにならなかった問題を修正
  • 右クリックが効かなくなる場合がある問題を修正
  • 誰も使ってなさそうな「Bridgeを最前面に表示」機能を削除


「ESTKにF5を送る」はその名の通り、ESTK(ExtendScript Toolkit)のウィンドウに対してF5キーを送る機能です。
F5はデフォルトで、現在編集中のスクリプトを実行するコマンドのショートカットキーに割り当てられています。
開発中のスクリプトのテストや、書き捨てのスクリプト実行に役立ちます。

「Sppy機能」内にある「ESTKにF5を送る」のダブルクリックで実行します。もちろんキーボードショートカットをつけることもできます。

プロフィール

kawamoto_α
(あるふぁ(仮))


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

ツイッタ


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



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



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