NovaShader – Distortionシェーダーの導入方法・使い方について解説
この記事では、NovaShaderのDistortionシェーダー機能について解説していきます。
Distortionシェーダーを使うと、背景の景色に歪み(distortion)を加えることができます。
実際のエフェクトでは「風圧、熱波、衝撃波」など、透明な気体を表現する時によく利用します。
使いこなせるようになると表現の幅がぐんと広がるので、ぜひマスターしてみてください。
NovaShader公式ドキュメントもあわせてご確認ください。
設定手順
まず、Unityで動作させるために初期設定をしていきます。
やり方はシンプルで、Distortionシェーダー専用のRenderFeatureを登録するだけで使えるようになります。手順は以下の通りです。
1. Universal Renderer Data を開く
Universal Renderer Dataは、初期設定の場合「Assets/Settings」にあります。
このプロジェクトでは「URP-High Fidelity-Renderer」を使用しています。
2. 「Add Renderer Feature」ボタンを押す
3. 「Screen Space Distortion」を選択して追加
もしNovaShader導入が済んでいない場合、オプションは表示されないので注意です。
なお、Universal Renderer Dataは、グラフィック品質ごとに「URP-Balanced、URP-HighFidelity、URP-Performant」の3種類の設定ファイルがあらかじめ用意されています。
どの品質を使用しているかは「Edit > ProjectSettings > Graphics > Scriptable Render Pipeline Settings」を確認してください。
動作確認
ここからは、実際に正しく動作するか検証していきたいと思います。
すべての手順を書くと煩雑になるので、大事なポイントだけお伝えします。
1. 検証用のオブジェクト用意
2. Distortionシェーダー適用
新規にマテリアルを作成し、Shader設定のドロップダウンメニューから「Nova/Particles/Distortion」を選択。
3. sRGB(ColorTexture)の変更
こちらのテクスチャ素材をダウンロードして、Import Settingsを開く。
UVテクスチャは、色情報ではなく数値として取り扱うのでsRGB(ColorTexture)のチェックは外す。
4. UVテクスチャを適用
Distortionシェーダーのテクスチャ設定部分に、UVテクスチャ素材をセットして完了。
シェーダーの仕様
最後におまけとして、NovaShaderがどのようにUVテクスチャの数値を扱っているのか、解説していきたいと思います。
これらの決まりごとはNovaShaderに限らず、自作のShaderにも応用できる考え方なので、ぜひご覧ください。
1. どうやって歪ませているのか?
NovaShaderでは、RGBAチャンネルのうち2種類の指定したチャンネル値を使い、256段階で歪みの強度を表現しています。
特に理由がない限りは、R(赤)とG(緑)を使うため、大体のUVテクスチャは黄緑色になります。
2. グレーが基準色
NovaShaderではRGBAいずれも128を基準として、基準値から離れるほど強く歪みます。
下記のカラー情報では、基準値から変化がないため歪むことはありません。
例)RGBA(128, 128, 0, 255)
UVテクスチャの中に、歪ませたくない領域を作りたい場合は128を設定します。