【Blender】CurveとGeometoryNodeを使って髪の毛を作る

Blenderのバージョン3.3から導入された新しい機能らしい。これで髪の毛を作る方法メモ。

準備

右サイドのレンダリングプロパティ設定から、Curveの項目をStripにしておく(しなくても髪自体は表示されるがした方が精細)

頭皮となるオブジェクトを作成。

そして頭皮オブジェクトをUV展開しておく必要がある。

それらが終わったら頭皮オブジェクトを選択した状態で Curve – EmptyHairを選択する。

右サイドのヒエラルヒーでカーブが追加される。

そのカーブを選択した状態で(親の頭皮オブジェクトではない!!)SculptModeを開く。

(Control+Tabキー でも可能)

スカルプトモードで大雑把に髪を作る

大雑把にというのは、今回は毛量や髪質の調整はジオメトリノード機能を使ってやっていきたいため。スカルプトモードで全て済ませることも可能。

Addで髪を生やす

Addモードを選択した状態で頭皮をクリックする。マウスカーソルの周囲にある赤い円の内部に毛を生やすことが可能。

Hint

この円のサイズは Fキーを押す → マウスを左右に動かす ことで変更可能!

毛の数は上のCountの数値をいじることで増やせる。ただし今回増毛の過程はジオメトリノードで行うので、ここではそこまで植えまくらない。

前髪のオブジェクトをADDブラシでなぞってとりあえず生やした状態。

TIP

CurveShapeのPointsをいじると髪のポイント数が変更できる。多いとより滑らかに仕上げられる。特に長髪の場合は大目にした方が髪型を調整しやすい。

櫛ブラシで髪を整えていく

ウニみたいに逆立っている髪を櫛機能でなぞって下ろしていく。

髪の長さ調整

Grow/Shrinkブラシで髪をなぞると髪を伸ばすことが可能。反対に短くしたいときは、Controlキーを押した状態でなぞる

長さを変える方法はいくつもある。AddブラシのCurveShapeをクリックして表示されるLengthを変更することで、Addした時のデフォルトの髪の長さを変えることも可能。

髪のふくらみ調整

Smoothブラシでなぞると髪を落ち着かせることが可能。

逆にPuffブラシだとふくらませることができる。

ジオメトリノードで毛量を調整していく

いったんオブジェクトモードに戻り、画面分割をする。そしてひとつの画面にはジオメトリノードエディタを表示させる。

右サイドのヒエラルヒー内から、上で作ったCurveを選択すると、ジオメトリノードに3つのノードがあるのが確認できるはず。

毛量を増やす

下記のようなノードを構築すれば毛量を増やせる。赤線内のノードをひとつずつ作成していく。

まずはShiftキー + Aキー で Geometry – DuplicateElementsノードを作成。Splineに変更し、Amountを上げる(このノードを繋いだだけだと目に見える変化がないのはまったく同じ位置で複製されているため)。

次に位置を調整するための3つのノードを加えていく。

Utilities – RondomValue (Vectorに変更し Maxはてきとう)

Attribute – CaptureAttribute(上をVector、下はSpline)

Geometry – SetPosition

これらを下のように繋ぐと毛を増量することが可能。

毛の広がりはRandomValueノードのMaxの値で、毛量はDuplicateElementsノードのAmount項目で調整できる。

さらに調整しやすくする

上のやり方で毛量は増やせるが増減の仕方が急激すぎる。微調整をしやすくするため、RondomValueノードの前に3つのノードを加え接続していく。

Input – Valueノード(これをいじって毛量調整)

Utilities-Mathを2つ(両方ともMultiplyにして、一つ目は0.01、2つ目は -1)

ジオメトリノードでさらに調整

毛束の広がりを調整する

先端に行くにしたいが毛が収束していくような感じを出すノードは下記の通り。

CaptureAttributeとSetPositionノードの間に3つのノードを挿入する。

Curve – SplineParameterノードを出してFactorからValueへ。

Utilities – MapRangeノード。上から 0 1 1 0 の値を入力する。

Vector – VectorMathノードを出し、Scaleに変更する。

注意点としては右サイドのレンダリングプロパティ設定から、Curveの項目をStripにしておくこと。

毛の根本が頭皮オブジェクトの表面から浮かないようにする

何もしない状態だと赤丸で囲っている部分のように根本が浮いて表示された。これを頭皮にちゃんとくっつける。

4つのノードを作成し、末端に接続する。

Input – ObjectInfoノードを出す。Originalとなっているのを Relativeに変更

さらにスポイトを使って毛をくっつけたさせたい頭皮オブジェクトを選択する。

Geometry – GeometryProximityノードを出す。

Curve – EndpointSelectionノードを出し、EndSizeの箇所を0に変更する。

そして Geometry – SetPositonノードを出して3つを繋げる。

その他TIP

髪をパーツごとに分割

前髪、斜めの触覚、横、後ろと、髪の長さは異なる場合の方が多い。当然ながらそれらパーツごとに管理した方が色々都合がよい。

その方法として ①頭皮オブジェクトそのものをパーツごとに分割する方法がまず挙げられる。これは前髪なら前髪部分だけ頭皮のオブジェクトを分離し、そこにCurveをそれぞれ設定するという方法(ジオメトリノードは基本共有すればいい)。

もう一つの方法として②頭皮オブジェはひとかたまりとして、Curveをパーツの分だけ作るという方法。下の動画の15分くらいのところでやってるようなやり方。こちらだとレイヤーで重ねていくような表現もできるので、より繊細な表現を追求するならこっちの方が向いている気がする。

どちらがいいかはよくわからない。

コメント

タイトルとURLをコピーしました