2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スクリプトのアウトラインには気をつけよう

Posted at

Adobe Illustrator Advent Calendar 2018の6日目の記事です。

この現象は2013年には確認していてブログにも書いたけど、昨今、スクリプト人口も増えたろうからアドベントカレンダーで再度注意喚起でもしようかなと。
2019になっても直ってないようだし……

下の鬱陶しいGIFアニメーションはAppleScriptでアウトラインをとる処理をしているものです。ループ処理を必要としないのでとてもシンプルなスクリプトですね。
 
さて、一見すると元画像は同じなのに結果が違うのがわかると思います。

[A]
01.gif

[B]
02.gif

データの説明

まずはこの文字にかかっているアピアランスの説明からしましょう。
スクリーンショット 2018-12-04 20.02.54.pngスクリーンショット 2018-12-04 20.03.02.png

  1. 上の文字には形状に変換長方形
  2. 下の文字にはスタイライズぼかし
    が設定されています。

何が起こったか

Aの画像では文字をアウトライン化することで仮想ボディが消えて枠が小さくなっています。
(にしても随分とバウンディングボックスの下の空きが大きい………と思ったらものかのさんのブログに解説が。Illustratorめ〜〜〜)  

続いてBの説明です。
アウトラインを取っても枠の大きさが変わらないのはアピアランスの分割をしているから。なのですが、すると今度はぼかしがただの塗りになってしまいました。
ここでリンクパレットのキャプチャを見ていただきましょう。
スクリーンショット 2018-12-04 20.33.34.pngスクリーンショット 2018-12-04 20.33.49.png
左がアピアランスを分割後のパレット。右がさらにアウトライン処理をかけた後のパレットです。
どうやら内部的にはマスク処理をしているようなのですが、そのマスクが消えてしまいぼかし処理がなくなってしまうようです。この現象が起きるのは同じスタイライズでもぼかしだけで、光彩でも分割後にマスクができるのですが、こちらはアウトラインを取っても保持されます。

回避策  

ではどのように対策すればよいでしょうか?

  1. PDF/x-4なら問題なくRIPしてくれそうな気はしますが、未確認。
  2. 形状に変換をする際はオブジェクトのアウトラインを設定してあらかじめ仮想的にアウトラインをとっておく。
  3. アウトラインはスクリプトのコマンドを使わずに、アクションを作っておいてそれをスクリプトから実行する。
    などが考えられます。

AppleScriptで紹介しましたが、JavaScriptでも同様にぼかしが消えるのを確認しています。

危険なデータの作り方は回避して事故なく年明けを迎えたいものですね。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?