【Unity】ShaderGraphでメッシュの表と裏で見た目が異なるシェーダーを作成する

はじめに

桜井政博のゲーム作るには チャンネルでエフェクトがキャラの邪魔にならなくするための工夫としてメッシュの表と裏で表示を分けられていました。これをShaderGraphで似たようなものを作成したいと思います

動画上だと表は非表示で裏は通常の描画っぽいです

youtu.be

環境は Unity 2021.3.25f1です

Universal Render Pipeline を使用しています。

ノード作成

IsFrontFaceノードをBranchノードで分岐させることで表と裏で表示を分けることができます。

今回は表と裏で色の強度を変更しています

あとはRenderFaceをBothにして両面描画し、Depth WriteをForce Disabledにします。

完成

表側だけ透明度を下げてみました。これによってカプセルの視認性が上がったと思います。

注意点

半透明を使用する場合BlendModeはAdditiveでないと描画が破綻しまう場合があります

その場合は表と裏でメッシュを分ける必要があります

詳しい解説こちらを見るとよいです

www.klab.com