黒鳥3D研究所

3DCGでケモノを作る上で使えそうな技術をまとめていくブログ。主にソフトやプラグインの使い方をまとめます。その他雑記なども

【Unity】VRChatでファーシェーダーを試す エラー修正編

最近シェーダーを勉強し始めました。シェーダーを使うならモフモフを表現できるファーシェーダーをやりたいと思い早速調査開始。 VRChatで使えそうなシェーダーを探して見つけたのがこれ。

[Unity] ファーシェーダを移植してみた - Qiita

ただ、そのままだとVRChatのアバターを作るUnity 5.6.3p1ではエラーで動作しなかったので、修正した個所を備忘録的にまとめる。 GitHubからファイルを落として来て、Unity 5.6.3p1で開いたところからスタート

プロジェクトを開くと最初にプロジェクトのバージョンのアップグレードを要求されるので「Upgrade」を押す。

f:id:kurotori4423:20180126202300p:plain

ProjectビューからSceneを開いて再生しても最初は真っ黒。これを修正する。

f:id:kurotori4423:20180126202444p:plain

Shedarsフォルダの項目のFurShaderを見ると二つエラーがある。

f:id:kurotori4423:20180126202618p:plain

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
    }
}

これで正しく表示される。 f:id:kurotori4423:20180126204512p:plain