Unity

【Unity】頂点カラーで塗り分けるブレンドテクスチャシェーダーを作る

ブレンドテクスチャは背景作成などでとてもよく使うと思います。
Amplify Shader Editorでシェーダーを作成した記事でしたがShader Graphで知りたいという意見を頂いたのとUnityのバージョンも新しくなっているため作成しなおしました。
頂点カラーの白黒で塗り分けることによってブレンドできるようにしています。

バージョン:Unity 2021.3.11f1

より実用的なハイトマップブレンドについてのブログを書きました

【Unity】溝だけ強調されるブレンドシェーダーを作る(Amplify Shader Editor)以前にAmplify Shader Editorで頂点カラーで塗り分けるブレンドシェーダーを作成しましたが、今回はより実用性の高い溝だけ...

Shader Graph

シェーダー構造

Branchは頂点カラーだけの見た目に切り替えるためのノードなので無くても問題ないです。使う場合はブーリアンの変数を作成して繋ぐ必要があります。

Amplify Shader

Amplify Shader Editorとは

ノードベースでシェーダー作成ができるツールです。
unityが無料で提供しているシェーダーグラフがあるのに対し88ドル(税別)とお高めですが仕事で使わせてもらって以来気に入って家でも使っています。
年に数回あるセールを狙えば半額ぐらいまで安くなる可能性はあります。

シェーダー構造

Toggle Switch0 は頂点カラーだけの見た目に切り替えるためのノードなので無くても問題ないです。

ブレンド工程

Polybrushインストール

今回はunityのPackage Managerからインストールできる「polybrush」を使いました。

Tools内にPolyBrushが追加され、ウィンドウが開けます。

マテリアル作成 シェーダーを設定

新規でマテリアルを作成して先ほど作ったシェーダーを割り当てます。
シェーダー名は作成した命名によって画像とは異なります。

頂点カラーで塗り分ける

planeを作成し、マテリアルをアサインして polybrush の頂点カラーモード(三角形マーク)で白か黒を塗るとブレンドできると思います。
ShaderGraph、AmplifyShaderどちらのシェーダーでも結果は同じになります。

【Unity】ディゾルブシェーダーを作るUnite Tokyo 2018のShader Graphデモで作ってたのを見てAmplify Shader Editorで再現してみた...