悪役感。
前回の続きです。
tm8r.hateblo.jp
MatCapのMaterialを作ったのはいいけど、このノード都度作るの面倒だなーというとき、Materialをシーンとして書き出すというのがぱっと浮かびます。
が、ShaderFXにはシェーダーをファイルとして書き出す機能があるので今回はこちらを試してみます。
まず前回作ったMaterialをShaderFXで開いて、右の方に注目すると「Material」というノードがあるのでこちらを選択します。
するとアトリビュートエディタがこんな感じの表示になるので、HwShader/Shader Configで「CGFX_3」を選択します。
次にその下のFilenameというところの「…」を選択して書き出したい名前を入力します。
あとは「HwShader / Save to Disk」を選択すれば指定した名前でシェーダーが書き出されます。
ただ、デフォルトだと「入力名.*」という形になると思いますが、これだとうまく書き出されないことがあるので、「.*」を削除してやると成功しやすい気がします。謎。
次にこのシェーダーを利用する方法です。
まずHypershadeを開いて、Createタブの「Cgfx Shader」を選択します。
するとCgfxShaderのMaterialが作成されるので、これを選択してアトリビュートエディタを開きます。
するとこんな感じでCgFXファイルを指定するところがあるので、先程保存したファイルを選択すれば完了です。
最後にこれを適当なオブジェクトに割り当ててみます。
はい。
とりあえずちゃんと適用されているようです。
こちらは前回のテクスチャをそのまま利用した形ですが、CgfxShaderのアトリビュートエディタで表示されている「file1」「file2」がそれぞれメインのテクスチャとMatCapのテクスチャなので、これを適宜差し替えてやる感じです。
ちなみにこのMaterialはShaderFXでは開けないので、再度ShaderFXで編集したい場合は書き出しを行ったシーンでやる必要があります。
が、再度同じ場所に書き出せば結果的にこのCgFXファイルが適用されたMaterialに変更が反映されるので大変便利です。
逆に反映されるのが嫌であればMaterialをシーンとして書き出してimportするような運用がよいかも。
この作品はユニティちゃんライセンス条項の元に提供されています