Substance グラフの継承

このページでは、Substance 3D Designer内のSubstanceグラフで継承がどのように適用され、グラフの出力に与える影響について説明します。

継承メソッド {width="1400px"}

概要

Substanceグラフ内のすべてのノードは、ソースから一部のパラメーターの値を​ 継承 ​できます。 継承とは、ソースの値を変更すると、ソースを継承するすべてのノードで​ その変更を実行 ​することを意味します。 これは、Substance 3D Designerがパラメトリックアセットを作成する際の基本的な土台となる概念の1つです。

NOTE
継承を示す注釈付きのプロジェクトファイルは、このドキュメントのSubstanceグラフのサンプルセクションにあります。

継承メソッド

'絶対'継承メソッドのアイコン {width="128px"}

絶対

継承がありません。値はパラメーターに​ 任意かつローカル ​で定義されます

'入力に対する相対'継承メソッドのアイコン {width="128px"}

入力に対する相対

値は、ノードの​ プライマリ入力 ​に接続されているデータから継承されます

'親に対する相対'継承メソッドのアイコン {width="128px"}

親に対する相対

値はノードまたはグラフの​ 親 ​から継承されます

継承メソッドのデモンストレーション

継承メソッドは、ノードの基本パラメーターに適用されます。これは、すべてのノードの動作の​ 基本的な側面 ​を制御する共通パラメーターのセットです。 次のパラメーターがあります。

  • 出力サイズ
  • 出力形式 (ビット深度)
  • ピクセルサイズ
  • ピクセル比
  • タイルモード
  • ランダムシード

これにより、one​ノードでの変更が、そのノードから​ 下流のすべてのノード ​の解像度、精度、タイリング動作にどのように影響するかについて理解できます。

WARNING
このページで説明する概念を理解するための重要なお知らせ: インスタンスノード​は、別のグラフ🔗のグラフを表すノードであり、その​ 独自の個別のパラメーター値 ​を持つため、インスタンス​という用語が使用されます。
例えば、同じグラフ内の2つのPerlinノイズノードは、両方とも​ 同じ ​ソースグラフ(noise_perlin_noise.sbsのperlin_noise)を、独自のパラメーター値のセット​で表現したものです。
NOTE
出力サイズ: Heightの値​ が幅の値 ​と一致するように ロックボタンを使用してください
ランダムシード: ボタンを使用して、新しいランダム値をランダムシードに割り当てます。

変更の実行

継承方法の変更

プロパティパネルでは、ノードのプロパティの基本パラメーターセクションに一覧表示されているすべてのパラメーターに、ラベルの反対側に(アイコン) 継承メソッドの設定ドロップダウンボタンがあります。
このボタンをクリックすると、パラメータに使用する継承方法を選択できます。

継承メソッドを変更しています {width="512px"}

ほとんどの場合、ノード​の基本パラメーターは​ 入力に対して相対的 ​に設定され、ノードをチェーン接続するという手続き型の動作を利用できます。また、グラフ​の基本パラメーターは​ 親に対して相対的 ​に設定されているため、グローバルパラメーターをグラフが使用されるコンテキストに適応させることができます。

継承された値の微調整

出力サイズ、ピクセルサイズ、ランダムシードなどの一部の基本パラメーターは、継承された値​ に対して ​相対的に変更できます。

たとえば、出力サイズパラメーターで​ 相対… ​継承メソッドが使用されている場合、値(または(1, -1))は、Xの継承された値が​ 上 ​の2乗、Yの継承された値が​ 下 ​の2乗の2乗であることを意味します。次に例を示します。

  • 継承された値: (9, 9) (2^9, 2^9 = 512, 512)
  • 相対値: (1, -1) (2^(9+1), 2^(9-1) = 256, 1024)
NOTE
出力サイズページは、この重要なBaseパラメーターの詳細を掘り下げており、ノードの最終解像度の計算方法を理解するために読むことをお勧めします。

関数がBaseパラメータに適用される場合、関数の結果もパラメータの継承メソッドを使用して解釈されます。
出力サイズの例を念頭に置いて、継承された解像度をXとYの2倍に上げることを目的とした関数は、(2, 2)のInteger2値を出力する必要があります。

ノードとグラフのペアレントビュー

「親に対して相対的」継承メソッドを使用する場合、特定のコンテキストで親が何であるかを正確に理解する必要があります。

ノードの親は、ノードが存在する​ グラフ ​です。

グラフの親は、次の場所に存在する​ コンテキスト ​です:

  • そのグラフが​ インスタンスノード ​として別のホストグラフにインスタンス化されたサブグラフである場合、サブグラフの親は​ インスタンスノード ​です。 そのインスタンスノードの親は​ ホストグラフ ​です。
  • グラフがルートグラフの場合、親は​ アプリケーション自体 ​であり、アプリケーションが指定されたパラメーターに設定した値です。 たとえば、グラフは、グラフビューのツールバーで設定された 親サイズ パラメーターから継承されます。
WARNING
パッケージをSubstance 3Dアセットファイル(SBSAR)に公開する際に、親が​ そのまま ​適用されます。 つまり、任意のパラメーターを​ 絶対 ​継承メソッドに設定すると、そのパラメーターは公開されたアセット内の現在の値に​ ロック ​されます。
これはビットマップのノードまたは最適化の目的に適していますが、例えば​ Substanceグラフで作業する場合は、その他の方法で ​明確で意図的な目的​ がない限り、 ​相対値…の継承方式を使用することを​強くお勧めします。

コンテキスト内編集

グラフインスタンスノードでコンテキスト内編集を使用する場合、グラフの親は​ インスタンスノード ​です。 この場合、グラフビューのツールバーの 親サイズ 設定は​ 無効 ​になります。これは、グラフがインスタンスノードから基本パラメーターを継承するためです。

このトレイトはコンテキスト編集の​ ポイント ​です。継承メソッドを設定し、ノードの基本パラメーターの現在の値を評価する場合は、因数分解する​必要があります。

複数の入力による継承

グラフに複数の入力がある場合、各入力は、その継承方法に応じて、個別の入力データまたはグラフから継承されます。

'入力に対する相対'継承メソッドのアイコン {width="128px"}

入力に対する相対

入力は、グラフのベースパラメーターに関係なく、個別の入力データから継承されます。 これは、入力ごとのデータを制御する場合に非常に便利です。

'親に対する相対'継承メソッドのアイコン {width="128px"}

親に対する相対

入力はグラフから継承され、それに応じて受け取るデータが適応されます。

プライマリ入力

table 0-row-3 0-border-0 1-border-0 2-border-0 3-border-0 html-authored no-header
プライマリ入力カラー/グレースケール {width="48px"} 基本入力カラー {width="48px"} プライマリ入力グレースケール {width="48px"}

入力の1つをグラフの​ プライマリ入力 ​として設定するには、入力ノードで​ RMB ​をクリックし、コンテキストメニューの​ プライマリ入力として設定 ​オプションを選択します。

入力コネクタの種類

グラフがインスタンスノードとして別のグラフにインスタンス化される場合は、入力を基準とする​に設定されているインスタンスノードのすべての基本パラメーターが、その入力​に接続されているデータを継承します。 インスタンスノードのプライマリ入力は、コネクタの小さな暗い点で識別できます。

親に対する相対​に設定されているその他の入力は、プライマリ入力から継承する​ インスタンスノード* から継承する*​グラフ*から継承するため、同じ基本パラメーターの値を継承します。

*:これは、グラフで*​親に対する相対*継承メソッドを使用している場合に当てはまります。

例

以下に、様々な継承事例と、上位から順に次のアクターで設定された継承方法の相互運用を示します。

  1. アプリケーション
  2. ホストグラフ
  3. ホストグラフのインスタンスノード
  4. サブグラフ – インスタンスノードが参照するグラフ
  5. サブグラフのノード

アクターに対して設定された​ 継承メソッド ​は、その真上にオレンジ色で表示されます。 ソースに対する​ 継承のフロー ​はオレンジ色の線で表示されます。

文字は、基本パラメーターの​ 個別のセット ​を表し、どのアクターによってどのデータが継承されるかに従う必要があります。

例A

継承図A {modal="regular"}

例B

継承図B {modal="regular"}

C​の例

継承図C {modal="regular"}

例D

継承図D {modal="regular"}

継承に関する問題のトラブルシューティング

グラフを構築して複雑さを増やすと、継承によって予期しない結果が生じることがあります。 ノードの出力の解像度または精度が正しくない場合(ビット深度など)、継承チェーンを上げて​これらの値の出所を特定する必要があります。

最初に、ノードのすぐ下に表示されるデータを確認することをお勧めします。ノードの​ 最初の出力 ​による画像出力の解像度、色の形式、および精度です。 解決策の理解は簡単ですが、2番目のデータは詳しく説明する価値があります。

  • 文字のプレフィックス​は、画像の色の形式を参照しています:

    • L:輝度(グレースケール)
    • C:カラー
  • 数値​は、画像のビット深度を示します。精度は小さいものから大きいものまで様々です。

    • 8: 8ビットの整数(0 ~ 1で256ステップ)
    • 16: 16ビット整数(0 ~ 1で65 536ステップ)
    • 16F: 16ビット浮動小数点(0 ~ 1を超える低精度値、負の値を含む)
    • 32F: 32ビット浮動小数点数(0 ~ 1を超える高精度の値、負数を含む)

ノードに複数の出力がある場合は、次の2つの簡単な方法で解像度と精度を確認できます。

  • 出力コネクタ​の LMB をダブルクリックして2Dビューに画像を表示し、2Dビューのビューポートの​ 左下隅 ​に表示されている画像情報を確認します
  • レベルまたは変換2Dノードを作成し、その入力を確認する出力に接続します。 ノードは既定で​ 出力から継承 ​します。その後、ノードの下の値を確認できます。

これで、グラフのノードチェーンを上に移動して、予期しない値が表示される​ 最初のノード ​を見つけることができます。 基本パラメーターの継承方法を確認してください。

何も問題がなく、そのノードがインスタンスノードである場合は、さらに深く進み、そのインスタンスノードによって参照されるグラフを開く必要があります。 グラフの出力ノードから上流に向かうプロセスを繰り返します。

一般的な例

特に、プライマリ入力​の概念は簡単に​ 見落とされる ​ため、継承の問題が発生する可能性があります。

ブレンドノードは非常に頻繁に使用されるため、この影響を受けやすくなります。 Background入力はプライマリ入力です。

出力サイズの継承 {width="512px"}

2つの入力をブレンドする順序に注意する必要があります。グラフを下に向けて維持する解像度と精度の入力は、背景入力にコネクトする必要があります。必要なブレンドモードを使用すれば可能です。 そうでない場合は、ブレンドノードのベースパラメータとその継承方法を調整して補正する必要があります。

recommendation-more-help
substance-3d-designer-help-guide