記事一覧

Substance Painter 2018 でSSSを使う方法

Substance Painter Summer 2018(Ver 2018.2)の新機能として、SSS(Subsurface Scattering)が利用できるようになりました。
SSSを使うと、人間の皮膚や牛乳などをリアルに表現できます。

ここではSubstance Painter 2018.2でSSSを設定する手順を載せておきます。なお、本家AllegorithmicのSSSに関するYouTube動画(英語)も公開されているので、そちらも確認しておくと理解しやすいと思います。


Substance Painter 2018.2 で SSSを使う手順


まずはSubstance Painterで新規プロジェクトを作成します。TemplateからPBRを選択してMeshファイルを指定してプロジェクトを作成します。
※このあたりの手順は、これまでのSubstance Painterと同様の手順になります。
New project


プロジェクトを作成したら、ベイク処理を行っていくつかのマップを作成します。
TEXTURE SET SETTINGSから「Bake Mesh Maps」ボタンをクリックします。
Bake mesh maps


ハイポリゴンのメッシュメッシュなどを指定して、「Bake ~ Mesh Maps」ボタンをクリックして、各種マップを生成します。(複数のテクスチャセットが存在する場合は「Bake all texture sets」ボタンで全てのテクスチャセットに対してマップを生成できます)
ハイポリゴンが存在しない場合(最初に読み込んだMeshをハイポリゴンとして使いたい場合)は、High poly parameters の Use Low Poly Mesh as High Poly Mesh にチェックを付けておくと良いでしょう。
※参考:Max Frontal Distance、Max Rear Distanceは、ローポリとハイポリを重ねたときの距離のずれ(それぞれ、外側と内側に対する距離)の許容値になります。Use Low Poly Mesh as High Poly Meshにチェックを入れている場合は、ローポリ=ハイポリのため距離のずれはありません。
この値は利用するモデルによっても適切な値が異なるので、実際に利用するローポリとハイポリの内容に合わせて調整してみてください。(単に大きな値を設定すれば良い…という訳でもなく、大きくしすぎると変なシワができたりします)
Bake mesh maps


これで複数のマップが生成されました。
ベイク処理を行ってこれらのマップを作成しておくと、Substance Painterの色々な機能が使えるようになります。(モデルの角の部分に塗装が剥げたような効果を適用する…とか)
Baked mesh maps


今回のモデルはMODOで作成して「Head」というマテリアルを設定していたので、TEXTURE SET LISTにも「Head」が表示されています。
とりあえず、Headに肌色のマテリアルを設定しました。
Head texture


プレビュー画面だとこんな感じになります。
※モデルとUVマップは、MODOでサクッと作成したものなので、あまり細かい調整はしていません。
Preview



SSS(Subsurface Scattering)の設定


いよいよ、SSSを使うための設定に入ります。
TEXTURE SET LISTから「Head」を選択し、TEXTURE SET SETTINGSの「プラス」ボタンから「Scattering」を追加します。このScatteringというのが、SSSです。
Add Scattering


TEXTURE SET SETTINGSに「Scattering」が追加されました。
Scattering


SSSのペイントを行うために、LAYERSで「Add a fill layer」ボタンをクリックして、Fill layerを追加します。(このFill layerに対して、SSSの塗りつぶしを設定していきます)
Add fill layer


分かりやすいように、追加したFill layerの名前を「SSS-fill」に変更しておきます。(任意)
Rename fill layer


SSS-fillの「PROPERTIES-FILL」の部分で、「scatt」だけを選択してScatteringの色を「1」に設定します。この設定は「塗りつぶしを行うFill layerに対する設定」で、意味合いとしては「Scatteringの設定だけ、100%の効果で塗りつぶす(他のcolorなどは使わない)」という感じになります。
Fill settings


SSSの効果を表示するためには、DISPLAY SETTINGSの「Activate Subsurface Scattering」にチェックを入れます。このチェックを入れておかないと、SSSの効果は有効になりません。
Sample Countは、表示するSSSの品質に関する設定です。数値が大きいほど綺麗に描画できますが、描画速度が遅くなるので、プレビュー画面で確認しながら調整すると良いでしょう。
Activate SSS


SSSを適用した後のプレビューです。
今は「Fill Layer(SSS-fill)の設定で、全体をScattering 100%で塗りつぶす」設定になっているので、全体的にのっぺりとした感じになっています。
SSS Preview


SSSの効果を適用する部分を調整するために、Black maskを追加します。(黒い部分は効果が適用されず、白い部分ほど効果が適用されるマスク)
LAYERSからSSS-fillを選択し、Add mask(四角に黒丸のアイコン)から「Add black mask」を選択します。
Add black mask


これで、SSS-fillのプレビュー部分に黒い「Black mask」が作成されました。
次に、追加した「Black mask」を選択(黒いBlack maskのプレビュー部分をクリックすると青枠で選択された状態になります)し、Add effect(マジックワンドのアイコン)から「Add fill」を追加します。
Add fill


Black mask の下に「Fill」が追加されます。
※Fillのデフォルトでは「灰色」で塗りつぶされる設定になっているため「Black mask」のプレビュー画像が灰色に変わっています。
Select fill


灰色のべた塗りから、最初のベイク処理で生成した「Thickness map」で塗りつぶすように設定を変更します。追加したFillを選択した状態で、PROPERTIES-FILLのGRAYSCALEから「grayscale」というボタンをクリックし、RESOURCESから「Thickness map」を選択します。
※RESOURCESのテキストボックスに「proj tick」と入力すると対象を簡単に絞り込めます。
Select Thickness map


これでBlack maskの塗りつぶしが、灰色のべた塗りから「Thickness Map」による塗りつぶしに変わりました。
Fill by the Thickness map


利用しているThickness Map(厚さを表したマップ)は、SSSとして利用する場合は白黒が逆になっています。(つまり、光が透過しやすい薄い部分ほど黒くなって、SSSの効果が弱くなる)
そのため、白黒を反転させるため、Add effect(マジックワンドのアイコン)から「Add levels」を追加します。
Add levels


追加された「Levels」を選択してPROPERTIES-LEVELSの「Invert」ボタンをクリックします。
LEVELSグラフ下にあるマークが「0=白、1=黒」になれば、色が反転している状態です。
※Levelsは色を反転させる以外に、マスク全体のレベル調整(全体的に黒い部分を増やしたい…など)にも使えます。
Invert


プレビュー右上のプルダウンで「Mask」を選択すると、マスクのかかり具合をプレビューで確認できます。皮膚の薄い部部ほど白く(SSSの効果が適用されやすく)なっています。
なお、元のプレビュー表示に戻したいときは、プルダウンで「Material」を選択します。(キーボードの「m」キーを押せばMaterial表示に戻るので、ショートカットキーを覚えておくと便利です)
Mask preview


SSSをThickness map(反転)で適用したときのプレビューです。
全体にSSSを100%で適用するよりも、いい感じになりました。
SSS On


SSSを使わない場合のプレビューです。
SSSを使ったときとの違いがよく分かると思います。
SSS Off


なお、SSSを使うためには、SHADER SETTINGSの設定も必要になります。この設定はデフォルトで有効になっているはずなので、最後に付け加えておきます。
SSSのプレビューを行うためには「pbr-material-rough」などのシェーダーを選択しておく必要があります。(他にもアルファブレンディング付きのシェーダーなども対応していると思われます)
また、Subsurface Scattering Parametersで「Enable」にチェックを入れておく必要があります。
Scattering TypeでSSSの種類やScale、色を設定できます。
Shader settings




汚れなど他のマスクと一緒にSSSを使う場合のヒント


Substance Painter では、以下プレビューのように、Layerを使って汚れなどのテクスチャを重ねて使うことがよくあります。このとき、汚れが付いている部分にはSSSを適用させたくない(汚れが付いていて透過しない)事があると思います。
ここでは(Allegorithmicの動画で公開されていた方法ですが)その便利な方法を紹介しておきます。
Dirt


LAYERSの構成は以下のようになっています。
Dirtで、マスクを使って全体的に汚れを追加しています。
Dirt layer


汚れ部分のマスクを他でも使いたい場合「Anchor point」を使うと簡単です。
他でも使いたいマスク(Dirtのマスク)を選択し、Add effect(マジックワンドのアイコン)から「Add anchor point」を選択します。
これで対象のマスクに「Anchor point」が追加され、このマスクを他の部分で参照できるようになります。
Add anchor point


次に、SSS-fillのマスク部分で、Add effect(マジックワンドのアイコン)から「Add fill」を追加します。(このFillに対して、汚れのマスクと同じ塗りつぶしを適用していきます)
Add fill


追加したFillを選択し、PROPERTIES-FILLのGRAYSCALEから「grayscale」をクリックし、ANCHOR POINTSタブから先ほど作成した「Dirt Base mask」を選択します。
こうしておけば、汚れ部分のマスクを変更しても、それと同じ内容が「SSS-fill」の塗りつぶしにも適用されます。
Fill by anchor point mask


追加したFillの描画モードは「Normal(通常通り描画)」になっておりThickness mapで設定した内容が上書きされてしまうので、モードを「Multiply」に変更します。
Multiplyに設定すれば、汚れの黒い部分だけが追加されて、白い部分は透過するようになります。
Change blend mode


最後に汚れのマスク画像の適用レベル(どのくらいマスク画像をブレンドするか)を微調整します。
プレビュー画面を確認しながら、良い感じにある値に調整してください。
Adjust


これで完成です。
Anchor pointを使うと、他のマスク画像を簡単に再利用できるので便利です。
Preview



関連記事

スポンサーリンク

  

コメント

コメントの投稿

非公開コメント

最新コメント

スポンサーリンク