Substance Designerの継承について簡単に説明します。
そもそも継承とはは何か?どのように機能するのか?そして、グラフを最大限に活用するために理解する必要があるのはなぜか?などを解説できればよいと思います。
まず、各ノードにはベースパラメータがあり、これらのパラメータはすべてのノードに存在することを思い出してください。
どのノードをクリックしても、これらのパラメータは同じままです。サイズ、ビット深度、タイル化などです。
これらは各ノード(ローカル)で変更できますが、その背後にあるロジックを理解することが重要です。
各パラメータの横には継承方法を示す小さなアイコンがあります。
これは、パラメータがどのソースから値を取得するかを示しています。
アイコンをクリックすると、3つの継承方法があることがわかります。
「入力に相対的」、「親に相対的」、および「絶対値」です。少し退屈かもしれませんが、ここは我慢しましょう!難しいことはなく、これらの概念に慣れることが重要となります。
「入力に相対的」とは、ノードが主入力からパラメータを取得することを意味します。
この主入力は、中央にある点で識別できます。
ノードのパラメーターは、前のノードから継承され、さらにその次のノードへ継承されるといった具合です。ほとんどのノードではデフォルトでこのように機能します。
特にブレンドの際には、主入力を追跡することが重要となります。
ブレンドの主入力は常に背景です。主入力を示す点を見てください。
上記のネットワークにはブレンドしたい2つのノード、512解像度のグラデーションと2048解像度のパーリンノイズが接続されています。
ここでグラデーションを前景に置いてブレンドすると、ブレンドはパーリンノイズからパラメータを継承し、これらのパラメータが次のノードに引き継がれます。
しかし、入力を入れ替えると(これは「X」を押すと簡単にできます)、今度はグラデーションが主入力となり、新しい512解像度がブレンドに適用されます。
この「継承」という考えが、後で問題を引き起こす可能性があります。
特に、ビット深度が異なる場合、例えば8ビット画像と16ビット画像をブレンドする場合に問題が発生します。ビット深度の話に深入りするつもりはありませんが、簡単に説明します。
ノイズを直接法線ノードにつないでいる場合には問題はありません。
次のネットワークでは、8ビットのビットマップを16bitのノイズとブレンドしています。均一カラーをブレンドの主入力に接続すると、このビット深度が全体に伝播し、結果としてこのようなアーティファクトが発生します。
8ビットは滑らかな遷移に苦労することが多いです。バンディングやステッピングの問題が発生した場合、グラフのどこかに8ビットノードがあり、最終結果を乱している可能性が高いです。
修正する方法は2つあります。
1つ目は、その画像を前景入力に接続し、ブレンドがL16を持つビット深度を取得するようにすることです。
しかし、ブレンドが交換不可(つまり、入力が特定の順序に従わなければならない場合)は、問題のビット深度を手動で変更する必要があります。
ここで出てくるのが継承です!
「親に相対的」について説明しますが、ここでの親はグラフ自体です。
ノードの基本パラメータが「親に相対的」に設定されている場合、これはプロジェクト作成時に設定したグラフパラメータを継承することを意味します。
ほとんどのノードは「入力に相対的」に設定されていますが、入力がない場合、例えば情報が出力されるだけの均一カラーの場合、このノードはグラフから基本パラメータを取得します。
最後に、「絶対値」について説明します。
これは非常に簡単で、継承を無効にして特定のノードに対してパラメータを自分で変更できます。
よくある誤解として、パラメータがグレーアウトしている理由です。グレーアウトしている理由は、外部ソース(つまり入力に相対的または親に相対的かつパラメーター変更する余地がない)から値を取得している場合、グレーアウトされた表示になります。これは設定できないということを表すものではありません。
自分で設定したい場合は、「絶対値」に切り替えて、継承をブロックし、パラメータを自分で設定します。
これが、バンディング問題を解決するために利用できる手段になります。
ブレンドのビット深度継承を「絶対値」に切り替え、手動で16ビットに設定します。これでアーティファクトがなくなりました!
その他に1つのパターンをその後リピートして使用場合、おおもとのパターンは最初から大きな解像度作成する必要がないかもしれません。
その辺を考え、解像度、ビット数などを設定していくことでパフォーマンスの改善につながる可能性があります。