使用バージョン: Blender 2.81
ポリゴンメッシュで髪を作る場合は、下図のような髪の毛を抜くマスク用の透過マップテクスチャが必要になります。
このような透過マップテクスチャを作るには Substance Painter を使えば簡単にできそうなのですが、まだ僕は持ってません …。 なので今回は Blender のヘアパーティクルを使って髪の毛の透過マップテクスチャを作ってみました。
ヘアーパーティクルで髪の束を作る
まずはヘアーパーティクルを使って髪の毛の束を作ります。 ヘアーパーティクルを発生させるために、平面や円オブジェクトを追加します。 今回は円を追加して面を貼って、それにヘアパーティクルを設定してみました。
この髪の束をベースに、髪の毛の流れを調整していくのですが、その前に視点を固定するためにカメラを設置しておきます。
正面から撮影するカメラを設定する
カメラは正面に設置するのですが、レンズは通常のパースの効いたものではなく「平行投影」に設定します。
カメラのプロパティタブから、レンズのタイプを「平行投影」に変更します。
次にカメラをオブジェクトの正面に設置します。 N キーでプロパティパネルを開き、カメラの回転を X 90°、Y と Z は 0°にして正面を向けます。
次にレンダリングする画像の縦横比と寸法を設定します。 一般的には正方形が使われると思うので、出力プロパティの寸法を設定しておきます。
今回は 1024 × 1024 に設定してみました。 最後にテンキーの 0 キーでカメラ視点にして、ヘアーパーティクルを設定したオブジェクトの位置を調整します。
マテリアルを設定する
次に作業しやすいように、髪とワールドのマテリアルを設定しておきます。 ワールドの方は真っ黒にします。
ヘアーパーティクルのマテリアルの方はベースカラーを白 ( FFFFFF ) にして、エミッション ( 放射 ) の色も白 ( FFFFFF ) にします。
またヘアーパーティクルのエミッターは、レンダーとビューポート表示の両方で「エミッターを表示」のチェックを外して非表示にします。
またビューポートでの表示は毛先が細い方が見やすいので、ヘアーの形状を「ストリップ」にしておきます。
ヘアーの形状を「ストリップ」にするには、レンダリングエンジンを一度 Eevee に変更します。
ビューポートを Cycles レンダーにすると、下記図のようになります。
※ マテリアルを放射にしてあるのでシーンのライトは必要ありません
あとはヘアーパーティクルの粗さ、ねじれなどの各パラメータを調整して、髪の束の形を好みの形になるように調整します。 今回は下記のように髪の束を作ってみました。
髪の根本をランダムにする場合は斜めにする
ヘアーパーティクルでは髪の毛先側は調整できるのですが、根元側が直線になってしまいます。
僕の場合は根本側もランダムにしたかったので、オブジェクトを30°ほどカメラに対して手前に傾けてみました。
こうすると傾けた分だけ、髪の発生源の高さが変わるので、下図のように少しだけ根元側がランダムになります。
カメラは平行投影になっているので斜めにしても問題ありません。 斜めにした分、正面から見た場合髪の長さが短くなるので、長さを長めに調整します。
あとは同じ要領で複数の髪の束を作り、Cycles でレンダリングすれば、髪の透過マップの出来上がりです。
ノーマルマップもレンダリングしてみた
ノードを変更してノーマルマップもレンダリングしてみました。
ノードは下記リンク先のページを参考にさせていただきました。
cycles – Bake hair particle system to textured low-poly mesh – Blender Stack Exchange