前提・実現したいこと
ある能力のエフェクトとして、下記のように球体に描画範囲内を反転させるシェーダーを用いて、それを大きくしています。
この反転する効果を能力の使用者(この場合カプセル)に対してはかけなくしたいです。
発生している問題・エラーメッセージ
シェーダーについて全くの初心者で、色々調べて反転させるシェーダーを用意したはいいものの、それの改変方法が分からず詰まってしまっています。
該当のソースコード
ShaderLabs
1Shader "Custom/Invert" 2{ 3 Properties 4 { 5 _Color("Color", Color) = (1,1,1,1) 6 _MainTex("Albedo (RGB)", 2D) = "white" {} 7 } 8 SubShader 9 { 10 Tags { "RenderType" = "Transparent" "Queue" = "Transparent" } 11 LOD 200 12 Blend OneMinusDstColor Zero 13 14 PASS 15 { 16 CGPROGRAM 17 18 #pragma vertex vert 19 #pragma fragment frag 20 #pragma target 3.0 Alpha:Blend 21 22 struct appdata 23 { 24 float4 vertex : POSITION; 25 float2 uv : TEXCOORD0; 26 }; 27 28 struct v2f 29 { 30 float2 uv : TEXCOORD0; 31 float4 vertex : SV_POSITION; 32 }; 33 34 fixed4 _Color; 35 36 v2f vert(appdata v) 37 { 38 v2f o; 39 o.vertex = UnityObjectToClipPos(v.vertex); 40 o.uv = float2(0,0); 41 return o; 42 } 43 44 fixed4 frag(v2f i) : SV_Target 45 { 46 return _Color; 47 } 48 49 ENDCG 50 } 51 } 52 FallBack "Diffuse" 53}
試したこと
カメラを二つ用意し、片方のカメラをキャラのみを描画するように設定しましたが、最前面には反転用の球体オブジェクトがあるので反転していない状態のキャラを描画するにはキャラを最前列に表示させる必要があり、そうすると他のオブジェクトよりも手前に表示されてしまい不自然になってしまいました。
特定のオブジェクト(レイヤー)に対してシェーダーの効果を無効化する方法はありますでしょうか。ご教授願いたいです。
補足情報(FW/ツールのバージョンなど)
Unity2020 2.3f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/12 11:27
2021/02/12 19:13
2021/02/14 16:21