ベイクしたテクスチャを画像内の指定したチャンネルへと保存するには
https://www.youtube.com/watch?v=QapfVhtvFB4
プロシージャルなどで設定したテクスチャを別のテクスチャ画像へとベイク、または複数の重なったテクスチャを一枚のテクスチャ画像へとベイクして他のアプリやゲームエンジンに持っていく場合など、テクスチャのベイク処理をよく行うかと思います。ただその場合、複数のテクスチャをベイクしようとすると、それぞれに対応するテクスチャ画像を用意する必要が出てきてしまいます。テクスチャによっては、カラーではなく、グレースケールの値しか持たないタイプもあり、そういった場合には、画像のRGBチャンネルにまとめて保存したい場合もあるでしょう。
そこで今回はベイクしたテクスチャを画像内の指定したチャンネルへと保存する方法について解説します。
ではサンプルとなるメッシュに、テクスチャを設定してみます。レイヤー追加 > 拡張:modoテクスチャ > タイル > Fish Scalesで魚の鱗のようなテクスチャをマッピングしてみます。エフェクトをディフューズの色から基本チャンネル > ディフューズ量へと変更しておきます。さらにこのテクスチャのインスタンスを作成し、こちらはサーフェイスシェーディング > バンプに設定してみます。バンプとディフューズ量のテクスチャに差をつけるため、バンプに対しては反転オプションをオンにしておきます。
プロジェクションタイプを立方体にしていましたが、これを通常のUVでマッピングできるよう、ベイクしましょう。ベイクの設定はベイクウィザードを使うと非常に簡単です。ゲームパレット > ベイクサブタブ > ベイクウィザードを起動します。UVを指定し、ターゲットマテリアルをこのメッシュ自身のマテリアルグループを指定します。このメッシュをターゲットに指定し、テクスチャ出力を追加からバンプとディフューズ量とを追加したら、ベイクのみメニューを長押しして、ベイクアイテムの作成とベイクを実行します。そうすると、テクスチャがベイクされるだけでなく、ベイクアイテムも作成されるようになります。
テクスチャを見ると、正しくベイクされているのがわかります。つまりここまでの設定は問題ないということです。ただこの状態だと、バンプとディフューズ量用の2つのテクスチャ画像が別々に出力されてしまいます。これを一つにまとめます。
まずは画像タブから、まとめて出力される画像を新規作成します。作成したらシェーダツリーで、ベイクのテクスチャ画像を選択し、新たに作成した画像を指定します。さらにスウィズルオプションをオンにし、特定のチャンネルを指定します。同様にもう一つのテクスチャ画像に対しても、同様の操作を行います。こちらに対しては、別のチャンネルを指定します。設定し終えたら、ベイクアイテムで再度ベイク処理を行います。
レンダリングされ出力された新しい画像を上書き保存し、Photoshopなどで開いてみると、それぞれのチャンネルに対してディフューズ量とバンプの画像が保存されていることがわかります。このように、ベイク後のテクスチャ画像を同じ画像に設定し、スウィズル機能でそれぞれチャンネルを指定することで、一つのテクスチャ画像へとまとめることが可能になります。