見出し画像

アニメの背景作業で出会う「謎の重いPSDデータ」の発生原因と対応策について

※こちらの問題の解決法に関する情報を取り急ぎ知りたい方は、記事後半の「解決編」からお読みください。

アニメ背景とPhotoshop(PSDデータ)

かつてはポスターカラー絵具で画用紙に描かれていたアニメの背景美術ですが、現在はほぼデジタル化しAdobe Photoshopがメインで使用されることが多いと思われます。BG(背景画)の納品はPSDデータで行われることが今は一般的だと思います。

アニメの背景画の仕事の多くは「すべて一人だけの作業で完結」はせず、美術監督、背景スタッフ、協力会社等、複数人の手を経て完成に向かいます。工程全体においては複数の部門、複数のチーム、複数の会社間で背景画のPSDデータがやり取りされながら作品が作られている、と思います。

画像3

「謎の重いPSDファイル」

そういった中でPhotoshopでBG作業をしていると「一見、特に問題なさそうなのに何故かやたらと重い謎のPSDファイル」に出くわすことが度々ありました。
PSDファイルが重くなる原因自体は複数あると思います。「レイヤー数が多すぎる」「画像サイズが大きい」「表示範囲外にも残っている不要に大きい画像」「フォルダのネスト化、スマートオブジェクトなどの過剰な多用」など。
しかし、そういったわかりやすい原因が一見無いのにも関わらず、何故か非常に「重い」PSDファイルに時々出くわすことがありました。
その「原因が謎の重すぎるPSDデータ」では、ファイルを開くのに非常に時間がかかったり、レイヤーのコピペなど何らかの操作をするたびに待ち時間が発生したり、スペックの低いPCではそもそもまったく動かなくなったり、、といった不都合があり、作業の遅延につながる困りものです。

この「謎の重いPSDファイル」の発生原因と対処方法を幾人かの協力を得ながら自分なりに調べ検証したことを、簡易ですがまとめておきたいと思います。

「謎の重いPSDファイル」の例として試験的に
sky_Normal.psd
sky_Abnomal.psd
という二つのファイルを下記のように用意してみました。

画像4

画像5

上の画像のとおり「sky_Normal.psd」と「sky_Abnormal.psd」とは見た目もレイヤー構造も画像サイズも全く同じで、一見全く同じPSDデータに見えます。しかしファイルの容量を比べて見てみると、

画像6

このようになぜか大きな違いがあり、この例では「sky_Abnormal.psd」のほうが約73MBも「重い」です。そしてデータ容量が重いだけでなく、なぜか作業で扱う際の挙動も非常に「重い」です。このような「一見問題が見つからないのになぜか非常に重いPSDファイル」が今回お話ししたい「謎の重いPSDファイル」になります。

アニメの制作現場においては、背景美術以外の工程でもこの「謎の重いPSDファイル」による支障がでているようでした。例えば撮影時にAEがしばし止まってしまったり、演出チェック用にBGデータを開くのに異様に時間がかかったりなど。ただでさえ時間のない制作現場に余計な負担がかかってしまうケースもあるようでした。

この「謎の重いPSDファイル」についてネットで適当にざっと検索すると、同じような現象に困っている人がおり、その際の対応策などの情報もいくつかは見つかりました。
ただしアニメの制作現場向けにまとまっている情報は見当たりませんでした。
そこで取り急ぎ調べられた範囲での情報や対応策をまとめてみました。正確でないところや説明不足がございましたらすみません、、。(補足やご訂正いただけると幸いです)

原因編

アニメの背景画データでの「謎の重いPSDファイル」はなぜ?どこから発生するのか?

ネットで調べたらおおよその原因は見つかりましたが、結論としてはアニメ背景業務の特性上、今後もその発生を防ぐのは難しいだろうと感じました。それについてまず説明したいと思います。
その後、対策(解決)法について紹介したいと思います。

まず発生原因ですが、新規BG作業時にも過去の素材データなどからレイヤーを移植して使うことによる「不要なRAWメタデータの堆積」が主原因と思われます。

こちらにAdobe公式によるこの不具合の原因説明と、有志の方?が作られて配布されている「不要なRAWメタデータの削除スクリプト」の紹介がありました。(このスクリプトについては対応策編で後述。※2022年9月追記 下記リンク先にはすでに該当ページがなくなっていましたので、それについても対応策編で後述。
https://helpx.adobe.com/jp/photoshop/kb/file-info-freezes-cannot-display-raw-metadata.html

この問題は、Photoshop の 2019 年 1 月リリース(バージョン 20.0.2)で修正されました。

とあり、どうやらPhotoshopCC2019以前のPhotoshopに内在されていた不具合が「重いPSDデータ」の発生源のようです。詳細はよく理解できませんでしたが、古いバージョンのPhotoshopでPSDファイルを保存する時に何か余計なデータ(過剰な数の「DocumentAncestors」という XMP エントリ)が一緒に保存されてしまうという不具合があったようです。そしてそれはどうも保存を繰り返す度に増えていってしまう性質のもののようで、結果どんどんと重いファイルになっていってしまうようです。
その不具合はPhotoshopのバージョンアップによりすでに解消済みのようですが、残念ながらこの記事を書いた時点での最新版PhotoshopCC2021でも過去の重いPSDデータを直してくれる訳ではないため、依然として厄介な状況は続いています。

Adobe公式での対応としては、PhotoshopCC の 2019 年 1 月リリース(バージョン 20.0.2)で不具合を解決済みとありますが、その内実は「新規PSDファイルの保存時に余計な重いデータが新規についてしまう不具合は直した」というだけのようです。なので「すでにある重いファイルに含まれてしまっている既存の余計なデータを保存時に除去してくれる」というものではないようでした。

なので、新規発生は防ぐけどすでにあるものは改善されない、という対応でした。

このような不具合対応ですと、仮にアニメ背景スタッフ全員が最新版のPhotoshopCCを使用していたとしても、アニメ背景業務の特性上、おそらく今後も「重いPSDファイル」は無くなっていかないのではと思われます。

デジタルでのアニメ背景作業の場合、自社の過去のアーカイブ素材を一部加工して再利用したり、他社さんからいただいた素材データを利用して背景画を作成したりと、古いバージョンのPhotoshopデータが混入する機会は頻繁にあります。仮に最新版のPhotoshopCCでファイルを新規作成しても、途中で古いデータ(レイヤー)が混入すると、それによって「重いPSDファイル」が発生してしまうケースがあるようでした。
問題のあるPSDファイル(ドキュメント)内の全レイヤーを複製し、新規に作ったまっさらなドキュメントに丸ごと移して保存すると解決するケースもありましたが、それで解決しない時もあり、この辺りは原因特定できませんでした。

こうしたこともあり、仮に最新版のPhotoshopCCで作業するようにしても、今後も「重いPSDファイル」は発生しつづけるのではないかと懸念されます。

また、補足で検証したところ「重いPSDファイル」を軽く閲覧できるようにとjpegファイルなどにPhotoshopで変換してみたところ、今度は「重いjpegファイル」が誕生しました。(Photoshop以外で開く分には問題ないようでした)
根本的な解決には下記で紹介するスクリプトによる処理が必要でした。

解決編1 ~美術スタッフ向け~

さきほども上げたAdobe公式の原因説明ページに、有志の方?によって作成されて配布されている「不要なRAW メタデータの削除スクリプト」の紹介があります。

--------------------------
2020年9月追記

※すみません!2022年9月現在確認したところ、いつの間にか下記のリンク先のページ内容が変更されていて、スクリプトの配布ページが見当たらなくなってしまっていました!
https://helpx.adobe.com/jp/photoshop/kb/file-info-freezes-cannot-display-raw-metadata.html

※とりいそぎですが、スクリプトの元情報ページを見つけたので下記にリンクを貼っておきます。このフォーラムページで有志の方が書かれたスクリプトを以前はAdobeのサポートページでそのまま配布していたのですが、そのサポートページがなくなってしまったようです、、

上記のフォーラム内にスクリプト内容がそのまま記載されていますが、自分のようにスクリプトに詳しくない人にはハードルが高いかもしれないことを鑑み、スクリプトファイル自体を下記に貼っておきます。使用は自己責任にて宜しくお願いします。問題ありましたら削除いたします。

以下、説明に戻ります。

----------------------
ここでダウンロードできる「removePhotoshopDocumentAncestors.jsx」というスクリプトをPhotoshop内で使うことで、とりあえず「謎の重いPSDファイル」を個別に「軽く」することができました。美術スタッフ向けにはこのスクリプトを利用する方法が確実で良いかと思います。
※スクリプトは「自己責任で」使用を、とのことでしたのでご注意ください。

スクリプトの使用方法

先のページではスクリプトをドラッグアンドドロップで使用する方法が紹介されていましたが、より使い易いと思われる一般的な使用法を一応ご紹介します。
このスクリプトを簡単に使用するには、

C:\Program Files\Adobe\Adobe Photoshop 〇〇〇〇\Presets\Scripts

のようなところにあるScriptsフォルダ内に先ほどのremovePhotoshopDocumentAncestors.jsx
のスクリプトファイルを事前に入れておくと、下記画像のように「ファイル/スクリプト」の項目からすぐ使用できるようになるので、必要な際に使用しやすいと思います。

画像1

不要なRAWメタデータが原因の「重いPSDファイル」に対してスクリプトを実行すると、不要なデータが削除されて「軽く」なると思います。スクリプトの実行に数秒から数十秒かかるケースもあるかもしれませんが、その後は正常に軽く扱えるようになりました。保存後のファイルのデータ容量もスクリプト実行前から2~3割かもっと軽量化されることも多かったです。

※スクリプト実行中に何か触るとエラーになることがあるので、処理が終わるまで触らないほうが良いです。

またこれは自分なりの工夫ですが、Photoshopの標準機能にある 「スクリプトイベントマネージャー」の機能を使って、スクリプトを自動実行するようにしています。
何かファイルを開くと同時に自動で先のスクリプトが実行されるようにして使用しています。これによって作業途中でどんな古いPSDデータを開いた時にも漏れなく不要データを自動削除できます。

こういった工夫で次工程に重いPSDデータを極力残さないようにできるのではないでしょうか。

画像2

私は上の画像のような感じでスクリプトイベントマネージャーでイベントの設定をしています。
私は扱いやすいよう一旦スクリプト実行のアクションを作った上で、そのアクションが「ドキュメントを開く」と同時に自動実行されるようにしています。(アクションにせずに直接スクリプト実行でも良いかと思います)

補足としてこのスクリプトイベントマネージャーを使う際の欠点です。そのままだとファイルを開くとスクリプトが毎回必ず実行されてしまうため、ちょっといろいろ面倒でした。(なにも変更を加えていない開いただけのファイルにもスクリプトが実行され、ファイルを閉じる際に保存するかどうか聞かれてしまうなど)
なのでスクリプトに詳しい方に頼んで「不要なDocumentAncestorsの項目数が一定以上多いときのみスクリプトを実行する」というように改良していただいて使用しています。(私はスクリプトに詳しくないもので、このあたりは詳しい方に、よろしくお願いいたします、、)

解決編2 ~制作その他向け~

先ほどのスクリプトを使用する対応方法は、Photoshopをメインに使用する美術スタッフ向けには良い方法と思います。
ですが、他部門向けの対応策も必要かと思います。「美術からのPSDのBG上りデータをまとめて開いて演出チェックしようとしたら時間がかかりすぎる、、」「撮影しようとBGデータをAEnに読み込んだら操作がやたらと重くて困った、、」といったケースもあるようでした。

こういった他部門向けには「ExifTool」というものを使うのが良いようでした。
ExifToolとは、画像などのメタデータの読み取り、書き込み、削除などの操作を行える無料のオープンソースソフトウェアプログラム、とのことです。
ExifToolの使い方等はちょっと私には難しかったので、詳しく解説されているサイト等をご参照ください、、(バッチファイルとして簡易に実行できるようにすると使い易いかもしれません)

例えば制作さんなどでBG上りのフォルダ丸ごと事前処理したいという場合があると思います。その場合にこの「ExifTool」を使用することでPSDデータの中の不要なRAWメタデータをまとめてフォルダごと削除処理ができました。
こちらの方法は、Photoshop無しで可能です。
大量のPSDファイルに対して一括で不要RAWメタデータを削除する処理ができます。

ExifToolの詳細な運用方法は自分では上手く説明できませんが、下記に参考情報としてExifToolを使用して検証した結果を一部共有いたします

コマンドラインでExifToolで処理を行った際の結果例
・未統合PSDのBGデータ50ファイル6GBに対して、30秒くらいで処理できた
・GUI版もありましたが、そちらでの処理はコマンドラインに比べて時間かかりすぎて実用性が下がった

・ExifToolの処理によって削減できた不要なデータ量の例
PSDファイル約50点に対するケースで
6.5GB → 5.3GB  約1.2GB減らせた
別の例:PSD2ファイル20点に対するケースで
3.8GB → 1.4GB  約2.4GB減らせた

PSDファイル約50点を一度にphotoshopで開くのにかかった時間の差
ExifTool使用前: 約12分20秒
ExifTool使用後: 約2分50秒
ExifTool使用によって10分近く速くファイルを開けるようになった。


数例ですが、以上のようにファイルのデータ容量削減とファイルを開く時間の短縮にも大きな効果がありました。例えば演出チェックなどでBGデータを開くのに時間かかりすぎて困っているケースなどで、効果がある場合もあるかもしれません。

おわりに

PSDデータが重い原因は色々あるかと思いますが、「一見問題なさそうなのになぜか非常に重い」という時には、これまでに説明したような「不要なRAWメタデータ」問題があるかもしれません。

背景美術の作業の性質上、過去の素材データを加筆して活用するケースや複数社でデータ共有することなどは頻繁にあり、今後も「重いPSDデータ」の発生はしばらく避けられないのではないかと懸念されます。
この記事で紹介した「スクリプトを使用する個別処理法」と「ExifToolを使用した一括処理法」が、アニメの制作現場で同様の問題で困っている人のお役に立てば幸いです。

何か間違いや他の良い対応策などありましたら、情報ご共有いただけるとありがたいです。既知の情報だった方もいらっしゃるかもしれませんが、できましたらお手数ですが情報拡散いただけると幸いです。

お読みいただきありがとうございました。

いいなと思ったら応援しよう!