👌

VR向け集中線Quadシェーダーの作り方

に公開

はじめに

こんにちは。Kaibaです。今回はVR向けの集中線シェーダーの作り方について解説します。

集中線は、アニメや漫画でよく使用される視覚効果の一つで、キャラクターの集中や緊張を表現する際に使用されます。VRゲームでも集中線を画面周囲に配置することで、実際の移動速度よりも高速に移動している感覚を与えることができます。

なお、この記事ではplaneに貼り付けるShaderを作成します。CameraRigの

ShaderGraph

まあとっとと完成形を出せという人向けに概観。

そんな複雑なShaderGraphではないですね。ミソ?は(0.5,0.5)を中心にUVを引き延ばすところです。
以下で詳しく各部を解説します。

UVの引き延ばし

早速ミソですが、(0~1,0~1)のuvをsubtractで(-0.5~0.5,-0.5~0.5)に変換します。そこからnormalizeすることで長さが1になるように引き延ばします。

こうすることにより、集中線の中心に線が向かうようなベクトルが得られます。

UVスクロール

Timeをmodに入れて時間経過で0 -> 1, 0 -> 1とループするようにします。
こうして出来たUVスクロールをノイズのUVに入れて集中線の色がノイズによってランダムになるようにします。

ノイズを使って中心部分を透明に

最後に、ノイズの形状に中心部分のAlphaを乗算して中心部分を透明にします。

これで集中線の中央部分が透明になります。

おわりに

以上、今回はサクッと解説しましたが集中線のシェーダーでした。
UVの引き延ばしが面倒で作ろうとしたら地味に面倒だったので備忘録も兼ねて記事にまとめておきました。解説が分かりにくいとかあればコメントください。
VRゲームのワンポイントにぜひどうぞ。それでは~

Discussion