ニュース

「Unity」でインデックスカラーPNGを扱えるカスタムシェーダーが無償公開

サイズがコンパクトでクッキリ美しい画像。カラーパレット方式ならではの表現も

「OPTPiX IndexColorShader for Unity」(ICS)の配布ページ

 (株)ウェブテクノロジは8月19日、ゲームエンジン「Unity」を用いたアプリ開発でインデックスカラーPNG(PNG8)を利用できるようにするカスタムシェーダー「OPTPiX IndexColorShader for Unity」(ICS)を正式公開した。64bit版のWindows 8.1/10に対応しており、現在「GitHub」のプロジェクトページから無償でダウンロードできる。ライセンスは「BSD 3-Clause License」。

 インデックスカラーは色の表現方式の一種で、画像に利用する色をあらかじめ定義(カラーパレット)して番号を振り、どの場所に何番の色を使うのかを指定する。画像の場所に色情報をそのまま埋め込むダイレクトカラー方式よりもデータのサイズを小さくできることから、PCのリソースが限られていた頃はよく用いられてきた。しかし、利用できる色が限られていることもあり、最近では対応するハードウェアも減ってきているという。また、「Unity」では標準でサポートされていないため、使いたくてもなかなか使えないという事情もある。

 しかし、「Unity」でもカスタムシェーダーを利用すればインデックスカラー形式を利用することは可能。今回リリースされた「ICS」は256色以下に減色したインデックスカラー形式のPNGファイル(PNG8)を「Unity」上で直接扱えるようにするカスタムシェーダーとインポーターがセットになっており、「Unity」を使ったアプリ・ゲーム開発で活用できる。インデックスカラー形式に対応しないハードウェアでも問題なく扱える。

 インデックスカラー方式にはメリットもあり、たとえば前述のように画像データのサイズを小さくできる。ETC2などのテクスチャー圧縮とは異なり、「ノイズ」や「にじみ」なども発生しないため、クッキリとした表示になる。

ETC2などのテクスチャー圧縮とは異なり、「ノイズ」や「にじみ」なども発生しないため、クッキリとした表示に

 さらに、カラーパレットを用いるインデックスカラーならではの表現も可能。パレットを差し替えるだけでキャラクターやパーツの色を切り替えたり、パレットアニメーションによるエフェクト実装も行える。「ICS」にはこうしたパレット操作のためのメソッドも用意されているとのこと。詳細は8月25日に行われるコンピューターエンターテイメント開発者向けカンファレンス「CEDEC 2021」のオンラインセッションで紹介されるとのことなので、興味のある開発者は参加するとよいだろう。

パレットを差し替えるだけでキャラクターやパーツの色を切り替え

 なお、「ICS」はテクスチャーインポーターがネイティブプラグインで実装されている関係で、現在のところWindows版のみが先行リリースされているが、いずれはmacOSにも対応するとのこと。動作確認済みの「Unity Editor」は、「Unity 2019 LTS」(2019.4.22f1)。

ソフトウェア情報

「OPTPiX IndexColorShader for Unity」
【著作権者】
(株)ウェブテクノロジ
【対応OS】
64bit版Windows 8.1/10
【ソフト種別】
フリーソフト
【バージョン】
1.0.00 初版(21/07/26)