Glee Ai 1.3b

Mac版 Illustrator CC 2018.1(v22.1)で、Finderの「情報を見る」に表示されていた作成/保存バージョンがなくなってしまいました。 https://forums.adobe.com/thread/2465963

Glee Aiはこのリソースフォークの情報ありきで作っていたので、仕様変更を余儀なくされることに。そこで、どのような仕様が良いのかをここで相談したいと思います。今のところ、考えて作ってみたのはこれ。

1.3b-97 Box

  • 環境設定 > 「リソースフォークがなかったら、情報ウインドウを表示する」を廃止
  • 環境設定 > 「リソースフォークがなかったら、ファイル内の保存バージョンを調べる」を新設

3b

デフォルトでONです。

3b-2

リソースフォークがなかったら、最初からファイル内の保存バージョン(Creator)を取得して、作成/保存バージョンが異なっていたら情報ウインドウを出します。ちょっと使ってみて感想をくださいな。

「いいね!」 4

バッチリです!って言おうとしたら、なんか変な挙動したぞ……。

gleeai13b_ss01

gleeai13b_ss02

バージョンダウンって言われるヤツと、普通に開くヤツがありますね……。

この表示が出てるファイル、元々v21で作ったものを、途中からv22.1で開いて保存したヤツだと思います。たぶん。

CreatorではなくCreatorToolが返ってきてますね。
実は手持ちのCS6ファイルの1個だけ同じ現象が起こって、稀なことかなーと思っていたんですけど、どうやら結構あるみたいですね…。

  • CreatorToolが返ってきたら下位保存はしていない

こう決めつけて大丈夫なら話は早いんですけど。決めつけちゃおうかな…

追記:
CreatorはExifToolで取得しているんだけど、そういえばAI8_CreatorVersionは自前で取得してた。Creatorも自前で取得してみる。

「いいね!」 2

1.3b-99 Box

  • Creatorの取得を改善
  • 1.3b-97の「リソースフォークがなかったら、ファイル内の保存バージョンを調べる」を廃止
  • リソースフォークがなかったら必ず保存バージョン(Creator)を取得するようにした

3b-99

環境設定がシンプルになりましたねー

Creatorの取得は、.aiは自前で、.epsはExifToolで取得するようにしました。
.aiはCreatorが1ヶ所だけで、しかもわりとファイルの先頭側にあるので、自前で取得してもそんなに遅くなりません。一方、.epsはCreatorが2ヶ所にあり、しかもファイルの後ろ側にある2番目の方が保存バージョンです。この取得は自前ではかなり遅くなる懸念があるのでExifToolにまかせました。

このように処理分岐したので、もうめんどくさくなって、リソースフォークがなかったら必ず取得するようにしました。そのかわり、リソースフォークがない+ファイルサイズが巨大な.epsは、保存バージョン取得にかなり時間がかかるかもしれません。私が.epsを扱うのは仕事でもほとんど皆無なので、どのくらいストレスになるのかわかりません。このあたりを確かめていただけたらと思います。

追記:
1GB以上のEPSファイルを作って試してみたら、やはり相当時間がかかりました。

  • 環境設定>「リソースフォークがない Illustrator EPS は、保存バージョンを調べない」

この設定が必要かな…。

「いいね!」 1

昨日の変な挙動をしたファイルは、無事に期待通り認識するようになりました!
もう少し揉んでみますね!

「いいね!」 1

どこが処理速度のボトルネックなのかを把握するため、アプリを作ってみました。

Ai File Info 1.0-2 Box

  • ウインドウにファイルをドロップすると、情報を一通り表示します。
  • リスト行右端に処理に要したマイクロ秒(1秒の1000000分の1単位)が表示されます。
  • 右下に処理全体に要した秒数が表示されます。
  • 赤く着色される行は、バージョン判別に利用する箇所です。

05-minishadow

これを使いながら、なるべく速くなるように調整を重ねたのですが、最後にどうしようもなくなったのが、やはりEPSの「2番目のCreator」です。

実は、空きメモリ量が十分にあれば、処理速度の改善が可能です。一方、空きメモリ量が少ないとディスクスワップが発生してしまい、激遅になります。つまり、そのときの状況次第なのですね。

そこで、「空きメモリ量よりファイルサイズが大きかったら2番目のCreatorは調べない」という仕様にしてみました。

42-minishadow

ここが落とし所かな~と思います。
で、このアプリも結構便利だと思うので、よかったら使ってみてください。

あ、お手元に「リソースフォークがない巨大なIllustrator EPSファイル」がありましたら、速度的に問題がないか試してみてください。

「いいね!」 1

また嬉しいアプリが爆誕してる!!!

で、さっそく試してみました!

465.5MBのEPSです。
リソースフォーク有りと、削除して無しにしたものでテスト。

52

00

メモリに余裕がある状態だったので、さほどスピードは落ちてません。

面白くないのでParallelsで仮想マシンいっぱい立ち上げてリトライ。

07

ふむー。飛ばしましたね。メモリすれすれでファンがうなりを上げる中、これならバッチリです。

29

古めのヤツもちゃんと読めてます!

検証、ありがとうございます! 狙い通りに動いてますねー。
Glee Aiの仕様として、

  • リソースフォークがない + Illustrator EPS + v.9以降で作成 + 空きメモリ不足
    → ウインドウで通知する

こうすれば、ユーザー側の設定も不要で、Glee Aiがフリーズしているかのような状態になるのも防げます。

どうしても保存バージョンが知りたいこともあるでしょうから、[空きメモリ不足でも調べる]ボタンを付けて、どんなに時間がかかっても調べられるようにした方がいいですね。

Ai File Info も需要があるはずなので、あわせてブラッシュアップします。

チャンスなのでどさくさに紛れて要望だしておこう……。

  • Glee AiのIllustrator一覧の画面で、一覧のダブルクリックで選択・オープンしたい
    CC 201x で開くボタンと同じ動作をさせたい)
  • Glee Aiが、どのファイルを、いつ、どのバージョンで開いたか、解析結果とあわせてログを残して欲しい
  • Ai File Info、ぜひ(主にDockの)アイコンにドロップで開いて解析するようにして欲しい!
  • Ai File Info、ファイルサイズをどこかに表示しておいた方が良いと思います!

Glee Aiが子細にログを記録してくれると、ソフトウェアのデバッグ目的だけではなく、仕事に役に立つデータになるのではないかと思います。

なにしろ関連付けているから、Illustrator仕事の履歴そのものが残る。これは結構凄い。

あとから事故の原因を調べたり(Glee Aiの言うことを聞かずにムリヤリ開いたとか)、社内で取り扱われたファイルの作成・保存バージョンの統計を出したり、ログに検索をかけて履歴を辿ったり……。


あとこれ、オマケ。死んだらスクリーンショット入れとくフォルダ。

  • Glee Ai:ダブルクリックで選択・オープン → 了解
  • Glee Ai:ログを残して欲しい
    → 了解。コンソールで確認できればいいですよね
  • Ai File Info:アイコンにドロップ → 了解
  • Ai File Info:ファイルサイズを表示 → 了解

Glee Aiのクラッシュは、1.3bでも発生しますか?
(原因を突きとめて直したつもり…)

1.3bになってからはまだクラッシュしてません!
引き続き使いながら確認していきますね!
なおってるといいなぁ。

要望の件、ありがとうございます!
ログはコンソールで十分です。やったー!

Ai File Info 1.0b-13 Box
公開レベルまで持っていきましたよ。

  • アイコンへのドロップに対応
  • 追加:空きメモリ量とファイルサイズの表示
  • 追加:[空きメモリ量を無視して取得する]ボタン
  • 追加:v.9以降のIllustrator EPSの2番目のCreatorを検出するかどうかの設定
  • v.7までのAi8_CreatorVersionがないネイティブファイルにも対応
  • 日本語ローカライズとか、その他沢山

こんな感じ。
38-minishadow

[Tips]空きメモリ量のラベルをクリックすると、表示を更新します。

そうそう、上図を見ると、v22.1の.epsって、リソースフォーク消してないんですよね。「バージョンダウンは.epsにする」なんてルールができたりして。モヤモヤ。

「いいね!」 3

あ、とてもいいものを作られている…。
時間があるときに試してみます!

「いいね!」 1

Ai File Info のバージョンの見方

★作成バージョン

  • リソースフォークがある 「リソースフォーク: 作成」
  • リソースフォークがない / v.7まで →(不明)
  • リソースフォークがない / v.8以降 →「AI8_CreatorVersion」

★保存バージョン

  • リソースフォークがある 「リソースフォーク: 保存」
  • リソースフォークがない .ai 「Creator (1)」
  • リソースフォークがない .eps / v.8まで 「Creator (1)」
  • リソースフォークがない .eps / v.9以降 「Creator (2)」

★補注

  • v.18(CC 2014)作成以降の保存バージョンが「17.0」→ バージョンダウン保存していない
「いいね!」 1

最強定番アプリがまた一つ確立した気がする……。

また勝手に要望!

Ai File Info、おもむろにコピー(Cmd-C / Ctl + C)すると、情報をテキストでクリップボードに書き出す機能があるといいなぁ。入稿受付時とか、トラブルシューティングで便利。Adobeフォーラムでも便利かも。

営業とか受付担当に使ってもらって、いざという時はコピーして送ってもらうイメージね。
「結果をコピーして、メールに貼り付けて送ってください!」

(Windowsのエラー等のメッセージダイアログって、だいたいコピーすると文字列がクリップボードにとれるんです。検索するときこれが凄い便利で……。そこからの着想です)

現状でもリストの行を選択して(複数行選択可)cmd+Cできるんですけど、cmd+Cでとにかく全部クリップボードへというのも良さそうですね。それともテキストファイル書き出しの方がいいかな…? 検討しますねー

「いいね!」 1

Ai File Info 1.0-18 https://app.box.com/s/xoa44huuldbp94b1bm3ylmea1gefrkpy

・追加:メニューバー「編集 > リストをクリップボードへコピー」shift+cmd+C
・追加:メニューバー「ファイル > 書き出し…」cmd+E
・修正:リソースフォークのバージョン取得に失敗する場合があったのを直した
・修正:ドロップされたのがエイリアスだったらオリジナルの方を調べるようにした
・その他、ブラッシュアップ

これで正規版としますね。ここで練られたことをGlee Aiに反映させていきます。

「いいね!」 1

Ai File Info 1.0-19 Box

  • 追加:「バージョン判定に必要な情報のみ取得」設定
  • 追加:メニューバー「ファイル > 実行」cmd+R

14-minishadow

Glee Aiへ移植しやすいようにリファクタリングをしていたのですけど、Glee Aiはバージョン判定ができればいいので、リソースフォークがあるファイルなら他の情報は不要なんです。

そこでGlee Aiモードとして「バージョン判定に必要な情報のみ取得」をできるようにしました。ここがONの時の秒数がGlee Aiで実際に要する時間です。

どんなに激重なファイルでも、リソースフォークがあれば0.2秒くらいで済むんですよね…。
CC 2018.1(v22.1)以降はここまでの速さが不可能になってしまいました。

「いいね!」 1

もう、Ai File Infoがリソースフォークを書き込んじゃった方がいいのではないかと……。

リソースフォークの書き込み、できるのかな…試してみるー

追記:
もし書き込めたとしても、v22.1以降は開いて保存すると消しちゃうよね。
あんまり意味ないかも…。

「いいね!」 1