[SubstanceDesigner] 数値でパラメーターをコントロールする

SubstanceDesigner


Substance Designer2019以降ではInputValueノードを使用して
他ノードのパラメーターを数値でコントロールする事が可能になったので
その方法を紹介したいと思います。

また、応用編として、ValueProcessorノードを使用し、
アニメーションを設定する方法も紹介します
(確認には無料ソフトのサブスタンスプレイヤーが必要です)

(SubstanceDesignerバージョン2020.13)

パラメーターを別ノードでコントロールするメリット

数値でノードのパラメーターをコントロールするメリットとして、、
・複数のノードに対して同じ変数をまとめて適用させたり、
 ある変数に対して0.5倍など、係数を掛けた値などが簡単に設定できる
・数値が外部に独立するので調整しやすい
・後々UE4やUnityのマテリアルシェーダーに持っていく時に、管理がしやすい


などがあると思います。

数値でノードのパラメーターをコントロールする

数値コントロールしたい各ノードのPROPERTIESの一番下にある、
INPUTVALUES+ボタンを押下して使用したい変数のタイプを指定します。
ここではTransformation2DノードOffsetの値をパラメータ化したいので、
X,Yの2値を入力する必要があるため、
Float2を選択しました。
(#以降に任意の名前を付けます)

すると、ノードの左側に、先程付けたINPUTVALUESの入力が
Typeの種類に応じた色で出てきます。
(Typeの種類が一致しないとノードは繋げられません)


Transformation2DノードOffset
右のアイコンから、先程INPUTVALUESで作った入力を選択します。
(ここではTypeが一致するものしか表示されません)

グラフ上に、InputValueノードを配置します。

SPECIFIC PARAMETERSの中の
Type/Editorを対応したものを選択します。

Sliderを動かして値を調整します。

InputValueTransformation2Dノードの#input(自分でつけた名前)
を接続します

この例では、OffsetにX,0.89 Y0.43が代入されました


このノードから複数のノードにつなげることで同時に値を編集することが出来ます。


入力した値に係数を掛けるなどして、パラメータに関連性を持たせることが出来ます。

以上、 InputValueノードを使用したパラメータコントロールの方法 でした。


応用編 ValueProcessorと$timeでアニメーションさせる

応用編として、
ValueProcessorノードと$timeノードを使えば、一秒に数値が1増える仕組みが出来ます。

これを利用して.sbsar形式で出力してあげれば、
SubstanceDesignerで時間軸を持ったアニメーションを制作することが出来ます。

(アニメーションの確認は別ソフトのSubstancePlayerでしか確認できないようです。)

下記のようなShapeTransformation2Dにつないだ物を用意します。
このTransformation2DOffset値をアニメーションしてみます。

ValueProcessorノードを配置します


ValueProcessorノードのSPECIFIC PARAMETERS
Value Processor Function
Edit ボタンを押下して中にはいります。

今は空っぽです。

ValueProcessorの中で、
GetFloatノードをだします。


GetFloatノードのPROPERTIESから、GetFloat
$timeをプルダウンから選びます。

ノードにも$timeと表示されました。

これでサブスタンスの中で時間がとれます。

目的はTransformation2DOffsetの値をアニメーション化したいので、
X,Yの2値を入力する必要があるため、
Float2にしてあげる必要があります。

ですので、$timeとは別に、もう一つFloatノードを追加します。

その2つをVectorFloat2ノードを配置し、まとめてあげます。

そしてVectorFloat2ノードを右クリックして
Set as Output Nodeをクリックして、
このValueProcessorの終点とします。

ValueProcessorの中から出ます。
戻のグラフに戻るには上の階層を選択すれば戻れます。

Transformation2DのINPUT VALUESに
Float2を追加して、

Offsetに適用します

出てきた入力に先程作ったValueProcessorをつなげて、

確認用に出力OUTPUTをつけてあげて

sbsar形式で保存します

SubstancePlayerに切り替えて先程保存したsbsarファイルを読み込みます。
左下のプレイボタン▶をおせば、アニメーションが再生されます。

一秒に付き、 $timeの値は1増加するので、
Transformation2DのOffsetYの値がプラスされることによって
Shapeがスクロールするのが確認できたと思います。

ちなみに、こう組めば、一秒で一秒間に0.5加算される設定になります。
UE4のシェーダーなどと同じ様に色々できそうです。

以上、 応用編 ValueProcessorとTimerでアニメーションさせる でした。

コメント

タイトルとURLをコピーしました