【Q&A】マテリアル関数の入力項目、出力項目を増減したい

概要

使うノード

Input in
Function Output

説明

上記の2つをマテリアル関数に追加することで入出力の数を増やすことができる。

 

使用例

Input in

色の調節やコントラスト、スクロール速度の調節に関する部分につないでおけばよい。

f:id:uchida_10969:20210623192022p:plain

 

Function Output

一番最後(結果に直接つないでいるノード)から枝を伸ばしてつなげばよい

f:id:uchida_10969:20210623192054p:plain




【実例】岩の上部分だけに草を生やす

 

モデルの頂点、上方向の一番高い部分を検出して草を生やしたいとき

 

草の生える領域をLerpのAlphaに挿すグレースケールの画像で用意する→作成

  1. VertexNormalXSからComponentMaskに出力。
    Componentマスクでは、必要な要素のみを抽出できる。

     f:id:uchida_10969:20210623191205p:plain

  1. 今回は高さ、すなわちz軸情報のみを使えばよいので
     ComponentMaskのBだけをチェック
  2. この時点でComponentMaskを
     右クリックし > Start Prevewing Nodeで確認をしてみると
     すでに高さ方向に色が分かれている
     f:id:uchida_10969:20210623191135p:plain

 
4. Powerノードを追加
 ComponentMaskからPowerへ出力
 Powerはコントラストを調整するノード。
 ここでは、上の画像の白と黒の境目の滑らかさが変わることとなる。

 f:id:uchida_10969:20210623191119p:plain

  1. PowerノードのExpに定数を差し込む
    Const1Vectorを用意して差し込む
    この数値が大きいほど黒の領域が上へ広がる。

  2. 最後にClampノードをつなぎ、出力結果を0~1に限定する。
    これは、万が一1を超えた数値などがあった場合結果がおかしくなってしまうので
    その保険のような役割を果たしている。
  1. Clampの出力を最終結果へつなぐ

  2. エディタ上の空いた部分をクリックして
    メインプロパティを編集できるようにする

  3. Export to Libraryにチェックを入れて保存。関数をほかで使えるようにする。

  4. 元の岩と草のマテリアルエディタに戻り、ノードを追加するときのように、先ほど作成したマテリアル関数の名前を検索し、追加。

  5. ベースマップとノーマルのLerpのAlphaに、作成したマテリアル関数を接続すると下図のようになる。
     

     f:id:uchida_10969:20210623191043p:plain

     f:id:uchida_10969:20210623191057p:plain



マテリアル関数

概要

マテリアルエディタ上で、複数のノードをグループ化し、
他のマテリアルでも参照できるような形となっているもの。

 

つくりかた

コンテンツプラウザ上で右クリック > マテリアル関数(Material Function)
名前はMF_〇〇にするのが公式推奨。

ダブルクリックで開くエディタはマテリアルとはほんの一部だけ異なる。
デフォルトであるはずのマスターノードがなく、
Output Resultのみがある点だ。あとは全部いっしょ!

f:id:uchida_10969:20210623190836p:plain