Illustratorの「グループの抜き」について3

最終更新日

3回目でようやくグループの抜きを解説します。かなりややこしい構成になっていますのでご注意ください。
このIllustratorの「グループの抜き」という機能自体はPDFとは親和性の高い構造です。この機能の実装自体はPDFのトランスペアレンシーグループのノックアウトグループを念頭に設計されているのだと思われます。
まずはPDFファイルフォーマットの解説から引用して抄訳してみます。

ノックアウトグループでは個々の要素はグループ内の先行する要素のスタックではなく、グループの初期背景と合成されなければなりません。オブジェクトが2値形状(内側は1.0、外側は0.0)を持つ場合、各オブジェクトは、同じグループ内で重なる以前の要素の効果をノックアウトします。任意の点で、その点を囲む一番上のオブジェクトだけが、グループ全体の結果の色と不透明度に寄与しなければなりません。

(PDF3200-2008.pdf P.338)

PDF上でのノックアウトグループはグループ最上部に配置されたオブジェクトによってグループ全体の不透明度やカラー設定がコントロールされます。Illustratorの「グループの抜き」においてもグループ内で最上位に位置するオブジェクトの設定がグループ全体の表示に影響を与えます。と、文章だけでは理解しがたい部分もありますのでIllustrator上での例を見てみましょう。

こちらの例はグループの抜きが設定されたグループ内で、各オブジェクトがグループに対してどのように影響を及ぼすのかを示したものです。

青矩形・赤矩形及びテキストがグループの抜きを構成しています。黄色は背景でグループ内の要素ではありません。

青い矩形は下の赤い矩形を完全にノックアウトしその交差部分は青い矩形の設定が優先されます。一方、最上位に配置されたテキストは全てのグループ内のオブジェクトをノックアウトし、その部分はテキストに設定された不透明度0%が適用されます。
いかがでしょうか? 先に紹介したPDFのノックアウトグループの挙動と全く同じであることが分かったかと思います。
ということで、恒例のPDF内部構造の探検を行ってみましょう。

サンプルデータは以下のようなものです。

矩形とテキストという2つのオブジェクトで構成された「グループの抜き」というシンプルなもので、内部構造参照の際にできるだけ単純にみることができるようにしました。

基本的にトランスペアレンシーグループを構成しますので一般的なページコンテンツには外部オブジェクトとグラフィックステート情報への参照のみが定義されています。以下はXObjectとExtGStateを辿って内容を解読する必要があります。

ご覧のようにページコンテンツから参照されるXObjectにもグループ構造のみが含められ、オブジェクトに関連する情報が存在せず更なる子要素への参照のみが存在します。

孫要素のFm0およびFm1(XObject)にはそれぞれコンテンツが定義され、ここにオブジェクトの実体が含められています。注目すべき点はFm1のGroup辞書に定義されているKの値です。Fm1のKのみtrueとなっています。これがノックアウトするかどうかを示すフラグとなっています。

このように丁寧にたどってみると構造自体は明確にPDF仕様に準じたものです。これをAcrobat以外が再現できないというのは問題ですね。たぶんグループ辞書内のフラグの解釈が正しくないのだと思いますが、本当のところは検証もむつかしいので断言はできません。

単純化したモデルでもこれぐらい参照が深くなります。アピアランスを多用したドキュメントではこのような参照構造が数十にも及ぶケースもあります。こういった構造の表示画像演算を効率化するという意味もあって、この様なトランスペアレンシーグループが利用されるようになっています。

3回に渡って様々な透明効果処理等を見てきましたが、各機能の書き出しに極端に複雑な処理は入っていませんでした。これはIllustratorというアプリケーションが持つ特色です。

Illustratorの機能実装というのはPDFの構造定義と密接につながっています。実際に今回のサンプルのようなノックアウトグループが含まれるPDFもIllustratorでは正しい構造で開くことができます。IllustratorがPDFを開くことができるというのは、その機能の実装がPDFフォーマットと共に歩んできた証でもあります。このあたりはIllustratorがPostScriptのサブセットをファイルフォーマットとして歩んできた歴史の一端を垣間見るようで非常に興味深いことです。

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする