🙌

Substance Designer メモ

2024/05/05に公開

エフェクト製作で必要そうなメモ。
なお、英語版を使用。

グラフを補助する

Comment

コメントできる。

Dot Node

使用したいノードまとまられる

Frame

ノードを分かりやすくできる。

Pin

F2を押すことでフォーカスを当てることができる。

シェイプや模様の元になるノード

Shape

基本的な形を作成できる
















なお、Tillingで複数作成できる。

また、円の形したものが多いが、Normalに変換すると違いがわかりやすい。
(作例で学ぶSubstance 3D Designerの教科書のp179参照)

Polygon1

色々な多角形を作成できる。








Noise関連


Pattern関連

FX-Map

少し難しいのでパス
参照サイト

形状を変えるノード

Transformation 2D

位置、回転、大きさを変更できる。



Tilling ModeでTillingの方向を限定できる。

Warp

Gradient Inputにテクスチャを指定して、形状やノイズを変えたりすることができる。
Directional Warpの方が形状破綻しにくいが、変形はやや緩やかである。


Directional Warp

ワープの方向を指定するためIntensity Inputにテクスチャを指定して、形状やノイズを変えたりすることができる。



Multi Dir. Warp Grayscale

ワープの方向を指定するためIntensity Inputにテクスチャを指定して、形状やノイズを変えたりすることができる。
Directional Warp とは異なり、アトミック バージョンでは 1 つの方向のみを押すことができるのに対し、複数の方向に押すことができます。このようにして、ディレクショナル ワープが常​​に単一の方向に画像を押し出しすぎるように見えるという古典的な問題が解決され、単一の方向ではなく複数の方向または軸に沿って機能します。




参照サイト

Swirl Grayscale

渦巻状の変形を行う。

Quad Transform Grayscale

つまみをいじって形状を変更できる。

Mirror Grayscale

形状を反対して新しい形状を追加できる。


Polar to Cartesian Grayscale

極座標から直交座標

Cartesian To Polar Grayscale

直交座標から極座標

Vector Wrap Grayscale

Vector Mapを指定して変形させる。
Vector Mapとは、RとGで表現されるマップである。Rがx軸方向、Gがy軸方向への変化量を示している。
Grayscaleはチャンネルが一つのなので変化量も1次元的になるが、Vector Mapを使用すると2次元的な変化量を表現できるため、より複雑な変形を行うことができる。


合成するノード

Blend

ノードを合成できる。
①Blending Mode
■Copy
Opacityの値によってForGroundかBackGroundが表示される。
Opacityが1の時、ForGroundが表示される。
Opacityが1以下のときは、BackGroundとブレンドされる。


■Add
加算する

■Subtract
BackGroundからForGroundを減算する

■Multiply
乗算する

■AddSub
ForGround > 0.5→ForGround+BackGround
ForGround < 0.5→ForGround-BackGround

■Max
ForGroundとBackGround比較して、明るい方を反映する。
ハイトマップなどで利用すると便利。

■Min
ForGroundとBackGround比較して、暗い方を反映する。
ハイトマップなどで利用すると便利。

■Switch
Copyと同じで、OpacityによってForGroundとBackGroundのブレンド変える。
違いが正直よくわからない。


■Divide
割り算する。


■Overlay
BackGround > 0.5→Screen
BackGround < 0.5→Multiply


■Screen
ForGroundとBackGroundが反転され、乗算、再度反転。結果は乗算とは逆の効果であり、元の下レイヤー画像と比較して常に等しいかまたはより明るくなる。
正直、Addとの違いがわからない。

■Soft Light
ForGround > 0.5→BackGroundを明るくする
ForGround < 0.5→BackGroundを暗くする


②Cropping Area
範囲指定できる。

階調を整理するノード

Levels

グラフをいじって階調を変える。

Threshold

2値化の階調にできる。


Invert Grayscale

階調を反転する。

Histogram Select

特定の階調域を抽出できる。

Histogram Scan

階調域を絞り込むような挙動する。

Histogram Shift

階調の位置をずらすことができる。

Quantize Grayscale

ポスタリゼーションにできる。

階調を作るノード

Blur HQ

ブラーをかける。
「ボックスブラー」操作を実行します。
つまり、設定された距離にわたるピクセルの値を平均化し、ぼやけて不鮮明な外観をもたらします。
Blurの方は、品質が低いがその分軽い。

参照サイト

Directional Blur

任意の方向を指定してブラーをかけることができる。

Slope Blur

インプットされたグレースケールに従って、ぼかしを行う。

Distance

白い部分を指定したブラーの掛け方でブラーをかける。
また、Source Inputでテクスチャを指定してブラーを加工できる。




Curve

グラフを操作してグラデーション変更できる。
結構色々な形状作成できる、参照サイトを参照。


参照サイト

Shape Stroke Grayscale

シェイプの輪郭を塗ることができる。

配置系ノード

Splatter Circular Grayscale

円心円状にシェイプを配置できる。

上の画像は「作例で学ぶSubstance 3D Designerの教科書」のデータを参考にした。

Tile Random

ランダムなタイリングをできる。

Tile Sampler

タイル状にシェイプを配置できる。

上の画像は「作例で学ぶSubstance 3D Designerの教科書」のデータを参考にした。
Inputがいくつかあるので紹介していく。
■Scale Map Input
シェイプの大きさを制御できる。
SizeのScale Map Multipikerで効果量を調整できる。

■Displacement Map Input
シェイプの移動量を制御できる。
PositionのDisplace Map Intesityで効果量を調整できる。

■Rotation Map Input
シェイプの回転量を制御できる。
RotationのRotation Map Multipikerで効果量を調整できる。

■Color Map Input
シェイプの色を制御できる。
ColorのColor Parametrization Multipikerで効果量を調整できる。

■Vector Map Input
Vector Mapで回転量、移動量、拡大拡小量を制御できる。
SizeのScale Vector Map Multiplier、PositionのVector Map Displacement、RotationのVector Map Multiplierで効果量を調整できる。

■Mask Map Input
シェイプのマスクを制御できる。
ColorのMask Map Threshouldで効果量を調整できる。

■Mask Map Input
シェイプの出現位置を制御できる。
PatternのPattern Input Disributionで効果量を調整できる。

塗りつぶしをするノード

Flood Fill

このノードで領域の塗りつぶし判定を行う。
判定は閉じられた領域を検出して行われる。閉じられた領域とは、一定の値以上の画素で囲われた領域のことを指す。つまり線(線でなくても良い)で囲われた領域のことである。
Flood Fill系ノードは、まず初めにFlood Fillで領域判定を行ってから、そのデータを元に他のFlood Fill系ノードで処理を行うのが基本的な流れである。
■領域判定の注意点
①階調が白(1)黒(0)ではっきりしている場合は、内側は塗りつぶし領域として認識される。

②Edge Detectで境界線を作った状態でも、外側の領域判定は失敗してしまうが、内側は塗りつぶし領域として認識される。

③境界線をBlurなどでぼかした場合、認識に失敗してしまう。境界線の闘値が0.5以上になると、境界線として認識されなくなる。なので、境界線または境界域の画素は、0.5以下である必要がある。

④ノイズノードをそのままインプットした場合、望む結果にならないことが起きる。なので、LevelやThreshouldで境界域を0.5以下に調整する必要がある。

⑤画素値が問題ない場合でも、白い領域が画面域いっぱいに伸びているような場合も認識に失敗してしまう。なので、外側に境界線を設けると正しく認識される。

上の画像は「作例で学ぶSubstance 3D Designerの教科書」のデータを参考にした。

Flood Fill to BBox Size

領域の大きさもしたがって、塗りつぶしの明暗を変えることができる。
小さい領域が暗くなる。

Flood Fill to Gradient

領域内をグラデーションに塗りつぶすことができる。
グラデーションの方向、方向のランダム性の指定ができる。

Flood Fill to Grayscale

グレースケールの画像をもとに、グレースケールで塗りつぶすことができる。

Flood Fill to Random Grayscale

領域をランダムな明暗を塗りつぶすことができる。

Flood Fill to Position

左上を原点として、赤はX軸、緑はY軸で色をつけれる。

Flood Fill Mapper

領域内を対象にシェイプを配置できる。
大きさ、回転などをインプットテクスチャで調整できる。

色を扱うノード

Uniform Color

単色を出力できる。

Gradient Map

グラデーションの階調をいじって、カラーにしたりグレースケールにする。

Gradient (Dynamic)

同じグラデーションで、複数のグレースケールに色付けしたときに使用する。

Grayscale Conversion

カラーをグレースケールに変換できる。
RGBをいじってグレースケールを調整できる。

HSL

色相、明るさ、彩度を調整できる。

RGBA Split

カラーのRGBAを別々のチャンネルに出力できる。

RGBA Merge

グレースケールを指定してRGBAを合成できる。

Alpha Merge

カラー出力にアルファを合成する。

Alpha Split

RGBとアルファを別々にする。

Channels Shuffle

チャンネルを変更して色を変更できる。

Normalを扱うノード

Normal

テクスチャを指定してノーマルマップを作成できる。

Normal Combine

Normalを加算合成する。

Normal Blend

Normalをマスクできる。

Normal Color

フラットなNormalを出力できる。合成などでNormalをフラットにした場合に使う。

Normal To Height HQ

Normalからハイトマップを作成できる。
手軽にハイトマップを作成できるが、階調に余計な傾斜や汚れが入ることが多い。

Curvature Smooth

Normalからグレースケールを作成できる。

Emboss

エンボス加工のような表現ができる。

描くノード

Bitmap

ビットマップ画像を使用できる。
自分で絵を描くことができるが、凝ったものは書けないので絵を描くなら外部ツールの方が良い。

SVG

SVG画像を使用できる。

その他のノード

Ambient Occlusion (HBAO)、Ambient Occlusion (RTAO)

グレースケール(Heght)からAOを得ることができる。
品質ならHBAO
早さならRTAO

Edge Detect

輪郭を検出する。

Multi Switch Grayscale

使用したいノードを選択できる。



FXAA

アンチエイリアスができる。

Text

文字を作成できる。

半透明描画をするAlphaBlend描画する際の黒い部分を透明にする

AlphaMergeしない

周りが黒くなっている

AlphaMergeを行う

周りが黒くなっていない

ノード小さくして見やすくする

Dを押すとノード小さくして見やすくできる。

ノードとEXPLORERの表記名を変える

ノード→Label
Identifier→EXPLORER

ColorとGrayScaleの入出力の違いをオートで処理する

赤枠がGrayScale
青枠がColor

これを入出力の違いをオートで処理するには、以下の赤枠をチェックする

自動で処理されていることが分かる。

ライブラリ化

同じようなの処理をライブラリ化して、他の処理でも使えるようにする。
簡易的なライブラリー化
https://youtu.be/TietsdiP-l4
インプットがあるライブラリー化


作成したライブラリーは、Prefrencesで設定する必要がある。

設定した後、検索するとライブラリー化したノードが出てくる。

選択したノードをFrameにまとめる


チェッカーバッジ、ノードバッジ、キューブバッジ

チェッカーバッジ(チェッカーアイコン)→2DViewに表示されている
ノードバッジ(書類アイコン)→Propertiesに表示されている
キューブバッジ(キューブアイコン)→3DViewに表示されている

プロパティの設定をExportする

Edit exposed graph inputを押下

ノード以外の右クリック押下すると、プロパティに表示される。

.sbsarでテクスチャのバリデーションを作成する

バリエーションを作成したい.sbsで右クリックして、Publish .sbsar file押下して、保存

保存した.sbsarを開いて使用したい.sbsにドラッグ&ドロップすると、Exposeしたパラメータいじるだけでたくさんのテクスチャのバリデーションを作成できる

関数Graphでプロパティの値を変える

値を変えたいプロパティで、右クリック

Edit function graphを押下すると関数Graphを作成する領域が出てくる。
定数や、演算式、Exportした値を取得などを使用できる。

なお、右クリックして、Set as Output Nodeを押下しないと計算した結果は適用されない。

Substance Desinerはシームレステクスチャを作成しやすい

シームレステクスチャとは、テクスチャのつなぎ目が自然なテクスチャのことである。
PhotoShopなどで、シームレステクスチャを作成する際はひと手間必要であったが、Substance Desinerの通常のノードはシームレスになっているため修正する工程がほとんどない。
また、2DViewパネルをスペースキーを押すとテクスチャ繰り返しした状態でプレビューできるの、シームレス具合を見つつ調整できる。

3DViewで作成したテクスチャに貼り付けることができる。

以下のようにできる。



また、自分で作成したモデル読み込んで確認することができる。
エディター上で行う方法

なお、ドラッグ&ドロップでも可能。
また、読み込むモデルは、頂点カラーと頂点アルファは読み込まれない。

Substance 3D for Unityを使用して、Unity上でSDでExposeした値を調整する

Substance 3D for UnityでからダウンロードすればUnity上でSDでExposeした値を調整できるが、やってみたがエラー出てできなかった。
でも、Substance 3D Connectorでできそう。

オーラエフェクト

https://youtu.be/_HQ4KYN9SxQ

Discussion