【Unity】シェーダーグラフで頂点カラーを取得する

投稿者: | 2020-09-04

シェーダーグラフで頂点カラーを使ってみます。まずBlenderのVertex PaintモードでSuzanneに頂点カラーを付けました。

何も塗らないと白になるようなので、まず全体を黒く塗りました。

そして、赤、青、緑で塗り分けました。

これをUnityにもってきてシェーダーグラフを作ります。

頂点カラーはVertex Colorノードで取得できます。

これをTimeノードのSine Timeで掛け合わせてみます。

このMultiplyノードと新しく作ったPositionノードのOutをAddノードに接続します。

これによって頂点カラーのR,G,BにSine Timeがかけられたものが、それぞれ元の位置のX,Y,Zに足し合わされます。

Sine Timeの値は時間とともに連続的に-1~1の範囲を移動するので、オブジェクトの表面が揺れ動くことになります。そのとき、どの軸に沿って移動するかは頂点カラーによります。

AddノードはマスターのPositionにつなぎます。

また、Vertex ColorノードをBase Colorにつないで、頂点カラーが表示されるようにしています。

これでシェーダーグラフで頂点カラーを使って頂点を移動できました。

赤い部分はX軸、緑はY軸、青はZ軸に沿って動いているのがわかります。

Splitノードを使うと頂点カラーのR値だけを取り出すといったこともできます。

コメントを残す

メールアドレスが公開されることはありません。