近年、インデックスカラー形式の画像は、対応ハードウェアが減少し、またUnityが標準では非対応という理由から、「使いたくても使えない」「使う場面が無い」と認識されることが増えています。しかし実際は現在でも、Unityでカスタムシェーダーを用いれば、対象ハードウェアを選ばずにインデックスカラー形式を使用することが可能です。

ICSは、256色以下に減色したインデックスカラー形式のPNGファイル(PNG8)を Unity上で直接扱えるようにする、カスタムシェーダーとインポーターのセットです。
ICSの導入により、インデックスカラーならではの様々なメリットを、Unityによるアプリ開発でも活用することが可能となります。

OPTPiX IndexColorShader for Unity導入による3つのメリット

メリット1 「クッキリ圧縮!」

インデックスカラーなら、ETC2などのテクスチャー圧縮とは異なり、「ノイズ」や「にじみ」などが発生しません。

これは特に、ユーザーインターフェース(メニュー、ボタンなど)用の素材やドット絵のような、クッキリした線や文字のある画像の場合に大きな差が出ます。
ICSの導入により、アプリ画面のクオリティが向上します。

圧縮テクスチャー(ETC2/EAC)との比較。PNG8ではにじみやノイズが発生していない。

メリット2 「キレイに軽量化!」

画質を落としたくないキャラクター画像などの場合、テクスチャー圧縮をせず、ダイレクトカラーのまま使用するケースがあります。しかしこれは、アプリのパッケージサイズ肥大化の原因になります。減色してインデックスカラーにすることで、キレイな画像のままダウンロードパッケージのサイズを大幅に削減できます。

また、ICSなら、インデックスカラー形式のままインポートしレンダリングするので、描画用メモリーもダイレクトカラーの1/4に節約可能です。

クオリティの高い減色画像を使用するにはOPTPiX ImageStudio 8のような高性能な画像最適化ツールが必須です。

メリット3 「カラーパレットが使える!」

インデックスカラーならではの、カラーパレット(CLUT)を用いた演出をUnityでも使用できます。 パレットチェンジだけでキャラやパーツの色を切り替えたり、パレットアニメーションによるエフェクトの実装が可能です。
ICSには、これらのパレット操作のためのメソッドも用意されています。

カラーパレット変更で色違いのキャラクターを簡単に作成できる

カラーパレット変更による光の反射のアニメーションの例

その他の特長とメリット

  • 一般的なPNGファイル形式を使用するため、特別なツールを使わなくても、インポート前に画像の内容を簡単に確認できます。
  • インポート後のデータサイズは、一般的なテクスチャー圧縮形式と同じ8bpp。また、カスタムシェーダーを使用して直接レンダリングするため、メモリー使用量も同等です。
  • 汎用カスタムシェーダーでレンダリングするので、ターゲットのプラットフォームを選びません。スマホでもゲーム機でも、同じシェーダー、同じPNGファイルを使用できます。

動作環境

実行環境 OpenGL ES2.0以上、及びプログラマブルシェーダに対応したハードウェア。
※Unity でビルドできるプラットフォームに限ります
言語 日本語
価格 無料
対応するUnity Editor

Unity 2021 LTS, 2020 LTS, 2019 LTS (2021.3.4f1, 2020.3.35f1, 2019.4.39f1で動作確認済み)

対応OS:Windows / macOS (Intel/Apple Silicon)

ダウンロード

シェーダー及びインポータの最新版はGitHubで公開しています。アーカイブ(AssetsのSource code(zip))をダウンロードしてください。(macOSで利用される場合はCloneで取得することを推奨します。)