背景
UnityのStarndard ShaderのMaterial設定を見るとRoughnessテクスチャの設定がありません。
Roughnessは粗さを表す値です。
詳しくはこの記事!
大事なのはここ
・BlenderのRoughness MapとUnityのSmoothness Mapはどちらも0〜1の濃淡で表現される画像である
・BlenderのRoughness MapとUnityのSmoothness Mapは白黒反転すれば同じものになる
・Metallic Mapは共通である
・UnityではMetallic Mapの各ピクセルの不透明度(0〜1の値)がSmoothnessに使われる
糸凪邑さんの記事ではGIMPで作業していましたが、この記事ではPhotoshopを使った変換方法をメモします。
準備するもの
- Adobe Photoshop (今回は2022を使用)
- Metallic Mapを担当するTexture (pngなど)
- T_Sample_Metallic.pngとする
- Roughness Mapを担当するTexture (pngなど)
- T_Sample_Roughness.pngとする
アウトプット
- Unity用に変換したMetallic Mapを担当するTexture (tgaファイルに書き出し)
手順
各画像をレイヤー化
まずPhotoshopでT_Sample_Metallic.pngを開きます。そこからT_Sample_Roughness.pngをドラッグ&ドロップで追加します。
各画像をレイヤーとして操作できるようにします。
レイヤーの[T_Sample_Roughness]を右クリックし、[レイヤーをラタライズ]を選択します。
レイヤーの背景を右クリックし[背景からレイヤーへ]を選択します。
レイヤー名を「T_Sample_Metallic」として、OK
[T_Sample_Metallic]が上に来るように順番を組み替えるとこうなります。
モードをRGBに
メニュータブから[イメージ]>[モード]>[RGBカラー]を選択します。
ホップアップにたいして、レイヤーを [結合しない] を選択します。
Roughnessを白黒反転
レイヤーから[T_Sample_Roughness]を選択した状態で
メニュータブの[イメージ]>[色調補正]>[階調の反転]を選択します。
すると、反転しているのがわかります。
MetallicのアルファチャンネルにRoughnessをアサインする
レイヤーで[T_Sample_Metallic]を選択。
チャンネルタブを選択。
下のプラスボタン「新規チャンネルを作成」を選択。
するとアルファチャンネル1が現れる。
チャンネルタブでRGBを選択した状態で、レイヤーに戻る。
[T_Sample_Roughness]をコピーするために、表示を変更。
Ctrl+A, Ctrl+Cで全部選択してコピー
レイヤータブで[T_Sample_Metallic]を選択する。
チャンネルタブを選択、アルファチャンネル1を選択して、Ctrl+Vで貼り付け。
画像を結合
メニューバーから[レイヤー]>[画像を結合]を選択
別名で保存
メニューバーから[ファイル]>[別名で保存]を選択
Targa形式を選択。保存。32bit/pixelsを選択。
Unityで確認
Alphaが追加されるようになった。
Unityでのルック
変換前のMetallic Textureでは、テカる必要のないところがテカっていたが、変換後では、質感に合わせて調整されるようになった。