忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

カーブによる髪のメッシュの作り方【モデリング / Blender】

Blender

更新日:

カーブを利用して髪のモデルを作る方法を紹介する。

カーブから作るか、1からポリゴンで作るか

ポリゴンの髪を作る方法には、カーブから作るか・1からポリゴンで作るかの大きく2つの方法がある。
それぞれの利点欠点を考慮した上で制作する。

1からポリゴンで作る場合

利点

自由度の高さが利点。
ふさを1つのメッシュから生やしたり、途中からふさを生やしたりなど好きに作れる。
最初から最後まで同じメッシュを弄れる。

  • 複雑な形状を作れる
  • 自由に制御できる
  • 後の工程との分断がない
    • カーブの場合は一旦メッシュ化する必要があるが、それがない。
  • UVを好きに作れる

欠点

  • すべて1から作る必要がある
  • 房ごとの調整が手間
  • 流れをなめらかにする補助ツールが必要
    • 後述のポリゴンモデリングの項で紹介

カーブ

利点

カーブには制御のしやすさ・簡単さがある。

  • 制御しやすい
    • 少ないポイント数でひとふさごとの要素に分類されているため、制御・管理がしやすい。
  • どのふさでも品質が均一であるため、一定の髪っぽさを得られる
  • UVが均一
    • 全て同じ方向に揃っているので、質感作成の際にグラデーションを付けたりなどができる

欠点

「カーブから作った髪」感が拭えない。よりそれっぽく見えるように調整が必要。
形を作り終わったらメッシュ化が必要であり、後でまた形状調整したいとなると出戻りが発生する。

  • UV展開などの後の工程と分断される
  • 品質が均一であるため、単調に見える
  • 半径とひねり程度しかメッシュを制御できない
  • ふさの結合ができない・不要な裏面ができる
    • 不要な裏面の削除方法は後述にて紹介する。
    • メッシュ化後に全てブーリアンするという手段があるが、トポロジーを修正がかなり手間。
  • 特殊な形状に対応できない
    • その場合はおとなしくポリゴンで作る。

カーブの基本設定

髪のふさにするカーブを新規作成したら、これにベベルオブジェクトを設定する。
このベベルオブジェクトでカーブの断面を決める。

  • ベベル用オブジェクトの円カーブを作成する。
    • 追加(Shift + A) > カーブ > [円]
  • スプラインタイプを多角形にする。
    • カーブ > スプラインタイプ > [多角形]
    • 断面はさほどポリゴン数が必要ではないので、メッシュのように制御しやすい多角形を利用する。
    • BlenderではZが上なので、ベベルオブジェクトは寝かせて配置しておく必要がある。カーブ編集内では回転せず、オブジェクトモードで正面に向くように回転させておくと見やすい。
  • これをベベルオブジェクトに設定する。
    • プロパティエディター > カーブ > ベベル > オブジェクト > 作成したカーブを設定する。
  • 形を調整する。
    • ひとまず上画像のような形でよい。
    • 上面になる部分に小さな溝を作るとよい。影にディティールが入り、背面法ラインが出るようになる。

スプラインタイプについて

カーブにはベジェNURBSがあり、使い勝手が違う。
自分が使いやすい方をやればいいが、NURBSの方がおすすめ

  • ベジェは流れを詳細に作りやすいが、ハンドルの制御が難しく、メッシュの密度にばらつきが出がち。
  • NURBSはポイントだけなので制御しやすく、自動補完が強いので滑らかな曲線になりがち。

解像度を設定する

解像度は、首から上まで寄って見たときにポリゴンのカクつきが気にならない程度にする。

プレビュー解像度 Uは5~8程度にする
カーブの長さによって必要な量は変わるので、必要に応じて増減する。

  • プロパティエディター > カーブ > シェイプ > プレビュー解像度 Uで、カーブオブジェクト全体の最大解像度が変更できる。
  • 個別に調整したい場合は、下記のアクティブスプラインの方の解像度 Uを調整する。

NURBSなら、ベジェUをオフ、階数 Uを4にして、カーブ形状の端まで沿うようにする

  • プロパティエディター > カーブ > アクティブスプライン
    • アクティブスプラインの設定は、スプラインのタイプごとに設定が違うので注意。
    • アクティブ選択しているスプラインが下記のメニューに表示される。

選択カーブオブジェクトの全スプラインの解像度Uを一括調整するコード

for obj in bpy.context.selected_objects:
    for sp in obj.data.splines:
        sp.resolution_u = 6

上のコードをコンソールエディターに貼ることで一括調整できる。

基本操作

基本のカーブを複製、半径やポイント位置などをほしい形に調整して、必要なら細分化で分割数を増やす。
カーブの表面が外側を向くように傾きを調整する。
これを1つのエリアに3本程度は繰り返して生やす。

大きく形を後調整したいときは、プロポーショナル編集を活用する。

キーマップ機能
Oプロポーショナル編集
トランスフォームを全体に対してスムーズに影響させることができる。
1つのスプラインのみを調整したい場合は、オプションの[接続のみ]を利用する。
Alt + S半径
カーブの太さを調整する。
きれいな強弱になるように調整する。
Ctrl + T傾き
カーブのひねりを調整する。
カーブが外側に向くように調整するとよい。
なし細分化
カーブの分割数を上げる。
Shift + Nハンドルを再計算
ベジェの場合に使う。カーブの流れが全体的におかしくなっているときに初期化する用途で利用する。
Vハンドルタイプを設定
ベジェの場合に使う。ハンドルタイプを[自動]にして、流れを初期化する 用途で利用する。

半径や傾きの設定は、サイドメニュー(N) > アイテム > トランスフォームからも調整できる。

髪を作る考え方

形状は、好きなイラストを参考にするとよい。

  • 隙間が見えないように埋める
    • ワイヤーフレーム表示にすると隙間がわかりやすい。
  • 少なくとも3つの要素を作る
    • 要素が最低でも3つ以上あると、複数の構造で作られている印象になる。大中小・前左右・太い細いなどの違う要素を組み合わせることができる。
  • 食い込みは気にしない
    • (ブーリアンしない場合)

部位ごとに分けて考える

髪も複数の要素に分けることができる。(前髪・もみあげ・後髪・ポニーテールなど)
特にアニメ的な髪は特徴的に分類されているため、構成要素を意識することで髪の構造が把握しやすくなる。
また、部位によってオブジェクトを分けると管理もしやすい。

完全な左右対称は良くない場合も

髪型が左右対称な場合はミラーモディファイアを使ってしまえばいいが、規則的すぎる印象に見える。
一通り作り込んだら少し非対称になるように調整したり、片方だけ新しい髪のふさを追加すると見栄えがより良くなる。

立体的に作る

頭の球状に沿うように、立体的に作る。
カーブが外側を向くようにそれぞれの傾きを調整する。

すべての角度で美しく見えるように意識する。正面からは良く見えても斜めから見たら微妙、ということになりがちなので注意。
特に斜めは最もよく見る角度なので、斜めから見た印象を大事にする。

その他注意点として、真横から見たときに眉・目が隠れないようにし、表情が見えるようにする。

額の隙間に注意

前髪の後ろがスカスカだと、下から見上げたときに顔の印象が変わってしまう。
これは、額が見える分だけ顔の見える面積が広くなってしまうため。

印象が変わらないようにカーブを太くして額を埋めて隠すようにするとよい。

表示設定

ワイヤーフレームを確認しながら編集すると、カーブの流れや食い込みを把握しやすい。

全部をワイヤーフレーム表示にしてもいいが、カーブオブジェクトだけをワイヤーフレーム表示にすると他オブジェクトをそのままでワイヤーフレーム表示にできる。

  • プロパティ > オブジェクト > ビューポート表示 > [ワイヤーフレーム]を有効化する
    • Alt を押すしながらやると、選択オブジェクト全てでの一括切り替えになる
  • ビュー全部のオブジェクトをワイヤーフレーム表示にする場合
    • 3Dビュー右上 > オーバーレイメニュー内 > ジオメトリ > ワイヤーフレーム

裏面を除去する・UVスペースを小さくする

カーブメッシュは裏面のUVサイズも均一なので、頭の裏にあるほとんど映らないような部分も不要にUVスペースを取ってしまう。
十分なUVサイズが取れるなら問題ないが、せっかくなので裏面のメッシュが小さくなるように最適化する。

後頭部の髪のように、完全に裏が見えない部分なら裏面削除してしまってよい。

メッシュ化前の裏メッシュを分離しておく

裏メッシュと表メッシュに分けられるように、ベベル用カーブを分離しておく。
ここで分離しておけば、[非多様体を選択]で裏表を分けるエッジを選択することができる。
上画像はわかりやすく離したもの。

  • カーブ > 分離(P) で分離した後、オブジェクト > 結合(Ctrl + J)で再度結合することで、カーブを分離できる。

カーブをメッシュ化する

  1. カーブをメッシュに変換する。
    • 変換 > メッシュ

裏面メッシュを取得する

分離状態を利用して裏面メッシュを選択できるようにする。

  1. 開いたエッジを選択する。
    • 3Dビュー > 選択 > [非多様体を選択]
  2. シームを付ける。
    • UV > [シームをマーク]
  3. 分離状態はもう不要なので、分離している頂点をマージする。
    • メッシュ > [距離でマージ]
    • 値0.000001 m
  4. UVをすべて展開する。
    • UV > [展開]
  5. 全てのシームエッジを選択する。
    • UVエッジを1つ選択し、選択 > 類似選択 > シーム
  6. 裏側メッシュをすべて選択する。
    • 選択 > [内側領域のループを選択]
  7. UVエディターで裏側メッシュのみで展開しておき、UVレイアウトの外に一旦退避しておく。

UV展開して梱包する

  1. 追加(Shift + A) > 平面プリミティブを追加し、これをUV領域確保するためのダミーとする。
  2. 作った平面と表側メッシュを一緒に梱包することで、裏面メッシュの領域を確保する事ができる。
  3. 裏面メッシュを平面の位置に配置し、平面は削除する。

ポリゴンモデリングで作る

作ったカーブをガイドとして、メッシュで1から作り直すというのも割とあり。
カーブの先端の形状を参考にするので作りやすい。

ポリゴン数を好きに削減でき、裏面も必要最低限にできる。
上記画像では元のカーブより見栄えがしない印象に見えるが、うまくテクスチャペイントすればそれも覆る。

裏面は、表面を作った後一度すべてフィル(F)して、[頂点の経路を連結](J)機能で対岸を繋げると楽。
F2アドオンで連続面張りしても良い。

補助ツール

人の手のみできれいな曲線を大量に作るのはかなり手間なため、補助ツールの手を借りる必要が出てくる。
特にMira ToolsアドオンのCStretchとEdge Flowアドオンが非常に便利。

  • Mira ToolsアドオンのCStretchでの、一時的なカーブを利用したエッジの一括制御
  • Edge Flowアドオンで滑らかな曲線化
  • プロポーショナル編集での一括調整
  • Loop ToolsアドオンのRelaxSpace機能でのエッジ均一化

ブーリアンする場合

カーブで作ったメッシュの表面を綺麗に整えたい場合、メッシュ化したものをすべてブーリアンする必要がある。

ブーリアン実行後のメッシュ調整がかなり手間がかかるので注意。
1から作り直したほうが早い場合もあるので、あまりおすすめはしない。

  1. 不要な穴や隙間になりそうな部分がないようにカーブを詰めて配置する。
    1. 裏面はどちらにしろ不要なので、裏側は穴埋め用ローポリメッシュを作って詰めるのもあり。
  2. カーブをメッシュに変換する。
    1. 変換 > メッシュ
  3. 面を塞ぐ。
    • F2アドオンが有効であれば全選択 > Fキーでよい。
    • メッシュ化前に、プロパティエディター > カーブ > ベベル > オブジェクト > [端をフィル]でもフィルできる。
    • ブーリアンをするためには、閉じたメッシュである必要がある。
  4. メッシュ編集モードでブーリアンを実行する。
    • 面 > [交差(ブーリアン)]を実行する。
    • 画面左下のオプションメニューから、[合成]、[自分自身と交差]を有効にする。
    • オブジェクト内のメッシュでブーリアンできる。
  5. トポロジ修正しつつ、上部にいくほどなだらかになるように調整する。
    1. ひたすらマージやエッジ除去などをしてきれいなトポロジーに整える。
    • 下記の自動マージが便利。頂点スナップやGダブルタップのエッジスライドで頂点を重ねるだけで自動的にマージできる。

ZBrushを利用するなら、カーブである程度作ったものをすべてDynameshで結合、裏面など形状調整した後、ZRemesherできれいにリトポロジーする、という事が可能ではある。

髪の質感を作る

髪の質感の作り方についてはこちらで紹介する。

3Dモデルなどの制作依頼はこちら

-Blender

Copyright© 忘却まとめ , 2022 All Rights Reserved Powered by STINGER.