【Unity】バグ風シェーダー使い方

ちょっと頼まれたのでUnityでバグっぽいシェーダーを作ってみました。

こちらで配布しています


使い方

・BagImageShader

Imageなどに使用すると、そのオブジェクトのみバグっぽい表現になります。影とかは計算されないので3Dオブジェクトには向いてないと思います。


・BagShader

ImageやPlaneなどに使用すると、その後ろにあるオブジェクトがバグっぽい表現になります。

URPの場合はカメラのOpaque TextureをOnにする必要があります。こちらを使うと画面の一部のみにエフェクトをかけることもできますが、従来のポストエフェクトは使用できないので、併用する場合は次のBagPostEffectの方を使う必要があります


・BagPostEffect(ビルトインRP)

PostProcessingStackの1つとして使うためのやつ。

PostProcess Volumeを用意して、他のポストエフェクトと同じように使えます。AddEffectからCustom>BagEffectを追加するだけです


・BagPostEffect(URP)

PostProcessingの一つとして使うためのやつ。Unity非推奨の方法で作ったので2021.3.11、URP12以外のバージョンだと動かない可能性もあります。

以下の手順で使えます。

①Forward Renderer Dataの設定

Forward Renderer DataにBag Post Process Render Featureを追加する

追加したら、Shaderに「URPBagImageShader」を追加します。

Timingではどのタイミングでポストエフェクトをかけるかを選べます。ブルームとかと使う場合がほとんどだと思うのでAfterPostprocessが良いと思います。

ApplyToSceneViewのチェックを入れておくとシーンビューでも再生されます。オフにしたほうが良い気がする

あとはPost-processingのEnabledにチェックを入れておく


②CameraコンポーネントのPost Processingにチェックを入れます。


③Volumeの設定

Grobal Volumeとかお好みのVolumeを追加して、Add OverRideからBag Effectを選択します


UIにも適用したい場合は、CanvasのRender ModeをScreen Space – Cameraにしましょう。Plane Distanceの値を小さくすると3Dオブジェクトの手前に表示されます


パラメーター

・MainTex

 基本的に使用しない。Imageオブジェクトのマテリアルとして使用する場合は、自動的にImageオブジェクトのSpriteになります。


・SplitX

時折表示される四角の大きさの指定に使用。横方向に何分割するか


・SplitY

時折表示される四角の大きさの指定に使用。縦方向に何分割するか


・Shift

四角の中でどのくらいずらすか。

左が0.1、右が0.2。数字が大きいほど下にずれる


・Frec

アニメーションの速度


・ColorGap

四角の中の色収差の度合い。0だと色収差がなくなります。


・Ratio

一度にどのくらいの量の四角を表示するか。値が大きいほど


・Strength

画面揺れの大きさ。0だと揺れなくなります。


・Blur

ボケの強さ

Unity

guest
0 コメント
Inline Feedbacks
全てのコメントを見る