Home - OPTPiX/IndexColorShaderForUnity GitHub Wiki

本アセットは2023/12/01をもちまして株式会社CRI・ミドルウェアによるアップデート、およびサポートを終了しました。
これまでご意見をくださった皆様、実際にご利用いただいた皆様には心から御礼申し上げます。
サポートは終了しますが、当GitHubリポジトリの公開は当面継続していく予定です。
新たにクローン、フォーク等してご利用いただくことに制限はございません。
またプルリクエストを頂いた場合、内容を検証しマージを検討いたします。
以上、ご理解、ご了承のほどよろしくお願い致します。
2023/12/01 更新
OPTPiX IndexColorShader for Unity (以下ICS) は Unity でインデックスカラーのテクスチャーを利用可能にするアセットです。
インポーターで生成されたマテリアルを指定することで任意の描画オブジェクトでインデックスカラーを使用することができます。
- パレットチェンジ(動的に任意のパレットデータに変更)できます。
- テクスチャースケール時のBilinearフィルターに対応しています。
- Unityの標準インポーターを経由しないため、パレット内の色の並び順が維持されインポート時間も短縮されています。
平均的な圧縮テクスチャーとデータサイズは同等(8bpp)になりますが、以下のような様々なメリットがあります。
- ぼやけ、滲みといった劣化が無く、ブロックノイズも出ない。
- ダイレクトカラーからの変換処理が圧倒的に高速。(Unityへのインポート時間も圧縮処理が無いため非常に高速です)
- 変換された画像はPCの標準的なビューアーアプリで開いてプレビューできる。
- ビルドするプラットフォーム別に画像ファイル(ETC2/PVRTC/ASTCなど)を用意しなくてよい。
- パレットチェンジによる色変えができる。(後述のデモを参照)
- OpenGL ES2までしかサポートしない旧いハードウェアでも描画が可能。
インデックスカラーの画質は減色エンジンの性能に大きく左右されます。
OPTPiX ImageStudio では高品質な減色はもちろん、重要領域の指定といったアドバンスドな機能もサポートします。
インデックスカラーの品質、有用性を確かめるために是非一度お試しください。
詳しくはこちら
複数のパレットを用意し、キャラクタ毎に色を替える例です。
- パレットの内容
パレットのカラー値を線形補間で滑らかに変化させています。
一部のカラーのみフェイドアウトさせるような事もできます。
応用例としてロボットに光が反射する様子をパレットの変更のみで行っています。
テクスチャーの拡大縮小時にバイリニアフィルターリングを指定できます。
補足:インデックスカラーテクスチャーの場合、サンプリングされるデータはRGBAのカラー値ではなくパレットのインデックス値になっているため、パレットデータを参照しカラー値を取得してからブレンドする必要があります。この処理をICSのピクセルシェーダで行っています。
無し | 有り |
---|---|
![]() |
![]() |
デモデータとサンプルプログラムはこちらからダウンロードできます。
本プログラムのライセンスは修正BSDライセンスです。
条文はLICENSEファイルをご覧ください。
- バージョン:2021 LTS, 2020 LTS, 2019 LTS (2021.3.4f1, 2020.3.35f1, 2019.4.39f1で動作確認済み)。v1.1.0 で Apple Silicon 版に対応。
- OS: Windows/Mac
OpenGL ES 2.0 以上、及びプログラマブルシェーダーに対応したハードウェア。※Unityでビルドできるプラットフォームに限ります。
- Clone (Macではこちらを推奨)
- https
git clone https://github.com/OPTPiX/IndexColorShaderForUnity.git
- ssh
git clone [email protected]:OPTPiX/IndexColorShaderForUnity.git
- https
- UnityPackage形式
-
zip形式
Assets → Source code(zip)
をダウンロードしてください。 - リリース一覧
macOS Catalina 以降で .unitypackage または zip形式でダウンロードした場合、セキュリティ警告が表示されるため導入手順が複雑化します。
このため、Cloneによる取得を強く推奨しております。
ダウンロードによる取得の手順についてはこちらを参照ください。
- UnityPackage形式 ※先にICSのソースファイルをインポートしておく必要があります。
- サンプルを含むブランチ
2023/12/01をもちまして株式会社CRI・ミドルウェアによるサポートを終了しました。
========================================================
株式会社CRI・ミドルウェア
https://www.cri-mw.co.jp/
Copyright © CRI Middleware Co., Ltd.
========================================================