承前。

作戦は困難を極める。
  • 目的 :pixivに掲載する広告用Flashファイルに、インタラクティブに反応するLive2Dモデルの実装。
  • 勝利条件 :広告のファイルサイズを本日中に200KB以内に収める。
  • 現状 :広告のサイズは500KBオーバー
なんと絶望的な戦いか。
しかし、泣き言を言っている場合ではない。
我々はやると決めたのだ。
やるしか、ない。


状況確認。
容量の大部分を占めている大きなファイルは以下の3種類。
  • Live2Dライブラリ(配布中の最新版) 約 120KB
  • イプシロンモデルデータ(公式配布のもの) 約 170KB
  • テクスチャデータ(256サイズ) 約 70KB x 3
この内、ライブラリだけはサイズを減らすことが出来ない。 (編:減らしてました)
つまりモデルデータ、3つのテクスチャデータ、この二箇所の攻略が本作戦の要となる。

まずは210KBも占めているテクスチャデータから攻略を開始する。

テクスチャデータはアルファチャンネル(透明部分)を保持した.png形式のファイルである。
普段は品質を重視するため、ほとんど圧縮を行わない。
だが今回は事情が異なる。品質は極力維持しつつ、しかし限界まで圧縮をかける。

我々が目をつけたのは、TinyPNGというサイトだ。
https://tinypng.com/

.pngファイルに非可逆圧縮を行うことで、品質をほとんど落とさず、かつ最大70%も圧縮をしてくれるというサービスである。
さらにアルファチャンネルにも対応しているとのこと。

まるで今の我々ために用意されたようなサービスだ。
早速圧縮をかける。

tinypng01

圧倒的ではないか!
それぞれおよそ80KBもあったテクスチャが、18KB程にまで圧縮された。

しかし、まだ足りない。
500KBが340KB近くまで大きく圧縮された、だが標的はあくまで200KB。
これから、さらに140KB以上の圧縮が必要なのだ。


約500KB → 約344KB


次に、テクスチャのファイル自体の数を減らす。
当時のテクスチャは、それぞれかなり贅沢にスペースを使って配置されたものだった。
これを間隔を詰めて配置しなおせば、一つの.pngファイルにまとめることが可能だろう。

テクスチャの配置を変更したためにモデルにも手を加えたが、ファイルサイズに影響しない変更のため削減は見込めない。
しかし、テクスチャデータを一つまとめること自体には成功した。
結果、18KB×3が18KBに削減できた。(勿論TinyPNGでの圧縮も施してある)


約344KB → 約308KB


ここまで、テクスチャに対して圧縮とファイル数削減を行った。
品質維持のため、画像自体の解像度を下げるのは最後の手段にしたい。
潮時だ。
これをもってテクスチャデータ攻略作戦は完了とする。

引き続き、モデルデータの攻略を開始する。




続く