【Unity】VRChatでファーシェーダーを試す エラー修正編
最近シェーダーを勉強し始めました。シェーダーを使うならモフモフを表現できるファーシェーダーをやりたいと思い早速調査開始。 VRChatで使えそうなシェーダーを探して見つけたのがこれ。
[Unity] ファーシェーダを移植してみた - Qiita
ただ、そのままだとVRChatのアバターを作るUnity 5.6.3p1ではエラーで動作しなかったので、修正した個所を備忘録的にまとめる。 GitHubからファイルを落として来て、Unity 5.6.3p1で開いたところからスタート
プロジェクトを開くと最初にプロジェクトのバージョンのアップグレードを要求されるので「Upgrade」を押す。
ProjectビューからSceneを開いて再生しても最初は真っ黒。これを修正する。
Shedarsフォルダの項目のFurShaderを見ると二つエラーがある。
FurHelper.cgincの8行目を以下のように修正。
修正前
float4 vertex : SV_POSITION;
修正後
float4 vertex : POSITION;
FurHelper.cgincの32行目のforceDirectionの初期化の文法がおかしいのが問題なので以下のように修正。
修正前
float3 forceDirection = float3(0.0);
修正後
float3 forceDirection = float3(0.0,0.0,0.0);
次にFurShader.shaderの15行目以降のPass{}を以下のように修正
修正前
Pass { ZWrite On Blend Off CGPROGRAM #include "FurHelper.cginc" ENDCG SetTexture [_MainTex] { combine texture + primary } }
修正後
Pass { ZWrite On Blend Off CGPROGRAM #pragma vertex vert #pragma fragment frag #define FUR_OFFSET 0.000000 #include "FurHelper.cginc" ENDCG SetTexture [_MainTex] { combine texture + primary } }
これで正しく表示される。