近年、インデックスカラー形式の画像は、対応ハードウェアが減少し、またUnityが標準では非対応という理由から、「使いたくても使えない」「使う場面が無い」と認識されることが増えています。しかし実際は現在でも、Unityでカスタムシェーダーを用いれば、対象ハードウェアを選ばずにインデックスカラー形式を使用することが可能です。
ICSは、256色以下に減色したインデックスカラー形式のPNGファイル(PNG8)を Unity上で直接扱えるようにする、カスタムシェーダーとインポーターのセットです。
ICSの導入により、インデックスカラーならではの様々なメリットを、Unityによるアプリ開発でも活用することが可能となります。
インデックスカラーなら、ETC2などのテクスチャー圧縮とは異なり、「ノイズ」や「にじみ」などが発生しません。
これは特に、ユーザーインターフェース(メニュー、ボタンなど)用の素材やドット絵のような、クッキリした線や文字のある画像の場合に大きな差が出ます。
ICSの導入により、アプリ画面のクオリティが向上します。
画質を落としたくないキャラクター画像などの場合、テクスチャー圧縮をせず、ダイレクトカラーのまま使用するケースがあります。しかしこれは、アプリのパッケージサイズ肥大化の原因になります。減色してインデックスカラーにすることで、キレイな画像のままダウンロードパッケージのサイズを大幅に削減できます。
また、ICSなら、インデックスカラー形式のままインポートしレンダリングするので、描画用メモリーもダイレクトカラーの1/4に節約可能です。
インデックスカラーならではの、カラーパレット(CLUT)を用いた演出をUnityでも使用できます。
パレットチェンジだけでキャラやパーツの色を切り替えたり、パレットアニメーションによるエフェクトの実装が可能です。
ICSには、これらのパレット操作のためのメソッドも用意されています。
カラーパレット変更で色違いのキャラクターを簡単に作成できる
カラーパレット変更による光の反射のアニメーションの例
実行環境 | 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で取得することを推奨します。)
技術的なお問い合わせについてはGitHubのissueで受け付けております。
* issue投稿にはGitHubのアカウントが必要です。アカウント作成についてはGitHubのチュートリアルを参照ください。
* issue投稿内容は即時一般公開されますので、個人情報や機密情報を記載しないようご注意ください。
その他のお問い合わせについては下記のフォームをご利用ください。