デカールとは簡単に説明するとテクスチャやマテリアルを使用たシール的なものです。
そのシールを使って自分の作成したメッシュモデルにサビとか汚れを表現することも可能なのでUV展開してテクスチャを割り当てたんだけど、汚れや傷が欲しかったなぁとういう場合にも活用出来ます。
さて、今回は血しぶきという事で絵の具をこぼしてしまった時のような白黒のテクスチャを用意しました。
まず作成方法はベースカラーマップ、マスクマップ、ノーマルマップを用意します。
血の色合いがよくわからないのでRの値を取り敢えず1に設定しておき、用意したベースカラーマップをOnMinusで反転させてオパシティにつなぎます。
こうすることにより、白くなっているしぶきのアルファ抜きが可能になるので、血の透明度を表現できます。ちなみに1の時が不透明で、0の時が透明になります。
続いてマスクマップのRピンをラフネスにつなぎます。 今回のマスクマップではRピンにはラフネスマップ、Gピンにハイトマップの情報が埋こまれています。
ちなみにマスクマップに含まれるR情報が少ないですが、このぐらい散らばっていたほうが血の反射の均等性が無くなるので良いと思いました。
最後にノーマルマップで血の凹凸を擬似的に表現します。
ここらへんもパラメーター等で改良していくのもありです。
取り敢えずラフネス値だけをパラメーター化して血の粗さや反射具合をレベルで確認しながら調節していきます。
ちなみにマテリアルインスタンスはコンパイルの必要がないのでリアルタイムで表現が可能です。
実際に自分の作成したメッシュに貼り付けてみました。
スカイライトありだと血の色合いが薄まってしまい中々リアルに見えないですね・・・
それどころかノーマルマップでの凹凸とラフネスマップによる反射の効果も全然見られなく、ただ単にベースカラーマップを貼り付けただけの質感って感じになります。
こちらがスカイライトを排除し、ディレクションライトのみでライティングを行った結果。
擬似的な凹凸と、ラフネスによる表面の粗さはスカイライトの方よりかは表現できていると思います。
やはり、リアルな血しぶきに見せるためには色合いを補正したり、テクスチャが伸びきっているようにも見えるのでディティールマッピングを行う必要性が出てきますね。