26.5で拡張されたIllustrator2020形式の仕様について
Illustratorファイルの仕様に関しては以前から互換性に関する情報をお届けしています。CC以降はVersionedContentという仕組みが用意され、同じCC形式や2020形式においてもバージョン毎に処理される方法が異なる可能性がある事は以前からお伝えしているとおりです。
恐らく、Ver.26.5はCC2022の最終レビジョンになる可能性が高いのですが、このバージョンで追加された機能が保存ファイルに与える影響というのを綿密に検証してみましたので、このポストでお知らせする次第です。
さて、Ver.26.5の目玉機能は「箇条書き」だというのは万人が認める所だと思います。わたしも、この機能を待っていました。実際のところの話をすると、もう少し調整に自由度が必要だと感じていますが、そこはバージョンアップでの改善を期待するところです。と、言いたいところなのですが、とりあえず、この機能がファイルに対してどのような影響を与えているのかを評価しないことには始まりません。
まずは実際に使ってみます。
このように箇条書きを指定すると行頭にブレットが自動的に挿入されます。これを数字やアルファベットに指定できるのですが、今回はその部分の評価ではないので割愛します。
さて、これを2020形式で保存します。そして、それをCC2021などの旧バージョンで開いてみます。
はい、このように箇条書きで指定された部分はアウトライン化された状態で開かれてしまいました。
それでは、ファイル構造がどうなっているのかを見ていきましょう。
これは、VersionedContentとして箇条書き指定された部分が保存されるために起こる挙動です。旧バージョンでは箇条書き機能を処理できないために旧バージョンではアウトライン化した情報にフォールバックさせるために起こる事です。
実際に保存ファイルを展開してみると、当該部分は以下のようになっています。
%AI5_BeginLayer 1 1 1 1 0 0 1 0 79 128 255 0 50 0 Lb (Layer 1) Ln 0 AE %_/ArtDictionary : %_/XMLUID : (Layer_1) ; (AI10_ArtUID) , %_; %_ 0 A 0 Xw %AI17_Begin_Content_if_version_gt:24 6 /AI11Text : 0 /FreeUndo , 0 /FrameIndex , 0 /StoryIndex , 2 /TextAntialiasing , ; %AI17_Alternate_Content 0 Ae u 0 Ae *u 4 As 0 O 0 0 0 1 k 0 1 0 0 0 Xy 0 J 0 j 1 w 4 M []0 d 0 XR 59.8671875 -129.12841796875 m 59.8671875 -128.373046875 60.46728515625 -127.78515625 61.2109375 -127.78515625 c 61.9541015625 -127.78515625 62.5537109375 -128.384765625 62.5537109375 -129.12841796875 c 62.5537109375 -129.8720703125 61.9541015625 -130.4716796875 61.2109375 -130.4716796875 c ・ ・ ・
挙動としては以下の部分での振り分けで26.5以降では当該箇条書き部分をUndoFreeTextストリームから再現します。
%AI17_Begin_Content_if_version_gt:24 6
しかし、以前のバージョンでは「%AI17_Alternate_Content」以降のアウトライン部分をデータとして利用します。
互換性があるとされるCC2020以降においてもバージョン毎に挙動が異なるために「箇条書き」機能を利用する場合は注意が必要です。特にバージョンをまたいでデータのやり取りを行う場合、保存形式を変更していないにも関わらずデータ構造が意図せず変化してしまうという危険性がある事に注意を払う必要があります。
では、UndoFreeTextストリームを展開してみるとどうなっているかというと…
このように、RomanNumeralSequenceGenerator、ArabicNumberSequenceGenerator、AlphabeticSequenceGenerator、BulletSequenceGeneratorの各種情報が冒頭部分に挿入されています。
このようにファイルフォーマット自体もかなり拡張されています。
これは、マイナーアップデートで拡張してほしくなかったなぁ……(^-^;