テクスチャマスク(チャンネルパッキング)のデータ準備

テクスチャマスク(チャンネルパッキング)のデータ準備 アイキャッチ AdobeCC
AdobeCCゲーム制作
この記事は約4分で読めます。

アフィリエイト広告を利用しています-

久々の更新です、東京暑いです。とける……。

さて今回はUnrealEngineのMaterialなどシェーダーで使用するテクスチャマスク(チャンネルパッキング)のデータをPhotoshopで作るときにちょっとだけ手軽に準備してくれるExtendScript(jsx)のお話。

スポンサーリンク

テクスチャマスク(チャンネルパッキング)とは?

3Dとかのシェーダーとかではよく使うTextureをまとめてしまう方法で、意外と2DやUIでは使わない?
いやいやそんなことはなく、特にUnrealEngineのMaterialなんかではよく使うことは多いのではなかろうかと思う。実際使うしね、パフォーマンスの向上や最適化でテクスチャをまとめたり。

どんなTextureデータなのかと、簡単に説明するとグレースケールのTextureを各チャンネル(R,G,B,A)でテクスチャマスクを保持して使用できるデータ。画像データとしては1つのデータなのですが、各チャンネルで違う用途として使えるというとってもお得(?)なデータなのです。

実際TextureSampleの数を減らすことや、テクスチャのドローコールも削減できるので最適化できる一つの方法でもあります。



ダウンロード

下のボタンによりダウンロードして、Photoshopの任意のScript置き場にインストールし
ツールバーの「ファイル」→「スクリプト」→「Act_channelPacking」を起動してください。

更新:2023年7月17日

こちらからもダウンロードできます
サンプルのpsdも内包してます

テスト用にフォルダ「TestSample」内にサンプルのpsdを準備してますので、そちらで動作確認も可能です。

どんなScript(jsx)?

さて本題。何ができるScriptなのか?

基本的には用意したレイヤーセット群をチャンネルパッキングできるように効果を加え各チャンネルに分かれるようにします。
また一番下(奥)のレイヤーセットに黒い塗りつぶしを配します。
あとは任意の保存フォーマットに保存すればOKです。
もちろんいくつかの条件があります。

必須条件

  1. 最前面がレイヤーセットになっていること(このレイヤーセットが対象となります)
  2. 上記最前面のレイヤーセットの子として、レイヤーセットが1つ以上存在する
  3. 上記の子のレイヤーセットには効果は付けない(上書きされるので注意)
  4. このレイヤーセットは上から3つのがそれぞれR G B のチャンネルとなる
  5. 4つ目はアルファチャンネルとして登録され、4つ目以降のレイヤーセットは非表示に変更される
  6. カラーモードは「RGBカラー」になっているpsd(psb)データ

使い方とインストール方法

必須条件を満たしたpsdを開いて、
ツールバーの「ファイル」→「スクリプト」→「Act_channelPacking」を選んで起動してください。

インストールの仕方や詳しいことは下の記事で書いてるのでチェック!

こちらの「どうやって使うの?」に書いてあるよ!




おわりに

たまーにね、これ使うんですわ。UnrealEngineのMaterialの作業で、これ。
もともとは自分用にざっくり準備したのを、今お仕事で参画しているProjectでもたぶん使いそうなので汎用的に使えるようにちょっと手直してみました。

なぜか、最近pngデータを使う会社さん多いので、Photoshopでのデータ制作の場合、アルファチャンネルをちゃんと取得することできませんが(※)
まぁ、3チャンネル取れるので何とかなるよね……実際このScriptでは4つ目をアルファチャンネルとして変換はしてくれますがおまけ機能だと思っていただければ幸いです。

※Photoshopでのpngデータのアルファチャンネル

自分が知らないだけかもですが、Photoshopで出力するpngデータってアルファチャンネル保持できなかった(透明部分として変換されてしまうのかな?)と記憶しております。
いうほどMaterialに関しては今のところ不便を感じたことないのでちゃんと調べたことないですが……そもそもtga使おうぜという話で(笑)

もしやり方ご存知の方いたら、よろしければご教示頂けますと幸いです(他力本願)


コメント