今回の髪はBlenderの新しいヘアシステムを使用する。
方法A――丁寧な方法
手順としては、①オブジェクトでざっくり髪を造形②辺を抽出してカーブに変換し、向きを整えてヘアカーブに③HairSystemやGeometryNodeで調整 となっている。
地肌オブジェクトにEmptyHairをAddしてSculptModeで髪を生やすいくという方法もある。どちらの方法がいいかは難しいが、複雑な髪型だったり、細かくパーツ分けして制御したい場合はこっちの方が作りやすいように感じた。
参考動画は下記。
準備
RenderPropertiesのCurvesをStripに変更しておく。
AdditionalSubdivisionを増やすとなめらかな髪になる
地肌用のオブジェクトを作る
頭のオブジェクトがあるなら地肌オブジェクトは必ずしも必要ではない。が、作っておくと便利な局面もあるので個人的には作ることを推奨。
そしたらUVEditingモードに移動し地肌のUV展開をしておく。
ざっくりと髪オブジェクトを作る
髪の毛の流れを意識し、パーツごとに作っていく。
細かい修正は後でできるので気にしない。
例えば前髪は、Add – Mesh –UVSphere(前髪以外でもSphereが編集しやすかった)を出し、おでこに配置する。
ループカットで少し細分化したり、卵型にしたりして前髪
それから不要な部分を削除しして前髪部分を切り出す(前髪になるのはこのうち縦の辺なのでその点を意識する)。
できたら縦辺を選択していく。
Shift + Alt + 左クリックで縦辺の一箇所を選択すると、辺リング選択で縦線の始点から終点まで選択できる。
画像のように縦辺が選択できたら、Shift+ Dで辺を複製し、Pキーで別オブジェクトとして分離する。そうすると縦辺だけのオブジェクトが生成される。
元のオブジェクトは形状修正のために非表示にして保存しておく。複製された方は適当に名前をつけておく。
本数はヘアシステムのモディファイアで調整するのであまりきにしない。
ただ滑らかさはカーブに変換する前に調整したほうがいい。特に長い髪などはセグメントの数が少ないとカクカクになってしまう
サイドの髪
作り方はだいたい一緒でUVSphearから造形したが、LoopTool や vertex – ShadeSmooth で形状を調整。
下の画像程度の細分化だと、カーブに変換してもカクカクになる。なのでより細かくした方がいい。
かくつきの制御は後でブラシで調整したり、RenderProperties – Curve にあるAdditionalSubdivisionの数値を上げて対応する。
ヘアカーブに変換
出来上がった辺オブジェクトをカーブに変換していく。
Curve → 向き修正 →Curves と三段階。特にCurveとCurvesは別なので注意
Curveに変換
辺オブジェクトを選択した状態で、Object – Convert – Curve(上にある単数形の方。下のCurvesではない!)に変換する。
Curveの向きを揃える
変換後のカーブを選択してEditModeに入る。
そしてOverLaysを開いて、一番下にあるNormalsの部分にチェックを入れ、値を調整する。
ノーマルの方向がちゃんと揃っているか確認する(髪の根元と毛先の方向がグッチャになるので)。
画像だと一番左のカーブだけ向きが違う。
向きを変えたいカーブのみ選択してSegments – SwitchDirectionを実行する。
向きが揃えばOK。
Curvesに変換する
向きを揃えたカーブを選択した状態で、Convert + Curves(今度は下の方!複数形の方)でヘアカーブに変換する。
表示は下の画像のようにわさわさになる
出来上がったヘアカーブを選択した状態で、ObjectDataPropertiesを開き、Surfaceに頭のオブジェクト(地肌オブジェクトがあるならそれ)を割り当て、UvMapも当てておく(当てておかないとSculptModeで編集するときにエラーが出る)
SculptModeに移動し、Curves – Snap to Nearest Surfaceでくっつけておく。
髪の調整
アセットブラウザを開き、デフォルトで入っている髪の毛アセットを開く。
太さを調整
ヘアカーブにSetHairCurveProfileモディファイアをドラッグドロップでアタッチする(わさわさはこれを当てると解消されるはず)。
モディファイアのパネルで太さを調整する。FactorMaxで太い部分、つまり髪の根元の太さを変更可能。
毛量の調整
DuplicateHairCurvesを使う。
こんな感じになる。
モディファイアを共有する
前髪に使っているモディファイアをサイドの髪にも使いたいとき。
前髪の使いたいモディファイアに名前をつけておく
サイドのModifierPropertiesを開き、新しくGeometrynodeを作成。
下線のアイコンをクリックして名前で検索して選択するとサイドの髪にも割り当てることができる。
他にも色々アセットはあるので試してみよう。
髪の根本を頭皮につける
下記動画
Duplicateモディファイアで髪を増やすと、どうしても根本が少し頭皮から浮いた感じになってしまうのでGeometryNodeを使って修正する(AttachHairCurveモディファイアはうまくいかなかった)。
①AddModifierから新規にGeometryNodeモディファイアを作成する。そしたらNewを押して生成し、GeometryNodeEditorを開く。
②Shift + A – Geometry – Write – SetPositionノードを出し、デフォルトのノードの間に配置する。
③Shift + A – Geometry – Sample – GeometryProximityノードを出す。
④アウトライナーから頭皮となるオブジェクトをドラッグし、GeometryNodeEditor内にドロップする。
するとObjectInfoノードが生成される。
ノードをRelativeに変更し、GeometryProximityのTargetに接続する。
さらにGeometryProximityのPositionをSetPositionノードのPositionに接続。
⑤Shift +A – Curve – Read – EndpointSelectionノードを出す。
EndSizeを0にして、SetPositionノードのSelectionに接続する。
GeometryNodeの完成形
ヘアカーブのポイントの数を増やしたい
SculptModeでEditModeに入ることで、ポイント単位で削除できるので減らすことはできるが増やすのはその方法では無理。
増やしたいヘアカーブに新しくGeometrynodeを作成。
ResampleCurveをデフォルトのノードの間に接続。
CountをCountに接続
そうするとModifierPropertiesの部分にCountとという項目が表示されるので、そこの数値を上げることでポイント数を増やせる。
その他のパーツ
手順は同じ。
やはりSphereから作ると、ループ選択やループカットも簡単なので楽だった。
方法B――地肌に植え付けていく
メッシュから変換とかではなく、地肌にヘアカーブを植えて櫛で成形する。
①RenderPropertiesをStripにしておく
②地肌オブジェクトを準備。UV展開もしておく。
③地肌オブジェクトを選択した状態でCurve – EmptyHairを実行。
④作ったCurveを選択した状態でSculptModeに移動し植えていく。
シンプルな髪型ならひとつのカーブオブジェクトで髪全体をやってもいいが、そうでない場合は髪のパーツごとにカーブオブジェクトを生成して整えると作業しやすい。
具体例
右の側面のパーツをとりあえずSculptModeで
髪を増やすのはDuplicate・Interpolate・その両方という選択肢がある。
とりあえずDuplicateを当てて、RadiusやAmountを調整するとこんな感じ。
そうすると髪の毛が消えるが、ModifierPropertiesのSurfaceに地肌オブジェクトを割り当てることでわさわさになる。
TIPsやトラブル
ヘアカーブをミラーさせたい
ミラーしたいヘアカーブを選択し、新規にGeometryNodeを作成。
デフォルトのノードの間に TransformGeometryとJoinGeometryの2つを接続。
今回はX軸でミラーさせたいのでTransformGeometryのXの値を -1 に設定
モディファイアの順序に注意
モディファイアを複数当てている場合、上から順番に効果をもたせているため、順序によって結果が違ってくる。
スカルプトーモードで少数のカーブだけを調整したい・一部分にだけブラシをかけたい
対象のCurvesを選択肢てSculptModeに入り、TabキーでEditModeに移る。
そうするとポイントが表示されるので、調整したいカーブを選択する。その状態でTabを押しScultpに戻ると、選択した箇所にのみブラシをかけることができる。
あるカーブをはじめから終わりまでなら、どれかポイントを選択しCtrol + L
カーブに当てているモディファイアをコピーしたい
①ヘアカーブAを作成しアセット・モディファイアを割り当てる。
②ヘアカーブBを作成する。
③ヘアカーブB → ヘアカーブAの順番(空のヘアカーブを先にクリックし、次いでモディファイアのあるカーブを)で選択する。
④Ctrol + L (Object – Transfer Link Data) – Copy Modifiers を実行する。
⑤どのモディファイアを使用しているかで異なるが、画像のようにSurfaceで特定のメッシュを割り当てている場合、切り替える必要がある
隙間が生じてしまう
デフォルトのSphereのままで生成して,Duplicateで毛を増やしたところ隙間ができてしまうことがあった。Radiusをいじって毛を拡散させることで隠せなくもないが、やりすぎると髪型自体がもっさりとしたものになってしまうので他の方法を考える。
元となるSphereを細分化し、より多くの辺を作ることで対処するという方法もある。作り直しなので少し面倒くさい。
SculptModeのDensityブラシを使うという方法もある。今回はこれを解説。
①ヘアカーブを選択し、SculptModeに入り、Densityブラシをオンにする。
②一番右のCurceShapeを開き、Length Shape PointCurve の3つの項目をアクティブにする。
またその左側のCountMaxは1にしておく(別に他の数値でも良いが、あくまで今回は隙間を埋めるが目的なので、数は少なめにしておいたほうがいい)
③隙間のある箇所を埋められるような位置に髪を生やす。ただ形は思ったようにいかなかった。
④新規に生やした髪だけ選択する(画像のブラシを使うか、EditModeで選択する。選択をしないでくしブラシを使うと他の髪まで梳いてしまう感じになってしまうのでそれを避けるため)
⑤クシブラシやGrowShrinkブラシで調整する。
髪のポイント・セグメントを増やしたい
髪を生成してから角張りをなめらかにしたいと思うことがある。ただ現状、ヘアシステムのカーブのセグメントを後から増やすブラシなどは実装されていない(減らすであれば、SculptModeからEditModeに入ることで操作可能)。
が、GeometryNodeのResampleCurveを使うことで増減させる事が可能。
やってみたがあまり
髪の毛のカクツキ・ガタツキ
これはCombブラシで調整したり、元のカーブをよりポイント数の多いものにする。
RenderProperties – Curves のAdditionalSubdivisionの数値を上げる・
モディファイアが効いてない・モディファイアの値をいじっても変化しない
これはRenderPropertiesのCurvesの項目を開き、Stripになっているか確認する。
Density Brush の使い方・Densityブラシで補完される髪の長さや形状をコントロールする
ヘアカーブSculptModeにはDensityBrushがある。カーブの密度を増減させる機能を持っている。髪の毛の補完なんかによく使う。
これは何も設定せずになぞると短い髪が増えてしまう。
元々ある髪の形状や長さを踏まえて補完させるには、CurveShapeを開いて必要な項目にチェックを入れる。