versionedContentについて
さて、CC2023がリリースされました。みなさんはもう試されたでしょうか。今回リリースされたIllustratorCC ver.27.0.0ですが、ヒストリーの「取り消し」問題や保存時のダイアログが動きまくるといった問題を抱えたままのリリースになります。早いこと対応してもらいたいのですが、ここらへんはちょっとアレでどうなってるんだって感じなんでとってもアレなんで…う~んwww
まあ、言いたいことも山のようにあるのですが、忙しいのでこれぐらいで。
新しい機能も追加されましたが、安定性をまずは追及していただきたいと思う今日この頃です。ってもう何年言い続けているのか。今の状況はプロが専門的に利用するツールというよりはコンシュマーターゲットに軸足が向いてるのかなって感じます。機能満載でお得ですよー、こんな事も出来ますよ~って。
いやいや、これぐらいにしておきましょう(^-^;
IllustratorはCC2020(ver24)以降2020形式のファイルフォーマットがデフォルトとなっています。表記上は2020以降と互換性があります。なのですが、ご多分に漏れず各バージョンによってドキュメント上の特定のオブジェクトの取り扱いが異なります。ですから、基本的にバージョンをまたいでの編集は禁忌です。ここまでは以前からお伝えしている部分です。
今回はどういった処理がどうなるかってところを解説したいと思います。
リピートグリッド
2021で実装された機能です。2021〜2023で取り扱いは変わりませんが、2020で開くと該当部分がPDFに変換されて埋め込まれます。該当箇所のPGF上の状態は以下のようになっています。
%AI17_Begin_Content_if_version_gt:24 3 /RadialRepeatObject : /Art : X= 0 Ae u 0 Ae u 4 As 0 O 0 0 0 0 k 0 R 0 0 0 1 K 0 1 0 0 0 Xy 0 J 0 j 1 w 10 M []0 d 0 XR 48.0045194142494 -99.1843066508427 m 28.8784593066284 -99.1843066508427 L 28.8784593066284 -80.058246540646 L 48.0045194142494 -80.058246540646 L 48.0045194142494 -99.1843066508427 L b %_/ArtDictionary : %_/Dictionary : %_/Dictionary : %_0 /Real (ai::Rectangle::Angle) , %_1 /Bool (ai::Rectangle::Clockwise) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::3) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::0) , %_3 /Int (ai::Rectangle::InitialQuadrant) , %_7931.44148936044 /Real (ai::Rectangle::CenterX) , %_0 /Real (ai::Rectangle::CornerRadius::3) , %_0 /Real (ai::Rectangle::CornerRadius::2) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::0) , %_7859.62127659574 /Real (ai::Rectangle::CenterY) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::1) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::2) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::1) , %_19.1260601101967 /Real (ai::Rectangle::Height) , %_0 /Real (ai::Rectangle::CornerRadius::1) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::2) , %_19.126060107621 /Real (ai::Rectangle::Width) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::3) , %_0 /Real (ai::Rectangle::CornerRadius::0) , %_; (ai::LiveShape::Params) , %_(ai::Rectangle) /UnicodeString (ai::LiveShape::HandlerName) , %_; (ai::LiveShape) , %_(0.000000) /String (BBAccumRotation) , %_; %_ U %_/ArtDictionary : %_0 /Bool (IGNORE_INSTANCE_FOR_AGM) , %_1 /Bool (AGM_INSTANCED_RENDERING) , %_8 /Int (RadialRepeatNumberOfArts) , %_0 /Bool (RadialRepeatMergeState) , %_-1.5707963267949 /Real (RadialRepeatStartAngle) , %_5.49778714378214 /Real (RadialRepeatEndAngle) , %_0 /Bool (RadialRepeatReverseOverlap) , %_-105.25 /Real (RadialRepeatRadialCenterY) , %_1 /Bool (RadialRepeatClockwiseArc) , %_38.4414893604389 /Real (RadialRepeatRadialCenterX) , %_0 /Real (RadialRepeatRotationAngle) , %_15.6287234042557 /Real (RadialRepeatRadius) , %_1 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorA) , %_0 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorTy) , %_0 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorC) , %_0 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorB) , %_1 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorD) , %_0 /Real (RepeatMovePrimaryArtToInstanceMatrixFactorTx) , %_; %_ 9 () XW U 9 () XW X+ ; /RadialRepeatObject ; %AI17_Alternate_Content 0 A 0 Xw /ForeignObject : 1 /Version , 1 0 0 -1 -7893 7770 /RTransform , 7893 7770 /Origin , 12.7497359010713 -130.941753459368 64.1332428198066 -79.5582465406324 /Bounds , /Data , %,
versionedContentの直下にRepeatObjectの宣言が入っていて、ここでデータの記述が行われているのですがCC2020はこの部分をレンダリングできませんから読み飛ばします。で、代わりに読み込まれるのは以下の…
%PDF-1.5 %‚„œ” 1 0 obj <</Pages 2 0 R/Type/Catalog>> endobj 2 0 obj <</Count 1/Kids[4 0 R]/Type/Pages>> endobj 4 0 obj <</ArtBox[0.0 0.0 51.3835 51.3835]/Contents 5 0 R/CropBox[0.0 0.0 51.3835 51.3835]/MediaBox[0.0 0.0 51.3835 51.3835]/Parent 2 0 R/Resources<</ColorSpace<</CS0 6 0 R>>/ExtGState<</GS0 7 0 R>>>>/Type/Page>> endobj 5 0 obj <</Length 915>>stream /CS0 cs 0 0 0 0 scn /CS0 CS 0 0 0 1 SCN /Perceptual ri ・ ・ ・
こんな状態のPDFが埋め込まれます。実際にはAscii85ストリームで記述されているためにこんな状態で記述されているわけではないことにご注意を。
そして、2020で開いて保存するとVersionedContentの2021向けに記述された部分はすっ飛ばした状態で保存されます。という事で2021以降で開いたとしてもPDFが埋め込まれた状態で再編集ができない状態になります。
箇条書き
ver.26.5で追加された箇条書きです。こちらは下位バージョンで開くと問答無用で該当箇所がアウトライン化されてしまいます。詳しくは以前のエントリをご参照願います。
クロスと重なり
2023で新しく追加された機能です。下のオブジェクトの指定箇所を上のオブジェクトの上に回り込ませるとてもありがたい機能が実装されています。これもご多分に漏れずVersionedContentとして構成されています。
下位バージョンで開くとこんな感じになります。回り込む部分の指定はブラシでなぞるような作業ですが、このエリアが下のオブジェクトを複製したものに対するマスクとして機能します。そしてこのマスクされた部分が上のオブジェクトの上に配置されるという状態になります。今までわたしたちが手動でやってきた事を自動的にやってくれるという状態ですが、もうちょっとマスクがきれいだったら良かったのに……というのは置いておいて、これも下位で開いたものを保存しちゃうとオリジナルの編集データは破棄されて普通のオブジェクトとマスクがかけられたオブジェクトの組み合わせになってしまいます。この状態はアウトライン取られたりPDFが埋め込まれた場合より若干ましだとも言えますが、オリジナルの情報が失われているという意味ではアカンやつだと言えます。
ということで、CC2020以降と互換性がありますって言ってるのを鵜呑みにするとひどい目に合うという事を覚えておいてください。この互換性はあくまでも「下位バージョンで開くための情報も用意してある」だけで、バージョンをまたいで編集作業を行えるというわけではありません。そして、バージョンを移動した場合「基本的に元のバージョンには戻らない方が得策である」という事を覚えておいてください。