【Unity】Shader Graphを使った自作シェーダの解説をします!(Emission編)

こんにちーは!新入社員のタケです!

今日はお待ちかね、以前作ったShader Graphを使ったシェーダーの解説をしていきたいと思います!
とりあえず完成形をもう一度見てみましょう!


とにかくいろいろ機能盛り込むととにかくノードがデカくなっちゃいました…
大体やってることはそれぞれの機能ごとにだいたい同じなので、一つずつ見ていきましょう!

今回はEmissionの設定について解説します!
Emissionの設定はこの辺です!


まず完成したマテリアルがどういう設定ができるかを見てみましょう。
以下の設定ができます。
・Use Emissionにチェックを入れるとEmissionが使えるようになります。
・Emissionさせるカラーやテクスチャが設定できます。
・カラーとテクスチャを設定すると色を混ぜられます。(あとIntensityも設定できます)
・Use Emissionにチェックが入っていないとカラーやテクスチャを設定しても無効化されます。


まずは簡単なテクスチャを選択するところから実装していきます。
ここだけ見ると以前作ったテクスチャを自由に選択できるシェーダと構造は同じです。
EmissionMapという名前でテクスチャを付けられるようにします。


以前はそのままPBRMasterにRGBAからくっついてましたが今度は色と重ね合わせたいのでMultiplyというノードに接続します。
このMultiplyというノードはAとBにつなげたノードをMultiply(掛け算)してOutから出力する、というノードです。


Emission Colorという色を設定するノードをAに、さっきのテクスチャをBに刺して出力するとテクスチャに色を混ぜた結果が出せる、ということです!
Intensityも設定できるようにしたいのでカラーの変数はHDRにしておきましょう。


これでEmissionにつなげる…にはまだ早いです。
最後にチェックでオンオフするためにBranchというノードを使います。

これはPredicateにつなげたノードで状況を判断した結果、True時に表示するもの、False時に表示するものを選ばせることができるノードです。
プログラムでいうIf文に近いです。


PredicateにはUse Emissionというブーリアン型の変数がつなげられています。
これがチェックボックスです。

つまり、このノードはチェックボックスにチェックが入っている場合はTrueにつなげられたノードが発動して、入っていない場合はFalseにつなげられたノードが発動するということです。
Falseには何もつながっていないので、チェックが入っていない場合は何もしないということになります。


ここのOutからやっとEmissionのノードにつなげられます。
長かったですね…!


これでEmissionのノードが完成しました!



たった三つの設定を作るだけなのにこれだけ頑張らないと出てこないんですよね…!
Use Emissionのチェックがついていないときはプロパティを非表示にしたりとかしたかったんですがどうもわからなかったので諦めましたね…

今日の成果物!

展示会場のシーンにアバターを入れる
制作時間:5時間

ローポリアバターのカラーを増やす
制作時間:1時間


ちょっとシェーダー全部の説明にはまだまだ時間がかかりそうなのでシリーズにしておきます!
次も投稿するかもしれないししないかもしれません、状況を見て書きます!

--------------------------------------------------------------------------------

シェルパでは、3DCGや建築パースはもちろん
VRやARアプリの開発も行っています!
新しいことに興味のある方はきっと楽しめると思います!
新人研修も充実していて初心者でも3DCG経験者でも安心!

株式会社シェルパ
【福岡本社】
〒810-0042 福岡県福岡市中央区赤坂1丁目13-10赤坂有楽ビル7F 
【東京オフィス】
 〒101-0041 東京都千代田区神田須田町2丁目13-1YKS黒田ビル5F
TEL 092-717-6800 / FAX 092-717-6801

--------------------------------------------------------------------------------

コメント