近年、インデックスカラー形式の画像は、対応ハードウェアが減少し、また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ファイルを使用できます。

動作環境

OS
Windows
11, 10, 8.1(いずれも64bit版のみ)
言語 日本語
価格 無料
対応するUnity Editor Unity 2019 LTS (2019.4.22f1で動作確認済み)

ダウンロード

シェーダー及びインポータの最新版はGitHubで公開しています。アーカイブ(AssetsのSource code(zip))をダウンロードしてください。

お問い合わせ

技術的なお問い合わせについてはGitHubのissuseで受け付けております。

* issue投稿にはGitHubのアカウントが必要です。アカウント作成についてはGitHubのチュートリアルを参照ください。
* issue投稿内容は即時一般公開されますので、個人情報や機密情報を記載しないようご注意ください。

その他のお問い合わせについては下記のフォームをご利用ください。