LightWaveで二次元キャラ系人物モデリング奮闘記 ―プリーツスカート編―

最終更新:2017/01/13

今回はプリーツスカートがテーマ。なんとなくそれらしい形のものを作るのは簡単なので、学生の制服やアイドルユニットのお揃いの衣装などでお馴染みのチェック柄のスカートを作る。チェック柄なんて珍しくもないけど、チェック柄を甘く見てはいけない。

3DCG隆盛の昨今でも、チェック柄のスカートを身にまとった美少女キャラクターの3Dモデルというのは驚くほど見かけない。まず考えられる理由としては、UVマップに格子状に展開したチェック柄を歪ませないように維持したままスカートをモデリングするのが難しいからというのが挙げられる。単純に裾を広く、ウェストを細くすると上に行くほど柄が細くなってしまい、不自然になってしまう。

仮に、モデルを単純化してテクスチャの描き方を工夫するにしても、放射状に広がる裾に合わせてチェック柄を描くのは、柄の連続性をどうやって担保するのかといった問題も含め、控えめに言っても労力がかかる。立体化を前提、想定、又は期待してキャラクターデザインをする場合、チェック柄のスカートは全般的に避けられる傾向にある。現実世界では街に出ればチェック柄のスカートばかりが目立つのに、二次元世界では学園物の作品でも制服のプリーツスカートにチェック柄を採用している学校のほうが珍しい。もっとも、立体化の前にアニメ化やコミカライズといった二次元化があり、単純に描くのが面倒という現実的な問題もある。

また、プリーツスカートの縫製の特殊性にも理由がある。縫い目を切り離して展開してみると、大抵の人が想像するような扇形や台形の生地ではなく、実は長方形の布1枚でできている。それを末広がりの独特のラインに仕立てるために、「曲線折り」という特殊な折り方を採用している。ウェストが細くなるようにまっすぐに折るといずれチェック柄が斜めに傾いていってしまうのを避けられない。

本物の布や折り紙であれば基本的に伸び縮みはないので、順序よく折り目をつけていけば自然にプリーツスカートの形になっていくんだけど、3Dモデリングの場合、ポイントを移動させるとエッジがいくらでも伸縮してしまう特性があるため、エッジの長さを固定したまま折り畳むという操作がそもそも難しい。

そのプリーツスカートを現実のものとほぼ同様の発想でモデリングすることにあえて挑戦する。挑戦しないのであれば、わざわざ記事にする必要はない。例によって拡張プラスと移動ツールでモデリングしていく方法を今更紹介されても「またその組み合わせ?」と言われかねない。

基礎を作る

それでも、3DCGソフトウェアの制限には逆らえないので、まずはセオリーどおり円筒から作る。ディスク(Disc)ツールで原点に直径1m、高さ1mの標準的な大きさの筒を作る。これからややこしい計算をすることになるので、初期座標くらいは単純にしておきたい。

ひだの数があまり多いと作業が大変だし、逆に少なすぎるとプリーツスカートとは呼べなくなるので、15個とした。折り返し分を計算に入れて30面の円筒を作る。15という数字は、1周分の360°を割り切れるから。ついでに言うと、UVは幅が100%(LightWaveの内部では1.0 = 1m = 100%は等価)なので、100と360の公約数だと更に計算しやすい。とは言うものの、100と360の公約数は1、2、4、5、10、20の6つしかなく、実質10か20しか選択肢がない。

Skirt000

上面と底面は必要ないので、削除する。大抵要らなくなるので、「上面と底面をふさがない」というオプションがあれば便利なんだけど、些細なことなので文句を言っていても始まらない。

Skirt001

サーフェースがデフォルトのままだと何かと不便なので、次の画像のように「Skirt_Check」というサーフェースを割り当てておく。

Skirt002

とりあえず、スムージングはかけないでおく。

Skirt003

早々にUVマップを作成する。極めて単純な形状のオブジェクトなので、標準機能の新規UVテクスチャ(New UV Map)ツールで円柱状に展開する。今回の目標はUVマップを基準にしてモデリングのほうを工夫することなので、手芸店などで計り売りされている1枚布のようなマップが必要。

Skirt004

なお、プリーツの数が4で割り切れるのであれば、4分の1だけモデリングしてあとは90°ずつ回転させて複製し、境界線をつなぎ合わせればモデリングの労力をほぼ4分の1にできる。ただ、その場合のUVは4箇所とも同じ位置に重複してマッピングされることになるので、UVの扱いに慣れていて混乱しない自信があれば試してみてもいいかもしれない。それから、モデリングを済ませてしまってからUVを展開してももちろんいいんだけど、plg_Make_UV_Editなどによる自動展開は多少なりとも歪むので、UVの調整にそれなりに時間を要する。プリーツを折り畳んでしまってからLightWaveの標準機能によるUV展開は使えないと思っていい。

次の画像のような簾状のマップを作る。

Skirt005

更に、作成したUVにチェック柄のテクスチャを割り当てる。モデリングの説明が思いのほか長くなりそうなので、チェック柄のテクスチャの作り方はまた今度説明する。Adobe Photoshopのスマートオブジェクトはチェック柄の変更や修正に柔軟に対応できて便利なので一番おすすめではあるんだけど、レイヤーが扱えて標準的なレイヤーモードを備えている画像編集ソフトウェアであれば簡単に作れる。

Skirt006

次の画像の状態が基準になる。以後、この模様が歪まないように工夫を凝らしていく。

Skirt007

すべての面の幅が一定ではプリーツスカートにならないので、折り返す部分を短くする。次の画像のようにUVマップのビューでひとつおきにポイントを選択する。三面図の上面からのビューで選択しても同じだけど、チェック柄の連続性を維持するためにはマップの左右端にあたるポイントは間違っても動かせないので、UVマップ内で選択したほうが結果的には手早く済む。

Skirt008

スカートのデザインにもよるんだけど、ひだの表側に見えている部分と折り返し部分の比率は4:1にすることにした。ひだの数は15個で、現在5:5になっている比率を8:2にしたいので、100 \div 15 \times 0.3 = 2 \, [\%]だけUVのU成分をずらす。UV値の変換(Transform UV)ツールで次の画像のとおりに入力する。

Skirt009

「OK」ボタンを押すと、次の画像のようにUVマップが変換される。

Skirt010

UVマップを変換しただけなので、三次元空間の筒の形状には変化がないけど、チェック柄が歪んでいるのが確認できる。

Skirt011

ポイントの選択を解除しないようにして、今度は三次元空間のポイントを360 \div 15 \times 0.3 = 7.2 \, [^\circ]だけ回転させる。正負の方向はUVの歪みを見て判断する。

Skirt012

正しい方向に回転させられれば、テクスチャの見た目上は最初の状態に戻る。これでプリーツスカートを作る準備ができた。チェック柄のパターンは15×15なので縦方向が圧縮されて縦横比が一致していないけど、この段階では横方向の模様が歪んでいなければいい。

Skirt013

アポロニウスの円

ここからが本題。ひとつのひだを4:1に分割したまでは良かったんだけど、その比率を維持しながら折り返すのが結構難しい。比率さえ維持できていればUVを歪ませずに済むので、この際長さは変わってしまってもいい。

ここで久しぶりに数学らしい数学を利用する。

2つの点ABからの距離の比がm:n\; (m \neq n)で一定である点Pが描く軌跡を求めたい。結論から先に言うと、その軌跡Pは円になるんだけど、その円の中心点をCとする。各点はXとYの成分を持っているので、それぞれA(\alpha), B(\beta), C(\gamma)とする。

C点の座標\gammaは、次の式で求める。要は、X座標とY座標をそれぞれ別に同じ式で計算するということ。

     \begin{align*} \gamma=\frac{\displaystyle -n^2\alpha+m^2\beta}{\displaystyle m^2-n^2} \end{align*}

C点の座標が求まればA点とB点との距離は三平方の定理で求められるけど、今は試験問題を解いているわけではないので、ポイントの計測(Measure Points)ツールを使って簡単に求める。

線分ACBCの距離が求まれば、点Cを中心とする円Pの半径rは次の式で求められる。

     \begin{align*} r=\sqrt{{AC} \cdot {BC}} \end{align*}

計算と作図がしやすいように、B点が(X,Z)=(-0.5,0)の位置にあるところを選んだ。これらの式から求めた数値をディスクツールの数値入力ウィンドウに入力する。座標を参照するだけなので高さは0でいい。サイドが36なのは言うまでもなく、10°刻みにするため。

Skirt015

計算が合っていれば4:1の折り目で分割しているポイントを通過する円が描けるはず。実際に作図してみると思ったより半径は小さかった。精度としては4.006:1~3.995:1くらいだから誤差±0.16%前後。

Skirt016

このような円をアポロニウスの円と言う。一般的には次の画像のような図で表される。図はm:n = 3:2になっている。A点とB点が水平に一列になっていたほうが理解しやすいのでこのように描くけど、二次元的に斜めにずれていても円の位置と半径は求められる。図を見るとわかるように、比率が一定になるだけで長さまでは一定にならないことに注意。

Skirt014

なんでこのような式になるのかまでは省略。ネットで「アポロニウスの円」を検索すれば高校の先生が詳しく証明してくれているページがたくさんある。つまり、まったく憶えてはいないけど高校の数学で習ったはずで、センター試験にも出題されるポピュラーな平面幾何学の定理。更に発展させた複素数平面を使った解法は2004年(平成16年)を最後に今の高校では教えていないらしいけど、コンピュータの発達した21世紀に生きる私がすぐには思いつかなかった方法を紀元前の数学者が既に考案していたというのだからまったく皮肉なことだ。

ある平面上で線分APBPの比率を一定にしたまま分割点Pを移動させたいという要求はありそうだけど、Adobe Illustratorのようなベクター画像編集ソフトウェアのツールにも意外と備えられていない。少し調べたところでは、Illustratorでもアポロニウスの円を描いてその円の外縁にスナップするようにパスの制御点を移動させるという方法が採られているようだ。

こんな手間のかかる計算までしなくてもいいのでは、と言われそうだけど、アポロニウスの円は平面上にある2点についてしか通用しないものなので、今使わないと使う機会がなくなる。それに、いつも「適当に、感覚で」と繰り返すのでは何の参考にもならない。それほど厳密でなくても良ければ、ひだの角度を直角と仮定して三角関数の正接(\tan \theta)が0.25になるおおよその位置を求める方法もある(あくまでも仮定なので、実際に操作すると直角にはならないため、無視できないほどの誤差が出る)。

A点とB点の間の分割点を選択し、スナップドラッグ(Snap Drag)ツール(Shift+G)でアポロニウスの円上にある任意の点にスナップさせる。この時、「操作ビューに沿う」にチェックを入れておかないと水平に動いてくれないので注意。

Skirt017

次の画像のように、4:1の比率を維持したまま折り返すことができた。

Skirt018

15個あるひだの数だけアポロニウスの円を作るのはさすがに大変なので、スカート全体を15分の1、つまり24°ずつ回転させて、スナップドラッグを繰り返す。原点を中心にしてアポロニウスの円をスカートの外縁を周回させても同じだけど、円周率が無理数であるために回転は誤差が蓄積しやすいツールなので、変形の基準にするものはできるだけ移動させたくない。

Skirt019

15個のひだを折り返し終わった状態が次の画像。ここでウェスト部分を絞ってしまうと、冒頭でも書いたようにチェック柄が先細りしてしまう。

Skirt020

縦横の模様を合わせる

ここでチェック柄の縦の模様を横の模様に一致させる。ひとつのひだの長さは既にわかっているので、それを15倍すると裾の周囲の長さが求められる。結果、4.4306205mと求まり、スカートの丈の長さは1mなので、裾の周囲に対する割合は22.5702 \dots \, [\%]となる。

上端のポイントを選択し、これをUV値の設定(Set UV Value)ツールでUVのV成分に入力する。

Skirt021

上を下に移動させたほうが計算が楽なのでそうしたけど、下を上に移動させても結果は同じ。

Skirt022

上の画像と見比べてもらえば、チェック柄の縦横比が合っているのがわかると思う。

Skirt023

曲線折りの模擬

次はいよいよ曲線折りを行っていく。まず、ウェストに向かって絞りたい部分を分割する。全体を半分に分割し、上半分をさらに半分に分割する。

この時、必ずバンドソープロ(Band Saw Pro)を使う。まだ単純な形状なのでナイフツールを使ってもいいような気もするし、一見すると似たような動作ではあるけど、ナイフツールはUVを壊してしまうことがある。バンドソープロが優れているところは、どんなに入り組んでいようと、ポリゴンが連続さえしていれば正確に分割できることばかりではなく、UVを破損させることがない点。

Skirt024

次の画像のように3分割した。

Skirt025

分割点をひとつのひだの10%分だけ左にずらしていく。ひとつのひだのUVにおける幅は15分の1、つまり6.666 \dots \, [\%]なので、その10分の1をUV値の変換ウィンドウに入力する。

Skirt026

裾側から順に、8:2(=4:1)7:36:4(=3:2)5:5(=1:1)になっている。

Skirt027

すべての段の折り目について、アポロニウスの円を作図するのがもっとも正確な方法なんだけど、(x_A,y_A)=(0,0)(x_B,y_B)=(1,0)として単純化してみて気が付いたことがある。

分割点がA点とB点からの距離の比が8:2の時、アポロニウスの円の半径は次のように求められる。

     \begin{align*} x_C&=\frac{\displaystyle -2^2x_A+8^2x_B}{\displaystyle 8^2-2^2}=\frac{\displaystyle 16}{\displaystyle 15}\\ r&=\sqrt{x_C \times (x_C - x_B)}=\sqrt{\frac{\displaystyle 16}{\displaystyle 15} \times \left(\frac{\displaystyle 16}{\displaystyle 15}-1\right)}\\ &=\sqrt{\frac{\displaystyle 16}{\displaystyle 15}}=0.2666 \dots \end{align*}

同様に、7:3の場合は次のとおり。

     \begin{align*} x_C&=\frac{\displaystyle -3^2x_A+7^2x_B}{\displaystyle 7^2-3^2}=\frac{\displaystyle 49}{\displaystyle 40}\\ r&=\sqrt{x_C \times (x_C - x_B)}=\sqrt{\frac{\displaystyle 49}{\displaystyle 40} \times \left(\frac{\displaystyle 49}{\displaystyle 40}-1\right)}\\ &=\sqrt{\frac{\displaystyle 441}{\displaystyle 1600}}=0.525 \end{align*}

同、6:4の場合は次のとおり。

     \begin{align*} x_C&=\frac{\displaystyle -4^2x_A+6^2x_B}{\displaystyle 6^2-4^2}=\frac{\displaystyle 9}{\displaystyle 5}\\ r&=\sqrt{x_C \times (x_C - x_B)}=\sqrt{\frac{\displaystyle 9}{\displaystyle 5} \times \left(\frac{\displaystyle 9}{\displaystyle 5}-1\right)}\\ &=\sqrt{\frac{\displaystyle 36}{\displaystyle 25}}=1.2 \end{align*}

つまり、ものすごくざっくりではあるけど、比率が1割変動するたびに半径は約2倍になっている。半径の計算に平方根を使っていることに多分関係がある。円の中心点Cは移動するので単純に2倍では本当はダメなんだけど、同じ作業を60回繰り返すのはちょっと辛いので、ある程度は近似できるということも併記しておく。

なお、5:5の場合はm=nなので、m^2-n^2は0になってしまい、計算できなくなる。分割点がちょうど中間の場合は、点A、点B及び点Pをつなぐ三角形は二等辺三角形になり、点Pの軌跡は直線になる。つまり、アポロニウスの円の半径は無限大になり、円にならないということ。とは言え、計算できないと座標が求められないので、6:4の場合の更に2倍と仮定して求める。

ひだの短いほうのエッジを選択し、ストレッチ(Stretch)ツール(Hキー)の中心点は(X,Z)=(-0.5,0)に固定、下から順に200%、400%、800%まで内側に向かって拡大する。

Skirt028

ウェストの絞り込み

最後に、ウェストに向かって細くなるように各段のエッジを1周分選択して縮小する。冒頭で「ウェストに向かって絞ったらプリーツスカートの意味がない」と言っていたことと矛盾するように感じるかもしれないけど、これまでの操作で上の段に行くほどプリーツの幅は広くなっているので、最後に帳尻合わせのために縮小しなければならない。エッジの長さを固定して折り畳めないならば、一度広げてから縮小して元のスケールに戻すという発想。

裾から数えて2段目の設定。裾のひだの長いほうのエッジが8に対して7なので87.5%と求めた。

Skirt029

Skirt029a

裾から数えて3段目の設定。裾のひだの長いほうのエッジが8に対して6なので75.0%と求めた。

Skirt030

Skirt030a

裾から数えて4段目、つまり上端の設定。裾のひだの長いほうのエッジが8に対して5なので62.5%と求めた。

Skirt031

Skirt031a

拡大してよく見てもらえればわかると思うけど、折り返し部分も含めた裾の長さの総計に対し、上の段の長さは必ずしも一定ではない。プリーツの表側と折り返し部分の比率はほぼ計算どおりなので、折り返しの角度が深すぎるために長くなってしまっている。

基本版完成

以上の操作がすべて完了してできあがったのが次の画像のようなモデル。水車のような形にはなっているけど、とてもではないけどお世辞にもスカートのようには見えない。

Skirt032

ところが、これにサブパッチ(キャトマル)をかけると、不思議なことにかなりそれらしいプリーツスカートに早変わりする。チェック柄もそれほど大きくは歪んでいない。見直す余地はまだあるけど、方向性は間違っていないことが確認できた。

Skirt033

最後に、アポロニウスの円を各段ごとに作成したという証拠物件。後でどうしても正確を期したくなった場合に再利用する。これらの円を使って作業している途中で円の半径が比率の2乗にほぼ比例することに気が付いた。

Skirt034

途中経過

作業のしやすさを重視して単位長(1メートル)の範囲内でモデリングしていたので、実際のモデルに着せるには大きさを全体的に拡大し、ウェストの位置とサイズに合うように調整する。あとは、多少脚がはみ出していても、物理演算でなんとかできる。

ClothFXを次の画像のように設定する。構造維持(Hold Structure)は「100」くらいにしておかないと体のラインに合うように変形してくれないのであまり上げすぎないほうがいい。一方、粘性(Viscosity)と抵抗(Resistance)をそこそこの数値にしておかないと、スカートの形状がなかなか落ち着いてくれないし、わざわざ計算までして比率を揃えたプリーツが不規則に歪むのを抑制できない。

skirt036

ちょっと短かったけど、いつものモデルに着せてみるとこんな感じ。

skirt037

チェック柄を解除して無地にするとこんな感じ。ウェストの余裕を厳しくしすぎたために、スカート右側の一部のプリーツがモデルに貫通してしまっている。上の画像でも同様の現象は起きているんだけど、柄がなくなったので目立ってしまった。

skirt038

関連記事

参考記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―まつ毛編―

最終更新:2016/09/06

今回はまつ毛のモデリング。まつ毛の話は最初のほうの顔のモデリングで少ししたけど、最終的にモデリングで作るのか、テクスチャで描くのかを決めずに仮設のまま放置していた。大幅に順序が前後するけど、瞳をすり鉢状にしてディテールを改善したことだし、まつ毛もモデリングで作ることに決め、ここで詰めていくことにする。

ボーン・ウェイトの記事でも少し触れたけど、ここでウェイト・マップを応用したサーフェースのパラメータ調整にも挑戦してみる。

頭の連続したポリゴンだけを取り出すと、現状は次の画像のようになっている。ちなみに、頬の紫色と首の赤色のスケッチ色は「法線の折り目」検出を使わずに顎のラインの境界線をunReal Xtreme2に確実に認識させるためのもの。

Cilia000

まつ毛のモデリング

まずは仮設のまつ毛の黒いポリゴンをすべて削除し、次の画像のようにまつ毛の裏打ちとして残しておいた眼窩の周囲のポリゴンを選択する。細かい部分なのでサブパッチは一時解除しておいたほうが作業しやすい。対称モード(Shift+Y)にしておくと左目のモデリングと同時に右目のモデリングも同時に進む。後頭部がガタガタなのはこの際気にしないで欲しい。

Cilia001

例によって拡張プラス(Eキー)でポリゴンを追加し、次の画像のように必要な分だけ前に押し出す。具体的には16mmだったけど、顔のスケールが1m以上あるのでほんの1~2%程度の範囲。

Cilia002

まつ毛用のサーフェースは既に作成済みなので、どこからどこまでがまつ毛なのかわかりやすいように仮設のまつ毛に使っていた色を着けておく。

Cilia003

まつ毛を伸ばしたい側面のポリゴンを選択し、拡張プラスと移動ツールで拡張する。この時点でまつ毛の先端は顔から離れることになる。

Cilia004

拡張したポリゴンの上下、前後のポイントを次の画像のように中央の1点に集約させる。スナップドラッグツール(Shift+G)を使ってもいいし、目標のポイントを中心にして拡大縮小ツール(Shift+H)を使って0%まで縮小してもいいし、ポイント情報で座標を直接入力してもいい。ポイントを結合してしまうとまつ毛の先が尖らなくなってしまうので、例によってポイントは結合しない。

ポイントを結合しないと気持ち悪いということであれば、サブパッチの場合はサブパッチ・ウェイト、キャトマルの場合はエッジ・ウェイトを使って尖らせる。ポイントを結合した場合は線ポリゴンが一定数できるので、忘れずに削除しておく。なお、ポイント結合時に限り対称モードを解除しておかないと左右のまつ毛がつながってしまうのでその点だけ注意。髪の毛と異なり、まつ毛の場合は尖らせたい箇所が数えられるほどしかないので、ウェイトを使うのも手ではある。

Cilia005

まつ毛の目尻側の下端が眼窩の外側のポリゴンのエッジにも接続していると目を綺麗に囲んでくれないことが判明したので、ポイントの結合を解除(Ctrl+U)し、眼窩の内側に接続し直した。その際、まつ毛の裏側にあたる顔側のポリゴンがひとつ不足するため、ポリゴン作成(Pキー)で三角形のポリゴンを追加した。

Cilia006

対称モードを適切に使用してモデリングしていれば、左目のまつ毛が完成する頃には右目のまつ毛も概ねできあがっているはず。まつ毛の眼窩の内側への接続し直しとポリゴンの追加だけは左右を個別にやらないといけないので若干効率が悪いけど、テクスチャを使わないことに決めたのだから、そのくらいの手間は惜しんではいけないのかもしれない。

Cilia007

ウェイト・マップを応用した色調調整

これで終わってしまうとただの作業記録になってしまうので(ブログだから別にそれでもいいのかもしれないけど)、ちょっと新しいことをする。

まつ毛の目頭側の下端がくっきりしすぎているので、少しぼかしたい。モデリングで短くすることも考えたんだけど、パッチ単位でしか短くできないので、大幅に短くなってしまう。そこで、ボーン・ウェイトとは無関係のウェイト・マップを活用する。

新規ウェイト(Weight Map)で「Cilia_Weight」という名称のウェイト・マップを追加する。

Cilia008

目頭側のポイントに外側から順に「100%」、「50%」のウェイト値を設定する。

Cilia009

モデラーのプレビューではウェイト・マップの効果を確認できないので、レイアウトでサーフェースの詳細を設定する。色のテクスチャ設定でグラディエント・マップを選択し、次の画像のように50%のキーから100%に向かって肌色になるようにグラデーションを設定する。

Cilia010

かなり微妙ではあるけど、目頭側の色調が若干ぼやけた。もう少し研究が必要そうだけど、やろうとしたことはわかるのではないかと思う。

Cilia011

途中経過

遠景にするとウェイト・マップによる色調調整はほとんどわからなくなってしまうけど、まつ毛が増量されて目力が更に増し、顔の情報量が増えてきた。そうすると、今度は首から下の情報量の少なさが気になってくる。

Cilia012

関連記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―瞳編―

最終更新:2016/09/06

ここでちょっと脱線。これまで瞳にはUVを使わずに平面状にテクスチャ・マップを貼り付けていた。二次元キャラクター風の3DCGモデルを作りたい場合、目は平面か若干凹ませるくらいで造るというのは前の記事でも書いたけど、それを更に進め、瞳をすり鉢状に造型してハイライトと陰影をコントロールすると同時に視線の方向をわかりやすくする。

この手法は本来、設置されている環境の光源によって見え方に影響を受けるフィギュアの造型に関するものなんだけど、3DCGにも応用できるのではないかと思い、以前から試してみたいと思っていた。

概念図

基本的な考え方を簡単な図に示す。次の画像のような平面状の目の場合、斜めから見ても光の加減に関係なく単純に斜めに見えるだけなので、ハイライトや陰影といった視覚情報をテクスチャにあらかじめ描き込んでおく必要がある。また、視線がどこを向いているのかわかりにくい傾向がある。

Pupil018
平面状の目

一方、次の画像のようなすり鉢状の目の場合、斜めから見ると光の加減でハイライトや陰影が生じるため単色のサーフェースでも情報量が多くなる。また、瞳の中心が左右どちらかに圧縮して見えるので視線がどちらへ向いているのか想像しやすい。

Pupil019
すり鉢状の目

なお、念のため前置きしておくけど、本記事は平面状の目に対してテクスチャ・マップを貼る手法を否定するものではない。あくまでも個人的好奇心と実験的要素が大きい。

平面状の目のテクスチャ・マップ

現状、目のモデルは次の画像のようになっている。

Pupil000

斜めにすると次の画像のように見える。これでも問題ないと言えば問題ないんだけど、どの方向から見ても陰影に変化がなく、立体的にも変わり映えがしない。

Pupil001

テクスチャ画像には次の画像を使用しており、元はInkscapeでベクター画像として作成したものをPNG画像としてエクスポートしたもの。目に落ちている影も一応描き込んであるものの、目の形状の都合でほとんど見えていない。

Pupil002

テクスチャ画像は円形だけど、目のサイズに合うようにX軸方向とY軸方向のスケールを調整して貼り付けている。

Pupil020

すり鉢状の目のモデリング

ボックスをメタフォームで細分化して球状に形成していってもいいんだけど、すり鉢状にしていくことを考えるとボールから作ったほうが良さそうだったので、ボールから作る。「サイド」は顔側の形状に合わせて8面にした。「分割数」は少し多めに12とした。多すぎる場合はバンドグル(Band Glue)で整理すればいい。

Pupil003

目は概ねZ軸方向を向いているので、ボールの中心軸をZ軸方向に向ける。

Pupil004

サブパッチを適用し、前に出っ張っているほうをZ軸に反転(Flip It)させて、瞳の前縁くらいまで移動させる。ポリゴンが裏返ってしまうので、法線を反転(Fキー)させる。黒く見える線は背景レイヤー。テクスチャ・マップで作った平面状の目の大体の位置と大きさを把握するためのもの。

Pupil005

瞳の内側にあたるエッジやポイントをループ選択(Select Loop)などで円環状に選択し前後に移動させ、拡大縮小(Size)ツール(Shift+H)で凸部分の大きさを調整しながら起伏を増やして造型していく。瞳の中心を一番暗くしたい場合は光が差し込まないように更にもう一段深くする。すり鉢の角度をあまり深くしすぎて瞳の中心が見えなくなってしまっては本末転倒なので、最大でも45°が限度といったところだろう。

サブパッチがかかっていると鋭角のエッジは想像よりも鈍りやすく段差の高さを調整しづらいので、折り返し箇所が苦しくなってきたら拡張プラス(Eキー)で平面の段を追加する。円形だからバンドグルによるポリゴンの再統合も容易なので、とりあえず一段分割してみてから考えてもいいと思う。

Pupil006

瞳の造型が大体できたら、眼窩の形に合うように白目の部分を形成する。平面状の目を先に作っていたので、それを構成するポイントを利用し、スナップドラッグ(Snap)ツール(Shift+G)で合わせた。スナップドラッグはポイントの結合はしないので、単純に既存のポイントに位置合わせをしたい時に便利。

最初からすり鉢状の目を作る場合は、ポリゴン数が単純に多いので瞳の位置や向き、白目の面積の調整に苦労するかもしれない。瞳に平面状テクスチャを使っていればレイアウトでも位置や大きさの微調整はできるけど、モデリングで瞳を作った場合はレイアウトでの調整は困難になる。

また、中心軸がZ軸方向に完全に平行なすり鉢状では横から見た時に瞳がまったく見えなかったり、不自然に出っ張っているように見えることもあるので、移動ツールで瞳の左右外縁を後ろに押して歪ませたり、瞳の正面方向を維持しつつ横からも見えるように斜体(Shear)ツール([キー)で加工する必要がある。ニュートラルな視線を正面に向けたい場合でも、やや寄り目くらいに調整しておかないとレイアウトに持って行った時に左右の視線がヒラメのように外向きに開いて見える。

何の目安もなく感覚でモデリングするのは結構難しいので、参照用に眼窩の形や向きがわかるような適当なポリゴンを作っておいてそれを背景レイヤーに敷いてモデリングすると少し楽になる。

瞳の幅をストレッチ(Scale)ツール(Hキー)で80%くらいまで縮小し、ハイライトにあたるボックスを追加する。

Pupil007

ハイライトのボックスを選択し、細分化(Subdivide)ツール(Shift+D)の「メタフォーム」で分割する。1回で十分だと思うけど、もっと球状に近くしたい場合は更に分割する。

Pupil008

完成したすり鉢状の目が次の画像。右目は鏡面X(Mirror X)で作るけど、一般的に二次元キャラクターのハイライトは左右対称にならないので、複製後に位置を調整する。鏡面(Mirror)ツール(Shift+V)で右の瞳の正中線に位置するポイントの座標を参照して複製するとX軸方向は比較的簡単に合わせられる。

Pupil009

顔に移す前に頭のボーン・ウェイトを設定する。次の画像のようにビューをウェイトシェイドに変更する。

Pupil010

「マップ」メニューグループのMAP値指定(Set VMAP)で両目全体に100%のウェイト値を設定する。

Pupil011

目を頭のボーンとは独立して制御したい場合は必ずしも頭のボーン・ウェイトでなくてもいいけど、まずはモデリングの出来映えを確認しなければならないのでひとまず頭と一緒に動くものとして扱う。

Pupil012

コピー&ペーストで顔のあるレイヤーに複製する。モデラーでは問題なさそうではあったけどレンダリングしたら想像のとおりにはいかなかったことも考え、目は別のレイヤーに残しておく。

Pupil013

サーフェースの設定

目には外側から順に次のサーフェースを設定している。すべてunReal Xtreme2のEdgeTracerシェーダでグループID「4」を設定し、前髪を貫通するように設定してある。

  • Eye_Ball – 白目
  • Eye_Outline – 白目と瞳の境界部分
  • Eye_Pupil – 瞳の外側のすり鉢部分
  • Eye_Iris – 瞳の外側と中心の境界部分
  • Eye_Pupil_Center – 瞳の中心のすり鉢部分
  • Eye_Highlight – 瞳の右上にある固定ハイライト

サーフェースの設定は好みの部分も大いにあるのであくまでも参考程度に。次の画像は白目とハイライトの部分のサーフェース設定。白目とハイライトには髪の毛などの影を落としたくないので、自己発光度(Luminosity)を「100%」、拡散レベル(Diffuse)を「0%」にしている。

Pupil021

次の画像は瞳の外側の輪のサーフェース設定。光源に対してハイライトを生じさせたいので反射光(Specular)を「100%」にして光沢(Glossiness)を「40%」にしている。

Pupil022

次の画像は瞳の中心部分のサーフェース設定。光源に対してハイライトを生じるとかえって違和感があるのでサーフェース色は同じではあるものの反射光(Specular)を「0%」にしている。

Pupil023

引き続きノンリアリスティック・レンダリングにunReal Xtreme2を利用しているけど、目の中のサーフェースにはCelPainterシェーダを使っていない。正確には、使ってみる前にそこそこ良好なレンダリング出力を得られてしまったので細かいパラメータ調整まで試していない。なお、自己発光度を設定しているサーフェースにCelPainterシェーダを併用すると極端に暗く出力されることがある。

ToonTracerピクセルフィルターでサーフェース境界にエッジを引かせている。瞳のサーフェースの周囲にまったくエッジが引かれていないと瞳だけ浮いて見えてしまう上、瞳が小さく見えてしまうためだ。

Pupil024

また、モデリング手法の都合上、鋭角のエッジができやすいので、瞳の中に途切れ途切れの同心円状のラインが生じるのを防ぐ目的で境界検出に「法線の折り目」検出を使っていない。

Pupil025

レンダリング比較

上の設定でレンダリング出力したものが次の画像。顔が大きくなるようにカメラのズームファクターを変更したので相対的にエッジ・ラインが細くなっているように見えるけど、瞳の中だけに限って見れば余分なエッジは出力されていないし、レイトレースによるハイライトも生じていて瞳の中央にも奥行きが出ている。

細かいことを言えば、球状の固定ハイライトが瞳のすり鉢に接触している部分でやや不自然な歪みを生じているので、ハイライトは瞳から少し浮かせるくらいがちょうどいいのかもしれない。フィギュアで宙に浮いているハイライトというのはありえないけど、3DCGの場合は3Dプリンターでの出力を考慮しない限り許される。

Pupil014
すり鉢状の目

次の画像は比較用に平面状の目にテクスチャを貼ったものをレンダリングしたもの。3DCGの場合は平面状の目でもサーフェースを自己発光させることで光源の影響を受けにくくすることはできるからフィギュアのような問題は起こりにくいし、テクスチャの描き方次第なのではないかと言われてしまうとそれまでなんだけど、瞳の印象は変えられたので当初の目的は達していると思う。

Pupil015
平面状の目

遠景にするとやや見え方が異なる。テクスチャを貼った平面状の目を長いこと見ていて見慣れすぎているのですり鉢状の目の陰影が新鮮に見えるだけかもしれない。もちろん、平面状の目にテクスチャを貼っている例は枚挙に暇がないほどで、十分実用に堪えるものなので、もはや好みの問題と言えるかもしれない。

Pupil016
すり鉢状の目
Pupil017
平面状の目

途中経過

どっちでも大差ないと言われてしまえばそのとおりだけど、瞳のすり鉢状モデリングの効果を確認できただけでも満足。

Pupil016

関連記事

参考記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―続・髪の毛 HairBlade編―

最終更新:2016/09/06

最初に作った髪の毛を破棄し、作り直すつもりで仮にかぶせていた髪の毛を本格的にモデリングし直す。

LightWaveでもZBrushのように曲線で髪の束を管理できる機能があったらいいのになぁ、と思って調べていたら、意外と身近にあった。unReal Xtreme2と同じ開発者によるHairBladeというプラグイン。短冊状のポリゴンから髪の毛を作成することを想定したものだけど、工夫次第ではどんな髪型にも応用できる。

LightWave用としては極めて珍しい常駐型のプラグインで、曲線を編集することでリアルタイムに髪型を確認しながらモデリングできる。LightWave 8.xかLightWave 9.x以降の使用を想定したものだけど、LightWave 2015でも問題なく動作する。HairBladeUtilityプラグインも併せてインストールしておくと作業効率を改善できる。

次の4種類のプラグインは頻繁に使うのでユーザーメニューに登録しておく。HairBladeプラグインの中核であるHairBlade PolygonHandlerはインストールした瞬間からモデラーに常駐して動作を開始する。

  • CurveToBlade
  • Blade Edit
  • Blade Freeze
  • HairBlade Manager

これまでサブパッチで1週間単位の時間をかけても納得のいくものができなかったのに対し、3日ほどでイメージに近いものをモデリングできるようになった。これまでは髪の毛のことを考えると気が重くなっていたけど、これで髪型の異なる複数のキャラクターをモデリングするのも苦にならなくなる。

HairBladeを作成する

曲線を元にしてHairBladeを作成するので、最低1本はドロー(Spline Draw)ツールで曲線を引く必要がある。X軸方向からYZ平面を見る側面ビューで次の画像のようにX軸座標の0に1本目を引くといいだろう。

HairBlade000

ドローで引く曲線が経由するポイントの数は任意だけど、あまり少なくても後の作業がやりづらくなるので、ひとまず6セグメントになるように7ポイントにした。曲線の始点と終点は接続せず、開いたままにしておく。

HairBlade001

始点はどこから始めてもいいけど、HairBladeは始点から順にコントロール・ポイントをカウントし管理するので、髪の毛の根元側を始点と決めたら以後一貫して変えないほうがいい。

作成した曲線はポリゴンの一種として扱われるので、ポリゴン選択モードで次の画像のように曲線を選択し、CurveToBladeを選択する。

HairBlade002

CurveToBladeを選択すると、次の画像のようなHairBladeをどのように作成するかの設定パネルが表示される。「Shape Type」は断面の形状を選択できるけど、まだ何も登録していないので、ひとまず「Procedural」にする。Proceduralにはデフォルトとして最も単純なV字形断面が登録されているけど、積極的に使う機会はないかもしれない。「Width」と「Height」パラメータは「Shape Type」に「Procedural」を選択した場合のみ有効で、特に変更する必要はない。「Start Cap」と「End Cap」は始点と終点の終端にフタをするかどうかの選択。後からでも変更できる。

HairBlade003

「OK」をクリックすると曲線が特殊な線状ポリゴンに置き換えられ、線状ポリゴンを中心軸として次の画像のようなHairBladeが作成される。HairBladeは浮動ポリゴンとも言える未確定のポリゴンで、見えてはいるけど実在はしていない。実在していないので、ワイヤーフレームを表示できないし、サブパッチを適用することもできない。ポリゴンを加工するツール類もほとんど使用できない。

HairBlade004

断面の登録

次に、髪の毛の断面形状を登録する。別のレイヤーなどで断面として登録したいポリゴンを次の画像のように作成し加工する。登録可能なポリゴンはHairBladeの方向とは無関係にXY平面方向のみに限られる。ポリゴンが傾いている場合でも法線方向とは関係なくXY平面に垂直に投影される。

HairBlade005

登録したいポリゴンを選択し、HairBlade Managerを起動すと次の画像の設定パネルが表示される。「Capture Shape」をクリックすると選択中のポリゴンが「Shape List」の最初の行に追加される。「Comment」欄にどんな形を登録したのかわかるように記録しておくと後のBladeEditで困らなくて済む。

各ポイントに付けられている番号はポリゴンの始点と終点をわかりやすくするためにあり、UVの区切りに関係する。この画像の場合だと0番目と7番目がUVの区切りになる。0番目のポイントの位置の都合が悪い場合は右下の「Flip」の「<」と「>」ボタンをクリックすることで循環させることができる。

HairBlade006

なお、エッジが連続していない複数のポリゴンをひとつのShapeに同時に登録して「polygon」スライダーで選択することもできるけど、ややこしくなるので複数登録はしない方針。

HairBladeを編集する

HairBladeを選択した状態でBladeEditを選択すると次の画像のような「Shape」タブで「Shape Type」を先ほど登録した断面に変更できるようになっている。「Shape Type」を変更すると「Procedural」シェイプ用の「Width」と「Height」の各パラメータは無効になる。

HairBlade007

Shape Typeを変更すると次の画像のようにHairBladeの形状も変わる。Shape TypeはBladeEditでいつでも変更できるので、最初はあまり深く考える必要はない。

HairBlade008

BladeEditで「Point」タブを選択すると、次の画像のように各コントロール・ポイントの各種パラメータを編集できる。始点から遠いほどPoint番号は大きくなる。Shapeで登録した断面のXY方向が表示されるので、「+X Scale」、「-X Scale」、「+Y Scale」、「-Y Scale」の各パラメータで断面の大きさを調整できる。十字に出ているコントロール・ポイントを掴んでドラッグすることでも変更できるけど、最初からあまり細かく設定してしまうと後の調整に手間がかかるので、大雑把でいい。

HairBlade009

次の画像のように毛先の断面のスケールを「0%」、以降を「12.5%」、「25%」、「50%」、「75%」といったようにあらかじめ段階的に設定しておき、コントロール・ポイント間の間隔を広げたり縮めたりすることで髪の途中の太さの調整を行うようにするとBladeEditを逐一起動しなくて済む。髪の束の数が増えてくるとコントロール・ポイントの編集の手間が馬鹿にならなくなってくるので、自分なりのテンプレートを決めておいて例外が発生した場合のみコントロール・ポイントを編集するようにする。

HairBlade010

HairBladeの向きは始点とその次のコントロール・ポイントの2点で結ばれる方向のベクトルで決定されるので、髪型によっては毛先に進むほど意図する方向とはよじれてきてしまうことがある。そういった場合は、次の画像のBladeEditの「Global」タブで「Rotate」や「Twist」にバンク角を指定し、HairBlade全体を傾かせることで改善できることがある。コントロール・ポイント単位でバンク角を指定することもできるけど、管理が難しいのでHairBladeの特性に慣れてからにしたほうがいいだろう。

HairBlade035

断面の変更

もし、編集中にHairBladeの断面形状が思わしくなくて髪型の調整に限界を感じてきたら、再度HairBlade Managerを起動し、「Replace Shape」でいつでも断面形状を置き換えることができる。

次の画像は髪の束の背面のボリューム不足が気になってきたので、背面側のポイントを更に後ろ(-Y方向)に移動した例。

HairBlade011

サブパッチによるモデリングで一番問題だったのは、髪の毛のボリューム不足に気付いた場合や、断面形状を維持できなくなった場合に大変な労力をかけて修正しなければならなかったことなんだけど、HairBlade Managerを使うとどんなにたくさんのHairBladeが存在していても一括で断面形状を変更できる。このプラグインで最も気に入っている点のひとつ。

前髪の形成

HairBladeの断面の設定が済んだら、最初に作成したHairBladeをポリゴン選択モードで選択した上でCtrl+Cでコピーし、Ctrl+Vで同じ位置に貼り付けて移動させ、髪の束を増やしつつ髪型を整えていく。複製(Clone)ツール(Cキー)や鏡面複製(Mirror X/Y/Z)ツールなどの複製系のツールを使うと線状ポリゴンの始点と終点がつながってしまうので、少々面倒でもコピー&ペーストで複製していく。

次の画像のように中心軸のみが表示されているので髪の流れや密度を直感的に把握、調整しやすく、ストレスが少ない。FiberFXにおける髪の束の中心軸となるガイドとして使用するストランドの編集によく似ていて、実に使いやすい。FiberFXは一種のシミュレーションなのでパラメータを上手に設定したとしても実用的な髪の束の太さには限界があるのに対し、HairBladeはポリゴンなので太さに事実上限度がない。

HairBlade012

HairBlade DisplayLevelで浮動ポリゴンを三面図に表示させることもできるけど、サブパッチでモデリングしている時のように表示が見づらくなりやすいので、髪型の確認はパースビューで行うようにし、線状ポリゴンのみで編集している。

HairBladeの編集はBladeEditで行うのが基本なんだけど、パラメータが多くコントロール・ポイントの選択にも若干手間がかかる上、一度にひとつのHairBladeしか編集できないので、ポイント選択モードの編集ツールを併用すると複数のHairBladeを一度に編集でき、大幅に省力化できる。

具体的には、ポイント選択モードで移動(Move)ツール(Tキー)、ストレッチ(Stretch)ツール(Hキー)、軸でポイント整列(Align Points to Axis)ツールなどは通常どおり使える。ある程度ポイントをまとめて斜体(Shear)ツール([キー)も使えるので、毛先を斜めに揃えたい場合や場所によってある程度不規則性を持たせたい時に活躍する。他にもポイントを対象として作用するツールは使える可能性が高い。

もし、途中でコントロール・ポイントが足りなくなったと感じた時はポイント追加(Add Points/Insert Vertex)ツールで好きなところに増やすことができる。追加したコントロール・ポイントのパラメータは前後のコントロール・ポイントから自動的に求められる。

HairBlade013

ただし、HairBladeの線状ポリゴンはポリゴンであって厳密にはポリゴンではないので、ナイフツールで複数のHairBladeを一括で分割したりデバイドでエッジを均等に分割することはできない。その他、エッジやポリゴンを対象とするツール群はほとんど使えないと考えていい。

選択拡張ツール(Shift+])も線状ポリゴンに属するすべてのポイントが選択されてしまうので、連続面の選択ツール(]キー)と同じ動作になる。いくつか制限はあるものの、ポリゴンを曲線で管理できる便利さを知ってしまうとその程度の制限は気にならなくなってくる。

後ろ髪の形成

よほど個性的な髪型でない限り、後ろ髪にも前髪と同じ方法を使っているとHairBladeの向き(ベクトル)の調整に苦しむことになるので、ボール状のプリミティブを下地にして等角度方向に広がる放射状の曲線を量産して省力化する。

頭の1割から2割増しくらいの直径の適当な分割数のボールを作成し、底面の三角ポリゴンが集中している箇所は削除する。また、次の画像のようにデフォルトとは異なるスケッチ色を設定しておく。

HairBlade014

ボールの頂上部分のポイントとその下のセグメントにあたるポイントを選択し、ループ選択(Select Loop)、開いた曲線の作成(Make Open Curve)を連続で選択し、ボールを囲むような曲線を作成していく。作成された曲線は次の画像のようにデフォルトのスケッチ色で表示されるので、曲線を作成したところとまだ作成していないところを視覚的に識別しやすくなる。

HairBlade015

前にも書いたけど、ループ選択にはショートカットキーが割り当てられていないので、「˜」(Shift+^)に割り当てている(日本語キーボードには書いてないけど、BackSpaceキーの2つ隣り)。開いた曲線の作成をそのすぐ下の「`(グラーブアクセント記号)」(Shift+@)キーに割り当て、隣り合うキーにショートカットを割り当てることで、Shiftキーを押しながら連続で素早く曲線を作成できるようにしている。

作成できたら、次の画像のようにポリゴン状態ウィンドウ(Wキー)で「曲線」のみを選択する。

HairBlade016

作成した曲線をすべて選択した状態が次の画像。スクリーンショットではわかりにくいけど、曲線の始点を示す緑色の小さい円が頂上に表示されている。ループ選択を使用していても、ポイントが下から順に選択されてしまうことがあるので、始点と終点が予想と逆転していないかここで確認しておく。逆転していたら、ポリゴンの反転(Flip)ツール(Fキー)で始点と終点を入れ換えることができる。

HairBlade017

なお、邪魔なら下地にしたボールは削除してしまっても構わない。

選択した曲線をコピーし、HairBladeで前髪を作っているレイヤーにペーストする。

HairBlade018

新しく後ろ髪としてペーストした曲線を選択し、CurveToBladeでHairBlade化する。

HairBlade019

いずれかひとつのHairBladeのコントロール・ポイントのスケールなどを設定し、HairBladeUtilityプラグインのBladeKnotsCopyでHairBlade1本分のコントロール・ポイントの設定を丸ごとコピーする。これで他のHairBladeにBladeKnotsPasteでペーストできる。BladeKnotsPasteにはEdge、Mirror、Repeat、Resetの4種類があるけど、1本分丸ごとコピーする場合はどれでもいい。BladeKnotsPasteの違いを詳しく知りたい場合は公式マニュアルを参照のこと。基本的な考え方はタイル状テクスチャ・マップの繰り返し設定と同じ。

HairBlade020

HairBladeの複製

HairBladeの複製は基本的にコピー&ペーストで行うと上で書いたけど、主に省力化のためにどうしても左右対称に一括で複製したい場合がある。注意点に気をつければ一括複製はできる。

例えば、後ろ髪の内側に頭髪全体のボリューム不足を補うためのもうひとつの後ろ髪レイヤーを作りたいとする。右半分までは自力で作ったものの、左半分も手作業で作っていくのは負担になる。それほど芸術的なモデリングを必要とするところではないので、できれば右側を左側に複製して省力化したい。

HairBlade021

右側のHairBladeをすべて選択し、コピー(Ctrl+C)して同じ場所にペースト(Ctrl+V)する。そのまま選択を解除せずに反転(Flip It)ツールを使用してX軸を中心に反転する。ポリゴンの裏表を反転するツールとは異なるので注意。

HairBlade022

反転した直後の状態が次の画像。HairBladeの先端と根元の間に右側とは異なる浮動ポリゴンができてしまっている。

HairBlade023

三面図で見ると、次の画像のように始点と終点が閉じてしまっているのがわかる。これがHairBladeに不規則な浮動ポリゴンができてしまっている原因。反転ツールに限らないんだけど、複製系のツールは複製後に曲線の始点と終点を閉じようとするものが多い。

HairBlade024

ただ、内部的にはバッチコマンドのように始点と終点を閉じるステップが独立していることがほとんどなので、アンドゥ(Ctrl+Z)で1ステップだけ戻すと始点と終点が開き、次の画像のように不規則な浮動ポリゴンは表示されなくなる。

HairBlade025

三面図を見ると次の画像のように始点と終点を閉じていた線分が取り除かれているのが確認できる。これで複製ができる。ここでは後ろ髪を例にとったけど、もちろん前髪でも左右対称にしたい箇所がある場合はこの方法で複製できる。

HairBlade026

HairBladeのポリゴン化

HairBladeを編集して次の画像のように所望の髪型に仕上がったら、浮動ポリゴンを実在のポリゴンとして確定する。

HairBlade027

BladeFreezeを選択すると同一レイヤーに次の画像のように確定したポリゴンが生成される。HairBladeはそのまま残っているので、確定したポリゴンのみを選んで別のレイヤーに移すことになる。

HairBlade028

HairBladeの浮動ポリゴンには直接色を着けることはできないんだけど、HairBladeの線状ポリゴンにはマテリアルを設定できるので、髪の毛に使うサーフェースが既に決まっている場合はあらかじめそのサーフェースを色・質感(Change Surface)(Qキー)で設定すると浮動ポリゴンにも間接的に着色できる他、BladeFreezeで確定したポリゴンにもそのサーフェースが自動的に引き継がれて設定される。

HairBladeの線状ポリゴンにはスケッチ色を指定することもできるけど、確定したポリゴンにはそのスケッチ色は引き継がれず、デフォルトのスケッチ色が強制的に設定される。これを逆に利用し、HairBladeと確定したポリゴンを分離する。ポリゴン状態ウィンドウで「面」だけを選択しても場合によってはHairBladeがくっついてきてしまうこともあるので、スケッチ色で区別したほうが確実。

HairBlade029

必要に応じて次の画像のようにサブパッチを適用する。断面形状にもよるけど、総じてサブパッチを適用すると髪の束の太さが痩せる傾向にあるので、髪の束の間に隙間があいてしまうなど不都合が発生した場合は必要なHairBladeをすべて選択し、BladeEditで「Global」タブの「W Scale」と「H Scale」を調整するか、HairBladeを編集し直す。

HairBlade030

問題なさそうなら、次の画像のようにビューをウェイトシェイドに変更し、頭に相当するボーン・ウェイトを設定する。

HairBlade031

「マップ」メニューグループにあるMAP値指定(Set VMAP)ツールを選択し、ここでは頭のボーンである「Head」を指定し、髪の毛全体に100%のウェイト値を与える。

HairBlade032

100%に設定すると次の画像のように全体がオレンジ色に染まる。どこのボーン・ウェイトにも属していないポイントがあるとレイアウトで表示が大幅に崩れるので、とにかくなんでもいいのでウェイト値を指定しておく。

HairBlade033

ここまでできたら、体のモデルやボーンがあるレイヤーに髪の毛をコピーし、オブジェクトを保存した後、レイアウトでレンダリングする。

ハネ毛やアホ毛

今回の例では基本に忠実に菱形の断面を利用したけど、俗に「ハネ毛」とか「アホ毛」と呼ばれる二次元イラストや漫画に特有の細長い髪の毛を再現したい場合は円形の断面を使用したほうがいい場合もある。HairBlade Managerを使えば必要に応じていくつでも断面形状を登録できるので、目的に応じて使い分けるといいだろう。

HairBlade034

ただし、これらの断面形状はオブジェクトのデータとしては一緒に保存されないし、LightWaveのバージョンをアップグレードした場合にも引き継がれないので、「Export All Shape」と「Import All Shape」を使ってデータを移行するか、「Capture Shape」で再登録する必要がある。また、使用中の断面形状を単純に削除すると、リストの行がひとつずつ繰り上がるので、BladeEditで断面形状を再度設定し直す手間が生じるので注意が必要。

途中経過

バナナ状の髪の束を並べてモデリングしていた時には試行錯誤を繰り返しながらあんなに苦労してもまったくイメージ通りのものが作れなかったし、作れるような気さえしていなかったのに、HairBladeを使ったらこうもあっさりとできてしまって自分でも驚いている。やはり髪の毛は曲線で直感的に管理できるのが大事だと痛感した。

HairBlade036

応用

HairBladeはその名のとおり髪の毛のモデリングを想定しているものだけど、断面形状の維持に着目して設計されているので、髪の毛以外の棒状や筒状のものを効率よくモデリングするのにも適している。

例えば、断面形状を維持しながら刀身に絶妙な弧を描かせたい日本刀をはじめとする曲刀のモデリングが典型だろう。直刀でも断面形状が複雑なファンタジックなものをモデリングするのにも利用できるだろうし、曲がりくねった杖のようなものをモデリングすることもできるだろう。

メカのモデリングでも、何らかのパイプを特定のポイントを経由して立体的に配管した後、2点間を接続したい場合にも活躍しそうだ。パイプの配管というのは標準ツールだけでは意外と手間取る。

関連記事

参考記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―ClothFX編―

最終更新:2016/09/06

現状、スカートは次の画像のようになっている。とりあえず足がスカートを突き抜けたりはしていないけど、足のボーン・ウェイトにスカートを巻き込んで無理矢理変形させているだけなので、不自然さが拭えない。

ClothFX000

解決策はいくつかある。

  1. スカートのみを別のオブジェクトとして分離してポーズに合わせて固定モデリングする方法。
  2. スカート専用のボーンを新たに組み込み、ボーン・ウェイトを適用して変形させる方法。
  3. スカートに物理演算を適用してポーズをとった後の体のラインに半自動的に沿わせる方法。

1.は服のしわなどを緻密に作り込みたい場合に向いているけど、主にフィギュア向けの方法なので、ここでは使わない。2.はローポリゴン・モデルでよく使われている方法だけど、ここでまたボーン・ウェイトを使うのも芸がない。そこで、3.の物理演算を利用してなんとかしてみる。

スカート用オブジェクトの用意

現状では次の画像のように、スカートは体や他の服装と一緒のレイヤーにひとつのオブジェクトとしてまとめられている。

ClothFX001

スカートのみを選択して切り取り、別のレイヤーに保管しておく。仮にもボーン・ウェイトが既に設定してあるものなので、単純に削除してしまうと後でやっぱり必要になったという時にウェイトの設定をやり直さないといけなくなる。

ClothFX002

体をモデリングした時の初期段階のまま放置してあって下着などをちゃんと作ってないので、とりあえず裸に見えないようにサーフェース色を変えてある。直接見えないところは後回しにしていたわけだけど、いい加減このへんの作り込みもしないといけない段階になってきた。

保管したスカートを元にして物理演算用のスカートを加工する。オブジェクトに厚みがあると物理演算の際に色々と大変なので、ウェスト部分を除いて裏地を削除し、両面の1枚ポリゴンにする。両面になっていないと足にスカートの影が落ちないので注意。サブパッチがかかっているので、レイアウトではもっと多ポリゴンのオブジェクトとして扱われる。このスカートのオブジェクトを「ハイポリゴン・スカート」とする。

ClothFX003

ウェスト部分のポイントを選択し、ポイントセットで選択セットを登録しておく。

ClothFX004

セット名は「Skirt_Waist」とした。この選択セットは物理演算の時に動かない箇所を指定するのに用いる。

ClothFX005

更に上で加工したハイポリゴン・スカートを複製してまったく同じ形のスカートを別のレイヤーに作る。この際、必ずサブパッチを解除しておく。これを「ローポリゴン・スカート」とする。

ClothFX006

今回は簡単な形状のスカートだったので、単にサブパッチを解除しただけのものをローポリゴン・スカートとしたけど、大きさが同じであれば、細部は異なっていても問題ない。

ポイントセットを作った後で複製していれば、ローポリゴン・スカートにも同様の選択セットができている。一応、念のため「Skirt_Waist」選択セットで選択できるか確認しておく。

ClothFX007

以上でモデラーでのオブジェクトの用意は終了。ファイルを保存する。

ClothFX単体の設定

まずはハイポリゴン・スカート単体でClothFXを試してみる。レイアウトに移り、0フレームでハイポリゴン・スカートを呼び出す。モーションオプションで指定する親アイテムはRootボーンがいいだろう。Rootボーンの位置がリグの腰コントロールの設定によって原点になっていない場合は、Rootボーンの座標を参考にして体の位置に合うようにスカートの位置を決める。大抵はZ軸座標を足すか引くかすれば体の位置と一致させられるはず。

ClothFX008

次に、体のオブジェクトに衝突判定用の物理演算を追加する。体のアイテムプロパティから「物理演算」タブを選択し、「Collision」を追加する。パラメータは次の画像のとおり。「Radius/Level」をあまり小さくしすぎると衝突判定が起こらずに貫通してしまうこともあるので、適度にマージンを確保しておく。「Bounce/Bind power」は「100%」が基準。スカートが足に当たってゴムボールのように跳ね返るわけではないけど、あまり小さいと足がスカートを貫通しやすくなる。

ClothFX009

ハイポリゴン・スカートにも物理演算を設定する。ここでClothFXを追加する。

「Fix」にスカートの加工で作成したポイントセットを指定する。「Skirt_Waist」ポイントセットがドロップダウンメニューから選択できるようになっているはず。
「Weight」は単純に重量のことでウェイト・マップとは直接関係ない。1.0がデフォルトだけど、衣服に使うような軽い布の場合は「0.1」~「0.3」程度の低めがいいようだ。
「Viscosity」は粘性、「Resistance」は抵抗のことでこれらの値を大きくすると布の変形を遅らせることができるようになるけど、1.0より小さい値にしても変形が早まるわけではなく、むしろ変形が逆流するようになるので「1.0」が最低値と思ったほうがいいようだ。
「Hold Structure」は構造を維持しようとする力、「Sub Structure」は構造を分散させようとする力。説明が難しいけど、「Sub Structure」は「Hold Structure」の範囲内で規則性を乱すといった感じか。「Hold Structure」が高すぎると伸縮性がなくなるので足とスカートの衝突判定に関係なく足がスカートの裾から出てしまいやすくなる。

ClothFX010

各パラメータには「Fx」というドロップダウンメニューがあり、それぞれオブジェクトに設定したウェイト・マップを利用して場所によって強度を調整できるようになっているけど、今回は省略。ClothFXの挙動はただでさえ難解なので、最初は基本設定だけで試してみることをおすすめする。

「Collision」タブはスカート側の衝突判定設定。「Collision Detect」を「<all>」に設定し、「Collision Offset」もやはり適度に確保しておく。「Bound」は「100%」でなくてもいいけど、「0%」にしてもそれほど大きくは変わらない。

ClothFX011

「Advanced」タブはデフォルトのままで変更しない。

ClothFX012

「Etc」タブもデフォルトのままで変更しない。重力の設定は厳密には必要なんだろうけど、ClothFXの利用目的がスカートの型を維持させたいくらいのものであれば特に設定する必要はない。

ClothFX013

最後にハイポリゴン・スカートの「ジオメトリ」タブを選択し、「サブディビジョン手順」を「一番終り」に設定し、「表示サブパッチレベル」が「3」、「レンダーサブパッチ」レベルが「3.0」になっていることを確認する。

ClothFX015

再び「物理演算」タブに戻り、「演算」ボタンをクリックして演算を開始する。サブディビジョンをする前のスカートに対して演算するため、それほど長くはかからないはず。もし、演算に時間がかかりすぎて待ちきれないようなら次節の「FX_MetaLinkを使って演算時間を短縮する」を試す。

演算が終わったら、「Save Motion」で必ずモーションをファイルに保存しておく。これを忘れると、せっかく演算した結果が消えてしまい、フレームをレンダリングしても演算結果が反映されない。

ClothFX014

演算結果を反映したスカートが次の画像。これで特に問題ないならばシーンを保存する。たまたま良好な結果が得られてしまったけど、これでいつもうまくいくとは限らない。

ClothFX016
サブディビジョン手順:一番終り、表示サブパッチレベル:3、レンダーサブパッチレベル:3.0

単体ClothFXの試行

試しに、次の画像のようにハイポリゴン・スカートの「サブディビジョン手順」を「一番初め」に設定して演算してみる。演算時間が非常に長くかかるようになる。

ClothFX017

演算を中断し、大体同じくらいのフレームをレンダリングしてみたのが次の画像。サブディビジョン手順を「一番終り」にしたものと比較すると結果の差は一目瞭然。サブディビジョンが最初に実行されてしまうので、エッジが細かくなることで布として変形できる箇所が多くなり、くしゃくしゃな結果になる。

ClothFX018
サブディビジョン手順:一番初め、表示サブパッチレベル:3、レンダーサブパッチレベル:3.0

物理演算としては正しいのかもしれないけど、いきなり細かい計算が始まるので極端に時間がかかる上に出力も良好でないとなるとサブディビジョンを最初にするのは賢明ではないということになる。

演算時間を短くするには、演算対象のポリゴンの数を減らせばいいんだけど、表示サブパッチレベルとレンダーサブパッチレベルが一致していないと問題が起こることがある。

表示サブパッチレベルを「1」、レンダーサブパッチレベルを「3.0」とし、サブディビジョン手順を「一番初め」にしてみる。

ClothFX019

演算そのものは速くなるし、レイアウトの表示では問題ないように見えるけど、レンダリングすると次の画像のようにスカートの表面がめくれたり逆立ってしまったように大きく乱れてしまい、とてもではないけど見るに堪えないものになってしまう。

ClothFX020
サブディビジョン手順:一番初め、表示サブパッチレベル:1、レンダーサブパッチレベル:3.0

表示サブパッチレベルとレンダーサブパッチレベルは同様で、サブディビジョン手順を「一番終り」にしてみる。

ClothFX021

演算速度は変わらず、次の画像のように表面の処理そのものは改善した。もっとも、だいぶ前に膨らんでしまっていて良好なレンダリング出力とまでは言えない。

ClothFX022
サブディビジョン手順:一番終り、表示サブパッチレベル:1、レンダーサブパッチレベル:3.0

試した範囲ではたまたま許容できるくらいの結果になったけど、表示サブパッチレベルとレンダーサブパッチレベルが一致していないとレンダリングの時に警告が出て演算結果が出力に反映されないことがある。

FX_MetaLinkを使って演算時間を短縮する

ハイポリゴン・スカートだけでは良好な結果が得られなかった場合や、演算時間が許容できないほど長すぎる場合は、ローポリゴン・スカートを併用することでレンダリング出力の改善と演算時間の短縮の両方を図ることができる。この方法は、ClothFXが実装されてさえいればLightWaveのバージョンに関係なく良好な結果を得られる可能性が高い。

まず、ローポリゴン・スカートを呼び出し、ハイポリゴン・スカートと同様にRootボーンを親アイテムに指定する。

ClothFX023

ローポリゴン・スカートのアイテムプロパティを開き、「ジオメトリ」タブを次の画像のように設定する。「SubPatches」の数値が「0」である点に注目してほしい。サブパッチがひとつもないので表示サブパッチレベルとレンダーサブパッチレベルは意味がないように思えるかもしれないけど、ハイポリゴン・スカートのサブパッチレベルと同じかそれ以上のレベルであることが重要。サブディビジョン手順は「一番初め」にしておく。

ClothFX024

ローポリゴン・スカートにサブパッチが適用されていると演算時間は短縮されないし、サブパッチレベルがハイポリゴン・スカートより低いと、次の画像のような陥没が生じることがある。ハイポリゴン・スカートのサブディビジョン手順を「一番終り」に設定しておけば回避できるけど、サブディビジョン手順の初期設定は「一番初め」なので、うっかりするとこのようなミスをしやすい。

ClothFX033
(ローポリゴン・スカート)サブディビジョン手順:一番初め、表示サブパッチレベル:1、レンダーサブパッチレベル:1.0(ハイポリゴン・スカート)サブディビジョン手順:一番初め、表示サブパッチレベル:3、レンダーサブパッチレベル:3.0

ローポリゴン・スカートにClothFXを設定する。ハイポリゴン・スカートにClothFXを設定済みならそれを「File」タブからコピーしてペーストすると簡単に転写できる。「Basic」タブ以外の設定は省略するけど、上で書いた設定と同じ。

ClothFX025

ローポリゴン・スカートは物理演算のためだけに使うので、レンダリング出力に映らないようにScene Editorで「A」欄のチェックを外し、ローポリゴン・スカートそのものをレンダリングの演算対象外にする。

あるいは、次の画像のようにアイテムプロパティの「レンダリング」タブで「オブジェクトディゾルブ」を「100%」、「光線無効」、「カメラ無効」、「ラジオシティ無効」、「フォグ無効」にしておく。光線とカメラが無効なのでそもそも影は生じないから影の設定は任意。

ClothFX026

ハイポリゴン・スカートのモーションオプションで親アイテムをローポリゴン・スカートに指定する。「その場でペアレント(Parent in Place)」がオンになっていれば特に移動させる必要はないはず。

ClothFX027

ハイポリゴン・スカートのアイテムプロパティを開き、「変形」タブで変位プラグインに「FX_MetaLink」を追加する。「プロパティ」かFX_MetaLinkをダブルクリックして「Smoothing」にチェックが入っていれば問題ない。

ClothFX028

FX_MetaLinkは、親に指定したアイテムの変位情報を子アイテムに移し替えるプラグイン。LightWaveには結果の厳格さを求めない代わりに物理演算を簡素化する方法がいくつか用意されている。

ハイポリゴン・スカートの物理演算はすべて削除しておく。

ClothFX029

続けて「現在のオブジェクト」からローポリゴン・スカートを選択し、ClothFXを演算させる。演算が終わったら、「Save Motion」でモーションを必ずファイルに保存しておく。

ClothFX030

ローポリゴン・スカートにはサブパッチが適用されていないため、サブパッチレベルの設定は3ではあるけど実質レベル0と同じなので演算時間を短縮でき、かつハイポリゴン・スカートに適用されたサブパッチにより良好なレンダリング出力を得られる。

ClothFX031
(ローポリゴン・スカート)サブディビジョン手順:一番初め、表示サブパッチレベル:3、レンダーサブパッチレベル:3.0(ハイポリゴン・スカート)サブディビジョン手順:一番終り、表示サブパッチレベル:3、レンダーサブパッチレベル:3.0

途中経過

今回は結構微妙な差なので、比較画像。左がボーン・ウェイトのみ。右がスカートにClothFX使用。歪んでいた裾がだいぶすっきりした。ミニスカートなので特に大きな問題は起きなかったけど、ロングスカートだとどうなるだろうか。

ClothFX032

関連記事

参考記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―服装編3―

最終更新:2016/09/06

基礎的なモデリングももう大詰め。最後にまったく手をつけていなかった靴を作る。

足の調整

まず、どんな靴を履かせたいのか検討し、それに合わせて足の形状を調整する。最初は次の画像のように爪先から踵までぴったり地面に着いている。当初はヒールの高い靴のことを想定していなかったため。

Clothes100

そこで、爪先側のポイントを選択して下(Y軸方向のマイナス方向)に変形させる。移動量は、仮に靴のサイズを24cmとした場合、7cmのヒールがある靴だと大体足の大きさの3分の1くらいが目安。単純に爪先を下げるだけだと足全体のサイズが大きくなってしまうので、少し後ろに下げて足の大きさが不自然に伸びてしまわないように調整する。

Clothes101

靴の基礎を作る

ローポリゴン・モデルでは靴を脱がないことを前提にして足を直接加工して靴を作ってしまうという方法が一般的。ウェイト・マップの設定が簡略化できるなどの利点もあるけど、靴の種類を変えたい場合などに後の応用がきかないので、あえて別パーツで作る。

まず、片方の足首から下の部分をコピーして別のレイヤーに貼り付ける。デフォルトでいいので靴用のサーフェースを設定しておくとわかりやすいだろう。他の服装と同じようにThickenツールで厚みをつけてもいいんだけど、靴は入口がひとつしかなく出口もなくて比較的簡単なので、別の方法を使ってみる。

先に裏地を作る。もうひとつ同じものを別のレイヤーに貼り付け、全体のポリゴンを反転(Fキー)させる。

Clothes103

足首から下の部分は必要ないので削除する。服の裏地は方向によっては見えることもあるかもしれないけど、どんな方向から見ても靴の中まではさすがに見えない。モデリングを簡単にするためにもポリゴンを減らしておく。

Clothes104

最初にコピーしたレイヤーに戻り、靴の外形を形成する。ここではスムース拡大縮小ツールを使用する。ここでは20mm拡大している。普通の拡大縮小ツールと異なり、法線方向を参照して拡大縮小してくれるので、足の形を単純に大きくしただけのゴム長靴のような形にはならない。

Clothes102

裏地を作ったレイヤーを切り取って外形のレイヤーに貼り付ける。次の画像のように表地と裏地の間に隙間ができているので、エッジを1組ずつ選択してブリッジで接続していく。いっぺんにブリッジできれば便利なんだけど、想定外のところとブリッジしてしまうことがあるので、八角形くらいならひとつずつ確実に処理していく。

Clothes105

ブリッジが終わってサブパッチを適用すると次の画像のようになる。まだ靴下のような形だけど、これが靴の基礎になる。

Clothes106

爪先と足の甲を作る

さすがに八角形のままではポリゴンが少なくて加工しにくいので、正中線を挟んで右左のポリゴンをバンドソープロで分割する。まず左側を分割。

Clothes107

右側も同様にバンドソープロで分割する。

Clothes108

靴らしい形に整えていくために、爪先の部分のポリゴンと足の甲にあたる部分を次の画像のように選択する。

Clothes109

拡張プラス(Eキー)でポリゴンを増やし、更にスムース拡大縮小ツールで更に20mm拡大する。

Clothes110

靴底が丸くなっていて陸上競技用のランニングシューズのようになっているので、更にエッジを追加して靴底の角を立たせると同時に装飾をはっきりさせる。普通は拡張プラスを使っていくんだけど、いつも同じでは芸がないので、ここでは実験的にラウンダー(Rounder)を使ってみる。サブパッチを解除し、次の画像のようにエッジを選択する。

Clothes111

ラウンダーの設定は次の画像のとおり。「Rounding Polygons」を「1」に、「Inset distance」を「10mm」にしてある。

Clothes112

ラウンダーを実行すると次の画像のようになる。うまく外縁部のエッジにだけラウンダーがかかった。サブパッチを適用してみると爪先の靴底がかなり平らになり、足の甲の装飾部分も少し際立った。

Clothes113

踵とヒールを作る

次に、踵の部分のポリゴンを選択し、拡張プラスとスムース拡大縮小ツールで踵の厚みを増す。

Clothes114

そのままの状態で選択をエッジに(Sel Edges)を使用してエッジ選択モードに切り替える。

Clothes115

選択しているエッジを減らし、次の画像のように踵の上と下の部分のエッジだけ選択しておく。

Clothes116

ここで更にラウンダーを実行する。設定は爪先と同じ。踵のほうでは上下のエッジが縦に接続されてしまい、角を丸めるためのポリゴンが追加されてしまった。

Clothes117

ラウンダーの動作としてはまったく問題ないんだけど角を丸めるポリゴンは必要ないので、ポイントの統合ツール(Ctrl+W)か平均統合を使って間を詰める。すると、線ポリゴンが多数できるので、Wキーを押してポリゴン状態ウィンドウから「2頂点」のものだけを次の画像のように選択して削除する。

Clothes118

ラウンダーを使用したら、サブパッチ(正確にはキャトマル)がかかっていない部分ができてしまった。

Clothes119

「面」という行に表示されているポリゴン数がサブパッチがかかっていないところなので、それだけを選択して、Tabキーを押してサブパッチを適用する。

Clothes120

サブパッチがかかっていないポリゴンだけを選択した状態が次の画像。投げ縄選択なんかでも選択できそうだけど、サブパッチがかかっているところとかかっていないところが入り組んでいると問題ないところまで更にトグルしてしまうので、ポリゴン状態ウィンドウを使ったほうが確実。

Clothes121

もちろん、ラウンダーを使用しなければこういった事態は起きなかったかもしれないので、サブパッチ・モデリングにラウンダーを持ち込むのは少々無理があるようだ。

このあたりで軸でポイント整列(Align Points to Axis)ツールを使って踵周囲のポイントのY軸を揃えておいたほうがいいと思う。先走って先に進めてしまったので、後で整列させることになってしまったけど、加工を始める前に整列させておいたほうが賢明。

次にヒール部分を作る。踵の底面のポリゴンを選択し、拡張プラスと移動ツールで引き伸ばしていくいつもの方法。

Clothes122

先細り(Taper2)ツールでヒールの先を20%程度まで尖らせておく。

Clothes123

選択範囲を1段階拡張(}キー = Shift+])し、斜体(Shear)ツール([キー)でヒール部分を前にずらす。フォールオフ形状は初期設定の「右上がり」では踵のほうが動いてしまったので、次の画像のように「右下がり」に変更してヒールのほうが動くようにする。

Clothes124

斜体を実行した後の状態が次の画像。

Clothes125

靴底の整理とサブパッチ強度の調整

足の甲のあたる部分のポリゴンが前後に長く、爪先や足首側のエッジを大きく引っ張っていて操作しにくいので改善したい。バンドソープロで分割するのが手っ取り早いんだけど、足から切り取って靴を作った都合で足の裏にあたるポリゴンが少し込み入っていてうまく分割できない。そこで、靴底のポリゴンを少し整理する。

ポリゴンの切り分けを変更するためにトポロジーが集中している箇所の次の画像に示したエッジを選択し、デバイドを1回使ってポイントを1つ増やす。

Clothes126

スペースキーを押してポリゴン選択モードに切り替えると次の画像のようになっているので、選択をポイントに(Sel Points)を使用して関連するポイントを絞り込む。このあたりは細かいポリゴンが集中していてマウスによるポイントの選択や選択解除が難しいので、いったんサブパッチを解除して大きく拡大し、自分がどのようにポリゴンを区切りたいのかよく検討する。

Clothes127

次の画像がポリゴンの分割方向を切り替え終わった状態。

Clothes128

3ポイントのポリゴンができているので、靴底側の隣りのポリゴンと結合(Shift+Z)する。これでトポロジーがすっきりする。

Clothes129

次に、靴底中央部分にあたるポリゴンも整理したいので、次の画像の矢印で示した方向でポリゴンを選択し、バンドグル(Band Glue)ツールで自動統合させる。バンドグルを使いたい時は、統合させたい方向にエッジと交差するように選択しなければならない。同じポリゴンを選択していても、選択方向を間違えると統合のされ方が変わってしまう。

Clothes130

バンドグルで統合し終わった状態が次の画像。選択したのは矢印で示したポリゴンだけだけど、その隣りにある2ポリゴンも同様に統合されているのがわかる。今回は4組8ポリゴンだったので手動で統合していってもそれほど苦労はないんだけど、これが数十組という単位になった時、一括で処理してくれるバンドグルは特に高い威力を発揮する。

Clothes131

靴底のポリゴンの整理が終わったので、靴の周囲のポリゴンをループ選択で綺麗に選択できるようになる。うまく選択されない場合は、バンドグルの処理の過程で生じた不要なポイントが残っていることがあるので、それらを削除する。

Clothes132

このポリゴン群をバンドソープロで3等分した。2分割でもいいかとも思ったけど、もう少し作り込みたいので、3分割にした。

Clothes133

バンドソープロで分割したのが次の画像。分割前の上の画像と比べてみると、足の甲と爪先の部分の引っ張られ具合が緩くなり、無理矢理引き伸ばしたような印象がなくなった。

Clothes134

片方の靴が大体できたら鏡面 Xで反対側の靴を複製する。

途中経過

まだ靴にベルトなどの装飾を加えていきたいけど、同じような操作の繰り返しになるので省略。出来映えはともかく、必要なものはひととおり揃ったこともあり、モデル本体の作り方の過程はひとまずこれで終わり、次回からボーンやウェイト・マップを設定するリギング作業に移っていきたいと思う。

まずはひととおり完成させないことにはポーズひとつ満足につけられない。UVマップの展開やテクスチャの作成などやるべきことはまだたくさんあり、モデリングにばかり時間を使っていられなくなってきたのもある。

Clothes135

関連記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―服装編2―

最終更新:2016/09/27

前回はおおまかな形にするところまでで終わってしまって大幅に省略したので、ここからは細かいところを作り込んでいく。今回はジャケット編。

襟を作る

最初に襟を作る。Thickenツールで厚みを増した生地の端を選択する。

Clothes025

拡張プラス(Eキー)でポリゴンを追加し、上に伸ばしていく。

Clothes026

襟に段差をつけていきたいので、伸ばした部分の前方部のポリゴンを選択し、削除する。裏側もあるので忘れずに。

Clothes027

表面のポリゴンがなくなって空洞になった部分のポイントの表と裏それぞれを選択し、襟側のポイントに統合(Ctrl+W)する。サブパッチがかかっているとループ状になってわかりにくくなるので、一度解除してから統合ツールを使ってもいい。なお、統合ツールは後に選択したポイントに吸着する特性があることを頭に入れておくと思わぬところに吸着されてしまうミスは防げる。

Clothes028

Thickenツールで厚みをつけると、概ねベースになったポリゴンの法線方向にシフトするので、襟の端にあたるポリゴンのエッジは斜めになっている。ここで後の作業がしやすいようにポイントを整列させて少し整理する。

次の画像のように襟の一番前側のポイントを最初に選択する(対称モードを使用しているので2つ選択している)。

Clothes029

整列させたいポイントを次の画像のように追加し、「変形」メニューグループにある軸でポイント整列(Align Points to Axis)ツールを選択する。

Clothes030

前後方向を揃えたいので、Z軸を選択し、「Align to」を「First Point」に設定し、「OK」をクリックする。最初に選択したポイントのZ座標に合わせて他のポイントが整列される。

Clothes031

同様にして、襟の上面にあたる部分もY軸座標で整列させる。整列が終わった状態が次の画像。

Clothes032

再度サブパッチをかけると次の画像のようになる。ほとんど変わっていないように見えるけど、整列をやっているのといないのとでは以後の作業のしやすさが大きく変わってくる。

Clothes033

移動ツール(Tキー)で襟を大きく広げる。内側に向いているポリゴンをいっぺんに大きく移動させると無理が出てくるので、回転ツール(Yキー)などで向きを調整しながら少しずつ広げていく。多少ポリゴンがよじれてしまっても問題ないので、無理に平面を維持しようとしなくてもいい。ただ、襟の厚さが途中で大きく変わってしまうのは問題なので、表と裏をもれなく一緒に移動させたり回転させたりする。そこだけ意識するようにしたい。

Clothes034

襟の上半分の連続したポリゴンをいくつか選択し、ループ選択で表から裏までぐるっと選択する。

Clothes035

ちなみに、ループ選択は多用する割にはショートカットキーが割り当てられていないので、「˜」(Shift+^)に割り当てている(日本語キーボードには書いてないけど、BackSpaceキーの2つ隣り)。初期設定では「曲げる」ツールに割り当てられているショートカットだけど、そんなに頻繁には使わないので上書きしてしまった。「`(グラーブアクセント記号)」(Shift+@)のドローツールを「開いたカーブ(Make Open Curve)」に置き換えてあるので、隣り合うキーにショートカットを割り当てておくと曲線を量産したい時に便利。どんな場合に曲線を量産する必要があるのかはいずれ説明したい。

バンドソープロで次の画像のように2分割する。ループ選択をするまでもなく、バンドソープロはループしながらポリゴンを分割していくので、いきなりバンドソープロでも同様の結果は得られる。

Clothes036

襟の上半分の前側のポリゴンを次の画像のように選択する。

Clothes037

拡張プラスと移動ツールで次の画像のように前に押し出す。

Clothes038

更にループ選択してバンドソープロを使って3分割する。

Clothes039

バンドソープロの設定は次の画像のとおり。5%と95%の部分で分割するようになっている。

Clothes040

分割し終わった状態が次の画像。主な目的は、そのままでは丸みがありすぎて締まりがない角をきちんと立たせ、制服っぽいハードな襟に見せるため。ここで先ほど表に見えているポイントを整列させた効果が出てくる。斜めのまま放置しておくとどんなにバンドソープロで分割しても傾いたままになってしまう。ここからポイントを整列させようとすると手間は単純に4倍になる。

Clothes041

拡大して更に襟を作り込む。次の画像のように襟の先端のポリゴンをひとつ選択する。

Clothes042

拡張プラスでエッジを増やし、移動はさせないで次の画像のように拡大縮小ツール(Shift+H)で50%まで縮小する。

Clothes044

今まで特に触れてこなかったけど、「アクションの中心」は「選択範囲」モードにしておく。マウスなどのポインティング・デバイスの位置で中心点を決める「マウス」モードではどうしても大雑把な指定になってしまうので、ある程度モデラーの計算に任せる。特に意図がある場合以外、基本的には「選択範囲」モードを使用している。

Clothes043

更に拡張プラスと移動ツールで窪みを作る。押し込む移動量は大体でいいけど、とりあえず襟の厚さの半分くらいにした。

Clothes045

今度は次の画像のように前側の先端のポリゴンを選択する。

Clothes046

同様に拡張プラス、拡大縮小ツール、拡張プラス、移動ツールの順に適用し、次の画像のように側面と同じような窪みを作る。

Clothes047

サブパッチを解除すると次の画像のようになっている。

Clothes048

前面と側面の窪みを繋げて切り欠き状にしたいので、余分なポリゴンを削除する。側面の窪みが目論見の切り欠きに近いので、前面の窪みのほうのポリゴンを削除していく。

Clothes049

ポイントの統合ツール(Ctrl+W)を使って前と横をつなぎ合わせいく。側面の窪みを基準にして要所でポイントを整列させながら統合していくと綺麗にできる。色々つぎはぎはしたけど、4ポイントのポリゴンしか使ってないことがわかると思う。

Clothes050

このような切り欠きを作りたいのであれば、ブーリアンの減算を使うほうが簡単だと思うかもしれない。もちろんそれでもいい。

ただ、ブーリアンの場合は背景レイヤーに切り欠きに相当するオブジェクトを別途用意しなければならないし、今回のようにちょうど半分の大きさの切り欠きにしたい場合は位置合わせにも神経を使う。また、ブーリアンを使った直後は前景レイヤーと背景レイヤーのポリゴンが交差した部分のポイントが統合されていないので統合する手順が必要になる(統合し忘れるとサブパッチが崩れる)。その上、4ポイントのポリゴンを維持するには分割ツール(Ctrl+L)で丹念に切り分ける必要が出てくる。切り欠きの形状が複雑な場合はブーリアンを使うメリットのほうが大きいかもしれないけど、今回のような単純な直方体の場合は拡張プラスを活用して1レイヤー完結でジオメトリを構築していったほうが後始末は簡単に済む。要は適材適所といったところで、どの方法を使うのが能率がいいかはその時々で判断していくしかない。

サブパッチを適用すると次の画像のようになる。目的の切り欠きにだいぶ近くなってきた。

Clothes051

まだエッジの角が丸く、思ったほどのシャープさがない。更にポリゴンを分割してエッジを追加していってもいいんだけど、細かいところに過剰な労力をかけても仕方がないので、別の方法を使う。

切り欠きのエッジを全部選択し、「詳細」メニューグループにあるシャープネス設定を選択する。

Clothes052

ここではひとまず「50%」に設定してみる。何も設定していなければ0%になっているので、基本的には増やす方向。100%を超える値や負の値にはならない。

Clothes053

シャープネスを設定すると次の画像のように思い通りの切り欠きになった。100%にするとサブパッチがまったくかかっていない状態と同じになるけど、あまりシャープネスを上げすぎても周囲の丸みをおびたエッジに比べて不自然になるのでほどほどにしておく。「シャープネス増加」と「シャープネス減少」を1回クリックすると10%ずつ増減するので、それで様子を見ながら設定してもいい。

Clothes054

ここで言うシャープネスというのは、「エッジ・ウェイト」のことで、設定すると「Edge Weight」という名称のウェイト・マップが自動的に作成されてそこに情報が保持される。ウィンドウ右下の「W」ボタンを押し、「Edge Weight」を選択した上でビューポートの表示モードを「ウェイトシェイド」にすると設定状態を視覚的に確認することができる。エッジを選択した状態でIキーを押してエッジ情報を表示させても数値を確認でき、一括で値を変更することもできる。

Clothes099

エッジの先鋭化(シャープネスの増加)は、エッジ選択ができるようになるLW 9.6の前までは対象ポイントにサブパッチ・ウェイトを設定することで実現していたものなんだけど、サブパッチ・ウェイトはその名のとおりサブディビジョン(SubD種)が「サブパッチ変換」の時しか作用しないもので、エッジを先鋭化させたい場合は3ポイント又は4ポイントのポリゴン以外は許されないサブパッチ変換によるモデリングを余儀なくされていた。ところが、エッジ・ウェイトは5ポイント以上のポリゴンも許容される「キャトマル変換」でも有効で、見た目の上ではサブパッチ・ウェイトと何ら変わりがない。事実上、サブパッチ・ウェイトを使うかどうかは、古いLightWaveで作成した過去の作品を活かしたい場合を除いてはユーザーの好みの問題だけになった。

肩章を作る

ミリタリー風のジャケットやコートなどによく見られるエポレットを作る。特に難しいところはない。

肩と袖がつながっているあたりのポリゴンを次の画像のように2つほど選択する。

Clothes055

拡張プラスでポリゴンを増やし、拡大縮小ツールで適度にサイズダウンする。選択範囲モードで縮小すると肩の高さより低くなるので、移動ツールで高さを揃えておく。布の部分なのでそれほど厳密でなくてもいい。

Clothes056

拡張プラスと移動ツールで引き延ばしながら先端のポリゴンを45°ずつ回転させていき、90°回転したところで襟側に向かって引き延ばす。先端の位置が大体決まったら前後方向を縮小して先端を少し尖らせておく。

Clothes057

肩章はこれで終わり。ただ、なんとなくおかしい感じがしたので画像検索でエポレットが備えられた服飾を調べてみたら、こんなに大きいループを描くエポレットはほとんどなかった。肩の生地に水平に縫い付けられていてほとんど隙間がないことが多いので、ちょっとやりすぎた。資料はよく見ましょう…。

やりすぎてしまった場合は「構造」メニューグループにあるバンドグル(Band Glue)ツールでポリゴンを減らして適当な形になるように調節する。

袖章を作る

袖章はテクスチャで描いてしまってもいいんだけど、せっかくサブパッチを活用してハイポリゴン・モデルを作っているので、オブジェクトで作る。昨今はZBrushをはじめとするスカルプチャ・モデリングができるソフトウェアの台頭でテクスチャ・マップやノーマル・マップに頼らなくても3Dモデルに直接精緻な彫刻を施すことが可能になっているので、可能な限り凹凸をポリゴンで再現していきたい。

まず、袖に袖章を接続するための土台を作る。袖の下腕部分を選択してバンドソープロを使用する。表側だけでいいので、裏地のポリゴンも分割してしまわないように。最近のPCは安くても高性能なものが多いので、多少ポリゴンが増えたところで体感できるほどレンダリング時間が延びることはないけど、用もない分割は極力避けたい。

Clothes075

バンドソープロの設定は次の画像のとおり。10%の位置で分割するようにしてある。半分に切って移動ツールでポイントかエッジを移動させてもいいんだけど、袖には多少なりともテーパーがかかっているものなので、できればその先細りを維持したい。

Clothes074

なお、作業の途中でWindows 10にアップグレードしてしまったので、ここからスクリーンショット内のウィンドウデザインが変わってしまうけど、ご勘弁願いたい。ちなみに、Windows 7/64bitからの移行だったけど、LightWave10.1はちゃんと動作している。

袖の上側のポリゴンを4つ選択し、拡張プラスと拡大縮小ツールで土台を形成し、袖口のほうへ移動させておく。次の画像のようになった。

Clothes076

土台ができたので、袖章を作っていく。当初は袖を拡張プラスなどで盛り上げて作る方法も考えたんだけど、手動で加工するとどうやっても歪むので、別のレイヤーでディスクから作ることにした。袖章のモールにはループがあるデザインなんだけど、それを可能な限り円形に近くしたいから。

まず、ディスクツールで正八角柱を作る。Y軸方向に3分割してある。例によって八角形なのは土台が4ポイントのポリゴン4つで構成されているから。

Clothes059

後で縮小するのは余分な手間なので、袖の太さと比較して適度な大きさになるように最初から小さく作っておく。中心点は後からでも調整がきくので、とにかく正八角柱を作る。

Clothes058

上面と底面のポリゴンは必要ないのでDeleteキーで削除する。サブパッチでモデリングしていく場合、ディスクの上面と底面は大抵必要ない。

Clothes062

平均統合(Weld Average)を用いて八角柱の外縁のポイントを中心位置で統合させる。上面と底面のポリゴンが残っていると点ポリゴンになってしまうので注意。

Clothes060

高さを揃え、上面の8つのポリゴンを選択する。拡張プラスでポリゴンを増やし、拡大縮小ツールで40%まで縮小する。40%という数値はあらかじめデザインしておいた袖章の比率から求めた。

Clothes061

底面も同様に加工し、上面と底面の合計16ポリゴンを選択する。

Clothes063

ブリッジで中央に穴を開ける。ブリッジは本当に便利。ブーリアンの減算のように交差したポイントが分離されてしまうこともない。

Clothes064

ブリッジの処理で残ってしまった中心のポイントを削除する。

Clothes065

ここまでやってしまってから八角形のポリゴンのまま縮小してブリッジしても結果が同じだったことに気付いたけど、この程度の加工は頭を使わなくても進められるし、よくあることなので気にしない。

穴の内側のポイントの位置を調べる。X座標は2.733mであることがわかったので、これをコピーする。

Clothes066

ナイフツール(Shift+K)のX座標に2.733mをペーストし、次の画像のようにカットする。本当は内側まで切り進めたいところなんだけど、交差する座標がまったく同じだと結果が不確定になるので外側のひとつ目までにしておく。

Clothes068

なお、途中までカットしてできる宙に浮いたポイントを内側のポイントに接続すると、ポリゴンが分割されたことにならず、7ポイントの1ポリゴンとして扱われてしまってサブパッチ適用時におかしいことになってしまう。途中まで切り進めたポイントはもったいないけど残さず削除する。

Clothes067

地味だけど、分割ツールで次の画像のように内側のポイントとエッジを接続して3ポイントと4ポイントのポリゴンに切り分ける。

Clothes069

袖章の腕の部分を引き延ばしていく。角に直接つながっている3ポイントのポリゴンがあるとサブパッチ適用時に想定外の方向へ歪むので、次の画像のように外側のエッジを選択して半分にデバイドしてポイントを増やす。

Clothes070

デバイドしたポイントと内側のポイントを接続するために次の画像のように分割ツール(Ctrl+L)で切り分ける。

Clothes071

3ポイントのポリゴンを選択してポリゴンを結合(Shift+Z)する。

Clothes072

反対側の腕も伸ばして袖章の基礎は完成。サブパッチをかけてみて次の画像のようになっていれば成功。

Clothes073

ここまでできたら、袖章の裏側のポリゴンは削除する。裏側をそのままにしていると袖と接合した時にポイント間の距離が0になり、サブパッチが処理しきれなくなって奇妙なトゲのような出っ張りができてしまう。おそらく、0で除算すると計算結果が無限大になってしまうという数学の反比例の関数のグラフと同じような現象なんだろうと思う。

袖章をジャケットのあるレイヤーにコピーする。ここで袖の正中線に合わせて位置を調整しておく。

袖章の形に袖側の土台を合わせていきたいので、袖章のポリゴンのスケッチ色を「詳細」メニューグループにあるスケッチ色で赤に設定する。これによって間違って袖章を構成するポイントを動かしてしまった時にすぐに気付けるようにする。

Clothes077

残念ながらLightWaveのモデラーには他のソフトウェアにあるようなマスクに相当する機能がないため、任意のポリゴンを誤って操作することがないようにロックすることはできない。運用面でカバーするしかないわけだけど、このスケッチ色という概念は他の3DCGソフトウェアには意外とないものらしい。レンダリングの結果にはまったく影響しないものだけど、ポリゴンの簡易グループとして使い方次第ではかなり重宝する。ただし、スケッチ色は「なし」も含めて14色しかないので、本格的なグループ化をしたい場合はパーツ作成機能を使う。

あとは、とにかくどんな手段を使ってもいいので、袖側のポイントを袖章に接合する。サブパッチを解除して内側から順に接合していくと少しはやりやすい。

Clothes078

途中で袖側のエッジが足りないことに気付いたので、ポリゴンの分割方向を切り替えたり、無理矢理デバイドで接合先のポイントを増やしたりもしている。はっきり言っておすすめできないし、あまりにややこしくて詳しい手順を書く気にもならない。袖章のモールを円形にしたいだけの理由でわざわざ背負っている苦労だから。もはやこだわりの問題で、ローポリゴン・モデルのようにテクスチャとノーマル・マップで作ることにしてしまってもまったく問題ない。

大体接合が終わったら、スムース押し出しで袖章の続きとなるモールを作る。スムース押し出しはポリゴンの法線方向にシフトしてくれるので、意外に簡単にできる。

Clothes080

特に示すまでもないかもしれないけど、スムース押し出しの設定は次の画像のとおり。

Clothes079

袖章の腕を統合ツール(Ctrl+W)でスムース押し出しで作ったモールと接合する。どこがモールなのかわかりやすいように全体のスケッチ色を統一して仮にマテリアルを割り当ててみた。

Clothes081

袖章の上の部分は平らのままなので、回転ツールを使って袖の曲率に極力合わせる。この時、回転の中心を袖章の正中線に位置しているポイントから取得するようにすると歪まなくて済む。ポイントをひとつ選択して「選択範囲」モードで回転ツールを適当に動かしてみるとポイントの座標が中心点に代入されるので、ポイント情報からコピー&ペーストする手間が省ける。1ポイントなら回転させようがないので、誤って変な方向に動かしてしまうこともない。これは結構おすすめな方法。

Clothes082

袖章のポリゴンを隠す(-キー)でどかしてみると、袖の表面は次の画像のようになっている。相当ゴチャゴチャなトポロジーになっているけど、目的のためには手段を選んではいられない。ちょうど袖章の裏打ちになるようにしている。

Clothes084

袖章のポリゴンを透明にしてみるともう少しわかりやすいだろうか。スムース押し出しで作った部分にも裏打ち用のポリゴンを追加してある。

Clothes083

袖側のポリゴンで裏打ちをしてあることによって、遠方にある袖のポイントに引っ張られて袖章の形が大きく崩れてしまうのを防いでいる。こう書くとすごい工夫のように思うかもしれないけど、かなり苦肉の策で、本当のところは反則技。

この方法を用いると、ひとつのエッジを3つ以上のポリゴンで共有することになってしまい、他のソフトウェアにこのようなオブジェクトのデータをインポートしようとするとエラーが出る。通常はエッジを共有するポリゴンは2つまでというのが常識。3つ以上あるということは、そのうちいずれかのポリゴンの法線方向が不確定ということになり、オブジェクトの外形を構築できなくなるからだ。特に、中身が詰まっていて表面に見えていないポリゴンがないことを前提としているスカルプト系のソフトウェアでは間違いなくエラーになる。

本来は反則技なわけだけど、LightWaveでは許されてしまうので、このまま進める。なんで問題を放置するかというと、袖章は1種類ではないから。この袖章は少尉のもので、最低でも中尉、大尉、少佐までの4種類の袖章を用意する必要がある。必要分が揃ってから裏打ち問題をどうにかすることにしても遅くはない。正攻法では、袖章の側面をバンドソープロで分割して袖側のポイントに引っ張られないように制限をかける。他のソフトウェアへのデータ移行の際はその時に考える。

合わせ部分を作る

最後に、ジャケットの前にあたる合わせ部分を作り込む。途中から対称モードが使えなくなるので、左右の対称性に疑問が残る場合はX軸の0座標で半分に切って鏡面 Xで再度貼り合わせて不安要素を取り除いておく。合わせ部分を最後に残しておいたのは、対称モードが使えなくなるからに他ならない。

Clothes085

内側に向いている合わせの端のポリゴンを選択する。まだ対称モードは使える。

Clothes086

拡張プラスと移動ツールでメッシュが大体均等になるように2段階に分けて左右を交差させる。目的によっては段階をもうけないで一気に引き伸ばしてもいいけど、そうするとメッシュが極端に伸びるためにポイント間の距離が遠くなって生地の端も内側に引っ張られる力が強くなる。結果、元の形状を維持できなくなることには注意したい。

Clothes088

ただ、こういった点に注意しなければならないからと言ってそれがただちにLightWaveの欠点になるわけではない。他のソフトウェアでも、ポリゴンのメッシュが他の部分と比較して極端に粗いところがあるとサブディバイドをかけても粗くて制御しにくいのは変わらないため、あらかじめ適度に分割しておく必要がある。むしろ、サブディバイドをかける前に結果がある程度予想できるという点はLightWaveの長所と言える。

右側が前になるデザインなので、左側の合わせを後ろに移動させる。右側から飛び出してしまう場合は回転ツールなどを使ってなんとか内側に収まるように調節する。左側は以後前に出てくることはないので、インナーにぶつからない程度であれば位置決めはおおまかでいい。

Clothes089

元の襟の形の影響で斜めになっている部分があるので、軸でポイント整列(Align Points to Axis)でX軸を揃えておく。

Clothes091

どこのポイントを基準にするか特に決まりはないけど、ここでは裾側のポイントを基準にした。

Clothes090

右側の合わせは上側で折り返すデザインなので、右側の合わせの上面のポリゴンを選択する。

Clothes092

拡張プラスと移動ツールで上に伸ばし、そのまま回転ツールで90°前に回転させ、更に拡張プラスと移動ツールで前に伸ばし、もう一度90°、合計180°回転させて折り返す。更に下に伸ばし、前に垂らす。

Clothes093

斜体(Shear)ツール([キー)で前に垂らした部分を斜めにずらす。斜体ツールはちょっとクセのあるツールだけど、間隔を変えずに均等に斜めにしたい場合は移動や回転ツールを使うよりも斜体ツールを使うほうが便利。メカのモデリングでは装甲厚を変えずに断面を斜めにしたい時などに活躍するツール。

Clothes094

奥に押し込んだ左側の合わせ部分も同様に斜体ツールでずらして襟を大きく開ける。斜体の基準点が右側になってしまってうまくいかない場合は、フォールオフの形状を「右上がり」から「右下がり」に変更してやり直す。

Clothes095

前に垂らした襟を形成する。角の部分のひとつが要らなくなったので、ポリゴンを3ポイントに分割し、端のポリゴンをひとつ減らしてある。

Clothes096

前に垂らした襟に装飾を施す。ここでもあまりおすすめできない方法をたくさん使っているので詳しくは書かないけど、ベベル(Bevel)ツール(Bキー)のインセット量で生地の端からのマージンを一定量確保してから各ポリゴンごとに分離してしまったエッジを再度貼り合わせ、拡張プラスと移動ツールで襟をまつった上でバンドソープロでエッジを立たせてある。手順が煩雑な上、どのポリゴンが余分かを判断して切り落としていく過程がわかりづらいかもしれない。

一般的な方法としてはスムース押し出し、ノーマル移動、拡大縮小ツール、拡張プラスなんかで作っていくのが常套なんだけど、細かいところで法線方向に一斉に動かれるとジオメトリがゴチャゴチャになって自分でもどこがどうなってるのかわからなくなりやすい。裏は表と反対向きに形成することを考慮しなければならないため、私としてはシフト量を0にしたベベルを使い、シフトをツールに任せずに自力で調整したほうが気が楽だと思ったのでそのような方法を採った。

Clothes097

過程を記録していたGIMPがファイルの保存時に異常終了してしまったので、スクリーンショットがいくつか飛んでしまった。Windows 10はまだ新しいためか、7よりも安定性が悪い気がする。Win 7ではGIMPがフリーズしたことは記憶にある範囲では1回もなかったのに。

それはそうと、Windows 10にアップグレードして数日してからモデラーのカラーワイヤーの色が変わってしまった。サーフェースの設定を変更していないのにOpenGLのシェーダのかかり具合も前と比較して明らかに異なる。他でLightWaveを扱っているブログなんかを見ると、確かこんな感じの色だった気もするので、これが正しい表示なのだろう。以前は選択した直後のポイントやポリゴンの色が異様に濃かったりしたので、むしろ前のほうがおかしかったのかもしれない。特に設定をいじった記憶はないのでGeForceのドライバーとの適合が適正化されたということなんだろうか。調べてみたけど、詳細な原因は不明。

途中経過

ひとまずジャケットは完成。レンダリングするとやはり袖章の周囲の影が少しおかしい。やはり反則技は反則ということか。あとまったく手をつけていないのは靴だけ。髪型が変わってるけど、実は髪の毛もやり直し中。

Clothes098

関連記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―服装編1―

最終更新:2016/09/27

前にも少し書いたけど、服は体のラインから作っていく。現在の体は次の画像のようになっている。多少いじってはいるけど、ほとんど変わっていない。

Clothes000

インナーを作る

内側の服から順に作っていく。インナーも本来は長袖という設定だけど、上着を着せる予定なので袖が二重になっていると肘を曲げた時に内側の服が外側の服を突き破ってしまうことがあるため、袖は作らない。また、後でスケルゴンを組み込んだりウェイト・マップを設定する時にも邪魔になるため必要最小限の範囲に留める。次の画像のようにウェストから肩口までのポリゴンを選択して別のレイヤーにコピーしておく。

Clothes001

コピーした服のベースは次の画像のようになっている。デフォルトの設定で「Inner」というサーフェースを仮に割り当ててある。

Clothes002

「ユーティリティ」メニューグループにある追加プラグインからThickenを選択する。服の表面は体の表面よりは外側にあるので、「Direction」は「Outside」を選択する。「Change Sides Surface」と「Change Outside Surface」にチェックすることでThickenで追加されるポリゴンのうち側面に相当する部分と外側に相当する部分のサーフェースを別に割り当てることができる。ベースになるポリゴンのサーフェース名が「Inner」なので、それぞれ「Inner_sides」と「Inner_outside」というサーフェースが追加される。「Smooth Scale」はどのくらい押し出すかの指定で、布の厚さに相当するんだけど、あまりに近すぎると後が大変なので、作業しやすいくらいの値にしておく。

Clothes003

3Dプリンターでの出力を考えているなどフィギュアの原型を作っている場合はどんなに薄くても厚さが必要になるので1枚ポリゴンでは不都合が生じるけど、3DCGの範囲に留める場合には最終的に側面と内側のポリゴンは不要になることが多いので、後で選択しやすくするためにもサーフェースはわけておいたほうが無難だと思う。

ただ、Thickenで追加されたサーフェースは不安定で、Thicken実行後に作業を続けていたらいつの間にかベースのサーフェースに統合されてしまっていることがある。このインナーを作っている時もそういった症状が起きた。念のため、サーフェースが追加されたのを確認したら一度保存しておくのをおすすめする。

「OK」をクリックすると、次の画像のようにノースリーブの服のようなものができあがる。

Clothes004

襟をタートルネックにしたいので、首のポリゴンを選択してバンドソープロで次の画像のように横に分割する。

Clothes005

内側のポリゴンも同様にバンドソープロで分割する。

Clothes006

分割した内側のポリゴンの上半分を選択し、更にバンドソープロで分割する。本物の服と同じように、襟を折り返してタートルネックにしたいので、折り返し部分のポリゴンが必要になるためだ。

Clothes007

折り返した後の部分は、元は内側だったポリゴンが外側に、外側だったポリゴンが内側になるので、ちょっとややこしいけど、よく考えながら変形させていけばポリゴンを裏返したりすることなく襟を折り返すことができる。サブパッチがかかっているとポリゴンの裏表がはっきりしなくて余計にわかりにくいこともあるので、サブパッチを解除して形を整えてからサブパッチをかけてもいい。

Clothes008

どうしてもわからなくなってしまった場合は、襟を別に円筒などからモデリングして接続するという方法もあるけど、かえって手間がかかるかもしれない。サブパッチ・モデリングの練習のためにも、できるだけ連続したポリゴンを加工するほうをおすすめしたい。ちょっとしたパズルのような楽しみもある。

上の状態だと首にピッタリすぎるので、次の画像のように少し前に変形させてたるませる。インナーはこれで完成。上でも書いたようにサーフェースがうまく振り分けられてくれなかったので、内側のポリゴンで不要なものは後で削除することにする。

Clothes009

ジャケットを作る

裾から頭を通して襟から出して着るタイプのシャツやセーターといった服や、羽織って着る服であっても生地が薄くて合わせが浅いワイシャツのような服であれば上で書いたインナーの方法で作ればいいけど、ジャケットやコートといったような生地が厚くて合わせが深い服で、前を開けたり閉めたりできて着こなしに変化がある服の場合は少し工夫がいる。

体のラインからおおまかな形を切り取るのはインナーと同じ。ジャケットは長袖にするので、次の画像のように上腕の根元あたりくらいまで切り取る。

Clothes010

インナーと同様にThickenツールで生地の分だけ厚くする。

Clothes011

合わせになる部分の連続したエッジをいくつか選択し、ループ選択(Select Loop)で襟側と裾側、内側のエッジも選択する。

Clothes012

選択をポイントに(Sel Points)でエッジで選択した部分をポイント選択に切り替える。

Clothes013

合わせ部分を切り離すために「詳細」メニューグループにある統合解除(Unweld)ツール(Ctrl+U)でポイントの統合を解除する。次の画像のようにサブパッチが崩れるので、いったんサブパッチを解除する。

Clothes014

片方の合わせ部分のポリゴンを選択する。内側のポリゴンはもちろん、襟側と裾側のポリゴンも忘れずに選択しておく。三面図で上から見た図で選択するとやりやすい。

Clothes015

反対側の合わせと再統合されないようにするために、合わせ部分が離れるように移動(Move)ツール(Tキー)でX軸方向に少し動かす。要は結合ツールの自動モードで統合されない範囲まで離れていればいいので、ほんの少しでいい。

Clothes016

この状態で、一度ポリゴンの選択をすべて解除し、結合(Merge Points)ツール(Mキー)で解除していた統合を再統合させる。サブパッチを再適用すると、先ほどのサブパッチの崩れはひとまず解消している。ただ、合わせ部分にポリゴンがないため、空洞になっていて次の画像のように向こう側が見えている。

Clothes017

合わせ部分の生地の端にあたる外側と内側のエッジを次の画像のようにひとつずつ選択し、ブリッジ(Bridge)ツールで空洞になっている部分を埋めていく。エッジを選択してブリッジした場合は、選択したエッジを含むポリゴンをひとつ作成してくれる。ポイントを4つ選択してポリゴン作成でもいいけど、後で裏返さなければいけなくなったりしてやや手間がかかるので、ブリッジのほうが手軽で間違いも少なく能率も上がる。

Clothes018

片方の合わせ部分が完成したら、反対側の合わせは後で削除してしまうのでブリッジ作業はしないで、肩口のポリゴンを選択して拡張プラスと移動で次の画像のように袖を伸ばす。袖口はある程度ぱりっとしていて欲しいので、一段区切って更に拡張プラスで少しだけ伸ばしておく。肘関節で曲がる部分の細分化は袖の絞り具合を調整してからでも遅くない。

Clothes019

袖まで完成したら、次の画像のように袖を伸ばしていないほうのポリゴンをすべて選択し、削除する。

Clothes020

手間を半分に減らす目的もあるけど、Thickenツールは精度が悪く、ベースにしたポリゴンが完全に左右対称になっていたとしても左右対称かつ均等に厚みを増してくれるわけではないため、左右でバランスが崩れた精度を増す目的も同じくらい重要。インナーでは省略したけど、本当はやっておいたほうがいい。

機械ではないし、服なのだから精度なんてどうでもいいと思うかもしれないけど、左右対称になっていないと細部を作り込むときに対称モードでの選択がうまく働いてくれなくて無駄な神経をすり減らすことになる。経験してみればわかるけど、対称モードなのに反対側が選択されてくれないストレスは結構なものになる。

Thickenツールの影響で正中線がズレている可能性があるので、半分に切った部分の背中側のポイントを次の画像のように選択して整列させる。

Clothes021

「詳細」メニューグループにある整列(Set Value)ツール(Vキー)でX座標を0に統一する。翻訳の問題なんだけど、「変形」メニューグループにも「整列」というツールがあって紛らわしい。Alignツールと動作は似ているし代用もきくけど、表示されるダイアログが異なるので注意。

Clothes022

鏡面 X(mirrorX)ツールで袖まで作ったほうのジャケットを反対側に複製する。

Clothes023

鏡面 XはX座標が完全に一致するポイント同士(座標は0には限定されない)を見つけると自動的に統合してくれる。上でX軸を0に揃えたのはポイントの統合の手間を減らす目的もある。眉毛を作って反対側に複製した時には余計なお世話と思ったけど、こういった場合ではむしろ便利。

パースで回してみてサブパッチが崩れているところがなければ表地、裏地ともに綺麗に接合されているということなので、これでジャケットの基礎は完成。あとは襟などを作り込んでいく。学ランの詰め襟のように襟をかっちりと立たせたい場合は、エッジの丸め方と面取りサブパッチの簡単な応用でも書いたサブパッチの影響範囲の制限をうまく利用する。

途中経過

スカートは同じく体のラインをベースにして筒を伸ばしていくだけで簡単に作ってしまったので省略。プリーツスカートやフレアスカートなんかのモデリングはまた別の機会にやろうと思う。ジャケットはまだ完成ではないけど、大体こんな感じ。靴はまだ作ってない。

Clothes024

関連記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―髪の毛編―

最終更新:2016/09/06

本記事は初期段階での作成方法を記載したものです。新しい作り方については続・髪の毛 HairBlade編をご覧ください。


頭部最大の難所、髪の毛。実は他の部分のモデリングの記事を書きながら、ずっと髪の毛を作っていた。作っては壊し、作っては壊しの繰り返しで、これほど難航するとは正直思っていなかった。髪の毛は本当に難しい。フィギュアの原型師の方達はいつもこんなことをやっているのかと思うとまったく恐れ入る。

LightWaveで髪の毛と言えば、繊維状オブジェクトをシミュレートするFiberFXが定番で、「LightWaveを使っているのに便利なFiberFXを使わないなんてありえない」と言われそうなくらいメジャーな機能。

FiberFXも一応試してはみたんだけど、思ったような髪型にするにはガイドと呼ばれる無数のポイントを編集する必要があり、ポリゴンで髪の毛を作るのと大差がないくらいの時間と労力がかかる。顔を衝突オブジェクトに指定して重力や風などの物理演算を使用できるのは利点なんだけど、二次元キャラクターの髪型はなかば重力を無視したものも多いので魅力にはなりにくい。また、イメージ・プロセシング・プラグインとしてのFiberFX本体のパラメータ数も非常に多く、二次元キャラクター風の質感を出すのにも研究が必要で、まったく別のノウハウが必要になる。

何はともあれ、ここではFiberFXを使わずにポリゴンで髪の毛を作っていく。ポリゴンで髪の毛というと、バナナ型の髪の毛の房を作り、それを頭の周囲に並べていくという手法がよく採られるけど、それとそんなに変わらない方法に落ち着いた。

髪の毛の基礎を作る

ボックスツール(Shift+X)で髪の毛の房を作っていく。基本は眉を作った時と同じ方法。横幅200mm、奥行きを100mmで生成してある。特に決まっているわけではないけど、奥行きを横幅の半分くらいにするのを目安にしている。

Hair000

次の画像のように上下(Y軸)に6分割、左右(X軸)と前後(Z軸)に2分割する。よほどの長髪でもない限り、6セグメントくらいあれば、大抵の髪型は表現できるように思う。

Hair001

上端と下端のポリゴンを4つずつ選択し、それぞれのポリゴンを結合(Shift+Z)する。

Hair002

ポリゴンの結合で余剰になった2ポイントをDeleteキーで削除する。

Hair003

Y軸に一列に並んでいるポイントを選択し、断面が菱形になるように移動させる。前面と背面の幅が40mm、左右の面の幅が20mmになるように形成してある。菱形の角にあたる部分の幅によって髪の房を前後左右に分かつサブパッチの鋭さが決まる。もっと鋭くしたい場合は幅を狭く、丸くしたい場合は広くする。

髪の房の断面を菱形にするのは、フィギュアの原型を作っている方のブログで髪の毛の断面を半円や円形にすると1本の太い髪のように見えてしまうという記事があり、それを根拠にしている。無用にエッジを増やしたくはないんだけど、何度も試した結果、これで必要最小限という結論になった。

Hair004

先細り(Taper2)ツールで毛先に向かって細くなっていくように加工する。これも眉を作った時と同じ方法。前の記事では先細りの倍率に「0%」は指定できないって書いたんだけど、指定できた。どこで勘違いしてしまったんだろうか。

Hair005

次の画像のように、左右だけでなく、前後も先細りさせておく。

Hair006

ここまでできたところでサブパッチを適用すると次の画像のようになる。毛先の先端にある8つのポイントは統合しないでおく。何度も書いてるけど、統合してしまうと先端が丸くなってしまう。

Hair007

複製する前に、髪の房の前面、背面、両側面、毛先の部位にわけて「選択」メニューグループにあるポイントセットで次の4つの選択セットを登録する。複製後、ポイントの数が大量に増えることになるので、少しでも管理しやすいようにグループ化しておくのが目的。

  • Hair_Front
  • Hair_Back
  • Hair_Side
  • Hair_Top

Hair008

髪の房を必要数複製(Cキー)する。必要数によってヘディングの回転角度や中心位置は変わるけど、目安としては、隣の髪の房と左右が少し重なるくらいにする。今回は複製元も含めて全部で24個の髪の房を作っているけど、二次元キャラクター風をターゲットとしているものとしてはたぶん多いほう。

Hair009

複製し終わった状態が次の画像。ここから前髪や後ろ髪に必要な分を切り取って使うことになるんだけど、ツインテールやお下げ髪など特殊な髪型の場合を除き、髪の毛全体をひとつのオブジェクトとしてモデリングしていったほうが結果としてはやりやすい。

レイアウトで焦点距離の短い広角カメラで捉えた時にパースが強くかかり、モデラーのパースで見た時よりも髪の毛の量が格段に少なく見えることがよくある。髪の毛全体のボリュームのバランスを少なからず調整することになるんだけど、前髪と後ろ髪にパーツが分かれているとこのボリューム調整が非常にやりにくい。フィギュアの原型制作でも、量産や塗装する際のパーツ分割のことを考えなければ、同様のことが言えるそうだ。

Hair010

後ろ髪を作る

前髪を先に作ってしまったので、ここでは後ろ髪だけを選んでモデリングしていくけど、基本的な方法は前髪でも同じ。

まず、髪の房の根元を接続していく。サブパッチが適用されている時に込み入った箇所のポイントを選択するのはちょっと手間がかかるので、パースで表面に見えているポリゴンをクリックして選択をポイントに(Sel Points)ツールでポイント選択に切り替えながら「詳細」メニューグループにある平均統合(Weld Average)でポイントを接続していく。隣りの髪の房と向かい合わせになっているポリゴンは不要なので削除する。

余談だけど、私は平均統合をよく使うので、「Alt+W」をショートカットキーに割り当てている。Altキーを使うショートカットは基本的に空いているので、よく使うツールなのに初期設定でショートカットがないものを割り当てておくと少し省力化できる。

Hair011

次の画像がすべての髪の房を接続し終わった状態。髪の房の数だけ同じ作業を繰り返さなければならないので、先に土台を作ってから拡張プラスなどで押し出しながら髪の毛を作っていったほうが早いのではないかと思うかもしれない。もちろん、そういう方法もあるけど、頭を覆うものという性質がある以上、必ずしも髪の房が作業しやすい角度になっているとは限らないこともあり、毛先を均等に先細りさせたりする作業が難しくなる。大変な作業を後にやるか先にやるかの違いだけだったりする。

Hair012

土台と髪の毛の房を別に作って根元をブリッジで接続するという方法も書いてて思いついた。失敗した髪の毛の房を切り取って別の房をつなぎ直したい時には使える手段かもしれない。

髪の分け目を作るために、髪の房の裏面のポリゴンを次の画像のように選択する。

Hair013

「構造」メニューグループにあるブリッジ(Bridge)で接続すると次の画像のようになる。上端のポリゴンはすでに3つに分割されているけど、本来は分割されないまま残っている。

Hair014

上端のポリゴンを髪の流れと同じ方向になるように分割(Ctrl+L)したけど、必要なかったかもしれない。

Hair015

まだ上が解放している後ろ髪の上端のポリゴンを削除し、裏側のポイントをブリッジで生成された部分の下に接続し、表側のポイントを上に接続する。ちょうどヘルメットの内側と外側を作っていくような感じ。

Hair016

角の部分などいくつか必要ないポリゴンができたので、それらを削除しながら前方も後ろ髪との曲線に沿うように形成していく。髪の分け目を作るのには明らかにエッジが足りないことに気付いたので、頭頂部の3ポイントのポリゴン群をぐるっと選択してカットツール(Shift+U)でエッジを増やす。前側のほうはバンドソープロも使える(3ポイントのポリゴンにはバンドソープロは使えない)。

Hair017

これで後ろ髪の基礎は完成。あとは、目的の髪型になるように変形させていく。平面的に移動させるよりは、回転ツール(Yキー)や拡大縮小ツール(Shift+H)などを使って断面が太くなったり細くなったりといった変化が少ないようにしていくとうまくいきやすい。

上で登録した選択セットの前面や毛先のポイント(Hair_Front や Hair_Top)で髪の流れを作り、側面のポイント(Hair_Sides)で流れに沿った髪型を、背面のポイント(Hair_Back)でボリュームを調整する。前面側のポイントだけで髪型を作ろうとすると極端に前に張り出した髪の房になりやすいので、前後方向に拡張したら左右方向もバランスをとるようにする。隣りとぶつかってしまって左右方向を拡張できないようなら、モデルに無理がきていることも考えられるので髪の房を分割することも検討する。

髪の毛はとにかくポイント数が多いので、最初は対称モード(Shift+Y)で大体の形を作ってから細部を作り込むようにしていくといい。レイアウトに移して思ったような髪型になっていなかったことに気付いた時に戻り作業が発生すると、細部まで作り込んでしまった後だと苦労が無駄になってしてしまうので、とにかくボリューム調整を最優先でやっていくほうが効率は良い。

あと、この後ろ髪のオブジェクトひとつでは髪の房がまばらすぎて後頭部がスカスカになってしまうので、毛先のほうを切り取り、二重か必要なら三重以上にしておく必要が生じる。すると管理すべきポイントは更に増えるので、ポイントの選択に苦労しないように逐一整理していく。

前髪

前髪は後ろ髪とはまったく異なるアプローチで作っていて、あまり記録も残っていないので失敗作供養も兼ねてデータが残っていた主な失敗の紹介に留める。

次の画像は、髪の房の断面を半円形にしようとして失敗したもの。正中線で髪の毛の流れを制御しようとしたところまでは良かったものの、太い房がどうにも大根か何かの棒状のもののように見えてしまい、髪の毛にはとても見えなかった。

Hair018

次の画像は、上を改良したもの。分割数を多くして髪の房を細くすれば改善するのではないかと考えたけど、その目論見が見事に外れた失敗例。半円形の断面にこだわっていたため、やはり大根のように見える印象は変わらなかった。拡張プラスで無理矢理枝分かれさせて髪のボリューム不足を補おうとしたけど、エッジの管理が面倒になるだけで大した効果もなかった。房が分かれている分岐点も下のほうにあったため、角度の広い分け目を作ると谷間が鈍ってしまい、シャープさもなかった。

Hair019

次の画像が現在のものに最も近い状態。一度髪の毛の房ごとにパーツを分割して側面の穴を塞いだ上で、フォルムを優先して大幅に改変した。フィギュアの原型では髪の毛の断面を菱形にすることもあるという情報を仕入れたので、正中線に沿ってバンドソープロでエッジを追加し、大根に見えて仕方がなかった髪の房のシルエットを改善した。ボリューム不足は背面のポイントを中心に調整するようにしたところ、だいぶ改善した。

Hair020

前髪のモデルは以上のように新しい方法を思いつくたびにポリゴンの分割方法などが二転三転していったため、計画的にモデリングしたところがとても少なく、手順を説明しづらい。眉や後ろ髪のモデリング方法は断面を菱形にする手法を知った時に考えた。

途中経過

まだ直したいところもたくさんあるけど、ひとまず現時点の途中経過。

Hair021

髪の毛のマテリアルは仮に設定してあるものだけど、詳細はまた別の機会に書くことにする。テクスチャーを用意している時間がなかったので、画像マップは一切使っていない。

関連記事

参考記事

LightWaveで二次元キャラ系人物モデリング奮闘記 ―顔編2―

最終更新:2016/09/06

顔のモデリングの続き。目と耳と眉を作る。あと、まつ毛をモデリングで作る方法も少し考えてみた。髪の毛はまた次回。

目を作る

人物モデルに限らず、目には球体を入れるのが定石。理由はIK(インバース・キネマティクス)などを利用して視線をコントロールするのが容易になるからだけど、二次元キャラクター風の扁平な顔に眼球を入れると目が前に出っ張り、斜めや横からのアングルに極端に弱くなってしまう。

横から見て前に出ないように眼球を後ろに移動させると、今度は正面寄りのアングルで眼窩の奥が見えてしまったりする。眼窩をモデリングしていないと、後頭部の裏側が透けて見える。

そうかと言って、眼窩をぴったり塞ぐように曲率を下げると眼球が頭の中に入りきらないくらいの直径になってしまうジレンマに陥る。機械工学の問題で、与えられたモーメント(トルク)に耐えられるように設計すると、計算上は歯車の直径よりも回転軸のほうが太くなってしまうといった意地悪問題のようなものだ。

したがって、二次元キャラクター風の人物モデルに眼球を入れるためには、顔のほうを眼球に合わせて工夫しなければならなくなる。不可能ではないかもしれないけど、目を球体にするためだけにそこまでするのはあまりに労力がかかりすぎる。どうせなら、作業効率を考えると眼球を最初に作り、目の周囲から順に顔をモデリングしたほうがいい。

ここでは、あえてその定石を無視して眼窩の形から目を作る。二次元キャラクターを模ったフィギュアの目は扁平か、むしろへこんでいることが多いからだ。視線のコントロールのことは後で考える。目のテクスチャーにUVマップを使うなら視線のコントロールは至難の業だけど、通常の平面マッピングでローカル座標を与えておけば首を回しても瞳が置いて行かれることはないし、フレームの進行に従って瞳を移動させるくらいのことはできそうだ。

次の画像のように眼窩の周囲のポイントを選択し、ポリゴン作成(Make Poly)ツール(Pキー)でポリゴンを生成する。サブパッチ・モデリングでは3ポイント又は4ポイントのポリゴンを使うという定石はここでは考えず、ポリゴンの分割はしない。

Face010

切り取り(Ctrl+X)で顔のモデルからいったん切り離し、同じ位置に貼り付ける(Ctrl+V)。新しく作成したポリゴンだけを選択してTabキーを押してサブパッチを適用すると眼窩より少し小さいくらいの面ができる。

Face012

別のレイヤーにポリゴンを移し、押し出し(Extrude)ツール(Shift+E)でごく短く後ろに押し出す。元のポリゴンは眼窩の周囲を無理矢理つないで作ったものなので平面性が極めて低く、押し出した時に元のポリゴンと押し出したポリゴンの法線が逆転して裏返ってしまうことがあるけど、それ以外は正常なので、ふたつのポリゴンを選択して反転(Fキー)で向きを変えてしまえば問題ない。

Face013

押し出したポリゴンを選択して拡張プラス、移動で厚さを増す。必要に応じてストレッチ(Stretch)ツール(Hキー)で垂直、水平ともに10%増しくらいに拡大しておくと眼窩をぴったり塞ぐことができる。目の表面に見えているポリゴンは後ろに拡張したポリゴンに引っ張られ、中央方向にサブパッチが作用しているので前に膨らまず、むしろややへこむ。ちなみに、眼窩を塞ぐだけで良ければ、最初のポリゴンを作成したところでやめても特に問題ない。

耳を作る

耳の位置は、目の高さよりもやや下に作る。眼鏡をかけた時に、つる(テンプル)がちゃんと耳にかかるくらいの位置と考えると決めやすい。前後の位置は顎と頬をつなぐラインからの延長線上が大前提。人物デッサンで緻密に描いた場合でも、二次元の漫画・イラストなどでデフォルメして描いた場合でも同様のことが言え、3DCGモデルでも顎から耳への線がひと続きになっていないと不自然になる。髪で耳が隠れてしまうことがわかっていても、頬のラインを正しくモデリングできているかどうかを確認する意味でも耳を作っておくことは重要。

次の画像のように、4ポイントのポリゴンを4つ選択してそこを土台にして耳を作る。作り方によってはふたつやひとつのポリゴンからでも作れるけど、4ポイントのポリゴン4つなら周囲のポイントは8つになるので、他のモデルに移設して接続する場合にも容易になる。

Face009

拡張プラスでおおまかに耳の形を作る。二次元キャラクター風にする場合はあまりリアルにモデリングする必要はないけれど、耳輪は意外に複雑な形をしているので、拡大縮小しながら拡張プラスを5回繰り返した。4回でもできるかもしれないけど、耳をモデリング中に左右対称にならなくなった時に鏡面コピーができるように顔側の頂点を動かしたくなかったので、5回になった。

Face017

耳輪の内側にある対耳輪をモデリングする時にエッジが足りなくなったので、次の画像のようにエッジを選択し、エッジベベルツール(Ctrl+B)でエッジを増やす。

Face018

エッジベベルでエッジを追加した直後の状態が次の画像。どこまでの範囲をエッジベベルで開くかはどのくらいリアルなモデルにしたいかによる部分もあるけど、少しやりすぎなくらいモデリングしておいたほうが後々の応用はきく。ファンタジー用語で言うところの種族が「人間」なら、耳ほどキャラクターによる違いが少ない部分もないのでできれば使い回しをしたい。エルフや妖精のようなとがった耳の場合はそのキャラクターが何者であるかを雄弁に語る部分のひとつでもあるので、使い回しを考えずに最初から専用に作ったほうがいいと思う。

Face019

対耳輪がうまく盛り上がってくれなかったので、もう1回エッジベベルを使用し、横方向のエッジを追加した。本来は外耳道(耳の穴)がある耳の下の部分は顔となめらかにつながっていて欲しいので、ポイントが密になっていて影ができるほど段差ができているのは都合が悪い。そこで、ポリゴンをひとつ除去してポイントを統合(Ctrl+W)し、5ポイントになってしまったポリゴンを分割(Ctrl+L)してある。

Face020

顔の他の部分と比べても、耳は存外に緻密なモデリングが必要になることがわかると思う。耳の角度は好みの問題もあるけど、少し大袈裟なくらい開き気味りにする。顔と平行にしてしまうと、レイアウトのカメラで正面から捉えた時に耳がまったく見えないということになる。

眉毛を作る

ポーズや表情が固定されているフィギュアなんかでは額に眉を直接塗装(印刷)してしまうけど、3DCG人物モデルではモーフを使って表情をつけられることを見越し、顔とは別のパーツで作る。表情を変えるつもりがない場合はテクスチャーに直接描いてしまってもいいけど、レンダリングの結果が気に入らなかった時にテクスチャーを描き替える手間が逐一発生し、画像ファイルを介してソフトウェアを切り替えて行ったり来たりすることになり、作業効率が落ちるばかりか微調整に苦しむ原因にもなるので、最初は面倒でも眉毛をオブジェクトで作ってしまうのをおすすめしたい。

眉毛の作り方にも色々あって、裏側を見ることがないのを前提として1枚ポリゴンで作る方法もあるけど、ここでは例によってボックスから作ることにする。次の画像のように左右(X軸)に4分割、前後(Z軸)と上下(Y軸)に2分割のボックスを作る。Z軸とY軸の長さは同じにしておく。

Face022

X軸の分割数を多くしたほうが眉毛に様々な表情をつけやすくなるけど、増やすのは後でいくらでもできるので、今は必要最小限にしておく。いずれにしても、偶数にしておいたほうがモデリングはやりやすい。

次の画像のようにボックスの両端の4つのポリゴンを選択し、ポリゴンを統合(Shift+Z)する。8ポイントのポリゴンができることになるけど、ここではあえてそのようにしている。

Face023

統合したポリゴンの中央に次の画像のように浮いたポイントがひとつずつできるので、それらのポイントをDeleteキーで削除する。

Face024

わざわざ統合するくらいなら、分割していないボックスからカットツール(Shift+U)で両端のポリゴンのポイントを増やすだけにしておきたかったんだけど、カットはバンドソープロほど精度が良くなく、終端の処理が実行する度に変わったりすることがあるので、確実に分割できる方法を選んだ。

X軸方向に一列に並んでいるポイントを選択し、次の画像のように断面が菱形になるように移動させる。Z軸とY軸方向の大きさを100%とすると、断面の角になる部分は10%くらいの幅にする。ここではボックスを40mm角で作ったので、前後上下のポリゴンは4mm幅になっている。

Face025

次に、菱形の前後を最初の大体半分くらいの厚さになるまでつぶす。ストレッチツールを使うよりは、移動ツールを使って角の部分のポリゴンの大きさが変わらないようにする。

Face026

「変形」メニューグループにある先細り(Taper2tool)ツールを使って眉尻を細くする。適用範囲は「自動」ではなく「固定」を使用するため、右ドラッグで先細りの開始点と終了点を指定する。次の画像のように開始点は眉の中央あたり、終了点は眉尻あたりを狙う。

Face027

先細りのフォールオフを次の画像のように設定すると、眉の中央が一番太く、弧を描いて眉尻に向かって細くなっていくように変形できる。倍率は本当は0%にしたいんだけど、先細りツールでは0%を指定できないので、とりあえず「1%」にしてある(勘違いがあり、実際には0%を指定できる)。軸を切り替え、前後方向も先細りさせておく。

Face028

右ドラッグで終了点を眉頭に移し、次の画像のように同様に先細りさせる。これで眉毛の基礎ができた。

Face029

ここまでできたところでサブパッチを適用する。極太だけど、次の画像のような眉毛らしきものができている。両端のポリゴンを8ポイントにしたのは、眉頭と眉尻の先端の処理をサブパッチに任せるため。ポイントを多くしてまで断面を菱形にしたのは毛の束を意識した形状にしたいため。ボックスの角を1本のエッジにしてしまうと全体が丸まって棒状になってしまい、毛の束のように見えなくなってしまう恐れがある。

Face030

眉頭と眉尻のポイントをそれぞれ8つ選択し、アクションの中心モードを「選択範囲」に切り替えておく。ストレッチツール(Hキー)を選択し、左ドラッグで大体の中心位置を掴まえてからいったんアンドゥ(Ctrl+Z)し、次の画像のように水平・垂直ともに「0%」にしてポイントの位置を揃える。軸を切り替え、3軸とも完全にポイントの位置を揃える。

Face031

同じ座標のポイントがたくさんできることになるけど、ポイントの統合はしない。ポイントを統合してしまうと先端が丸まってしまい、眉全体も短くなってしまう。眉の先端を鋭くしたくない場合は、別のレイヤーで加工し、統合前の基礎はとっておく。一度丸めてしまった先端を再び鋭くするのは微細すぎて加工するのが難しく、最初から作り直したほうがむしろ早いから。

主に移動ツールを使って紡錘形のオブジェクトを眉毛らしい形に整えていく。上から見たとき前後も紡錘形になっているので、背面が平らになるように調節する。

Face032

大まかに形が整ったら、ストレッチツールなどで全体を細くしていく。上下の幅だけでなく、前後の幅とのバランスもとりながら調整していく。顔の形にフィットさせるのは後回しにし、この段階では目的の太さにすることを優先する。

Face033

眉が完成したら、「選択」メニューグループにあるポイントセット(Picksets)で眉毛のポイント全部をグループ化して「選択セット」として登録しておく。新しい選択セット名を入力し、「作成」ボタンをクリックすると、モデラーのウィンドウの右下にある頂点マップ選択ボタンが「S」に切り替わり、登録したセット名が表示される。

Face034

非常に細かい部分や立体的に入り組んだ部分になってしまい、ポインティング・デバイスで個別に選択するのが難しくなってしまった場合は、選択セットで一度にまとめて選択してから減らすようすると効率がいい。管理できる自信があれば、眉毛の前面、背面、上面、下面、眉頭、眉尻にわけて登録してもいい。

選択セットを活用して再度選択するには、「選択」メニューグループにあるマップで選択(Select by Map)を使うか、ポイント選択モードの時に「状態」(Wキー)を押し、「ポイント状態」ウィンドウの一番下の逆三角形がある欄をクリックして選択セット名を選択し、「+」をクリックする。前者はオブジェクトに登録されているすべての頂点マップの一覧が出てきてしまうので、モデリング目的で使うには後者のほうが実用的。

なお、すでに登録されている選択セット名を選び、別の新しいポイント群を選択した状態で「作成」ボタンをクリックすると既存の選択セットにそのポイント群が追加される。

顔のレイヤーを下地にして、次の画像のように眉毛を顔にフィットさせる。この時、回転ツールなどを使って眉毛の断面が極力変わらないように工夫すると綺麗な眉を作れる。

Face035

片方の眉が完成したら、反対側に複製する。鏡面Xツールを使いたいところなんだけど、鏡面Xを使うとなぜだか眉頭と眉尻のポイントが自動的に統合されて先端が丸まってしまうので、複製(MirrorTool)ツール(Cキー)を使う。複製の中心を原点にして、次の画像のように「スケール X」を「-100%」にするとポイントが統合されないままで鏡面複製したように複製される。

Face037

眉毛の完成。

Face036

まつ毛を作る(オプション)

すでにキャラクター・デザインが決まっていて明確なターゲットがある場合は、まつ毛はテクスチャーで描くのが基本だけど、オリジナル・キャラクターの場合はある程度融通がきくのでモデリングで作る方法もある。

眼窩の上半分のエッジを選択し、拡張プラスで前にごくわすがに押し出す。頭の大きさが1mくらいだとすると、10mmくらい(すごくおかしいことを書いているのはわかっている…)。拡張プラスはポリゴンだけではなく、エッジからポリゴンを拡張することができる。2回押し出した後、必要であればポリゴンを裏返し、前方に解放しているポイントを眼窩の周囲にあるポイントに統合(Ctrl+W)する。まつ毛のポリゴンにマテリアルを設定すると次の画像のようになる。

Face021

この方法の最大の利点はテクスチャーを描かなくてもまつ毛を作れることなので、二次元作画力に自信がない人に向いている。また、アニメのキャラクターのように色の境目がハッキリしていているデザインに適している。エッジを更に前に伸ばしていけば立体的なまつ毛を作れるのも長所と言える。

欠点は、眼窩周囲の適当な距離に接続できそうなポイントがないとまつ毛を作れないことと、まつ毛の量の調整のためにモデルを直接編集しなければならないこと。テクスチャーを編集するのとどっちが楽かと考えると微妙だけれども。当然ながらポリゴンの数も増える。漫画やイラストのキャラクターにあるようなグラデーションで肌色に溶け込むようなまつ毛を作るのが難しいのも弱点。

途中経過

細かいところばかりだったので、なんかいまひとつ進んだ気がしないけど、目と耳と眉を作った。

Face038

関連記事