Blender 2.8 の使い方 (07) リトポロジー
前 (編集モード) www.mztn.org 次 (Python スクリプト)
リトポロジー
前々回のスカルプトモード で作成した人体モデルの顔の部分に、別のオブジェクトで顔にポリゴンを貼って行きます(リトポロジー)。 スカルプトモードで作成したモデルは、顔だけでも頂点数は15万近くに増えました。
今回は、スカルプトモードで作成したモデル の表面にポリゴンを貼って (リトポロジー) 1300頂点程度まで減らします。ポリゴン数は100分の1ですが、ほぼ原形を保っていると思います。 サブディビジョンサーフェス(四角形を4分割)はメッシュがきれいになる印象がありますが、ポリゴン数が増える割に細部が潰れるので、使っていません。
多くの操作を編集モードで行います。 前回の記事も参考にしてください。
Blender 3.6 からリトポロジー用のオーバレイが追加されました。この記事ではリトポロジー用のオーバレイを使っていませんが、リトポロジーを行う物体を透過して見ながら、頂点や面を追加する場合の設定に苦労することがなくなります。リトポロジー用のオーバレイを有効にするだけです。面の裏側の頂点は選択されないため、楽になります。
数値はどの程度画面側に移動して表示するかを決めます。
平面の追加と回転
スカルプトで作成した形状の上に四角形を貼り詰めていきます。 まず最初に元となる平面オブジェクトを追加します。 オブジェクトモードでヘッダーのメニューから追加をクリックし、平面を選択します。 最初は視線に平行で横一線に表示されるだけなので、[N]キーを押して、アイテムタブのX軸の回転を 90 度に設定します。
裏面の非表示
リトポロジーの過程で裏面が見えるとじゃまになるので、「シェーディング」のオプションで「裏面の非表示」にチェックを入れます。
平面オブジェクトの縮小と移動
平面オブジェクトを縮小して右側に移動します。 編集モードではオブジェクトモードと違って、拡大率などのパラメータが変わるわけではなく、頂点の位置が変わるだけなので安心して [S] キーによる拡大縮小が使えます。 オブジェクトモードのように「トランスフォームの適用」とかを考える必要はありません。
ミラーモディファイアを設定
顔の反対側にもポリゴンが対称に貼られるように、ミラーモディファイアを追加します。対称の設定をX軸 (XYZ座標が-X,Y,Zにコピーされる) にして、Xが 0 を超えないように「クリッピング」にもチェックを入れます。 この設定で頂点は中心位置でマージされて1つになります。
対称の基準となるオブジェクトとして、「ミラーオブジェクト」にスカルプトしたオブジェクト (ここではSphere.018) を指定します。左のアイコンをクリックしてリストから選ぶか、スポイドでオブジェクトを指定します。
ミラーモディファイアの赤枠内のアイコンをチェックすると右側と同じように表示されます。必要に応じてチェックします。
面へのスナップを設定
リトポロジーとポリゴンモデリングの決定的な違いは、3次元の下絵に相当するオブジェクトがすでに存在していることです。 ポリゴンをその物体の表面に置いていけばいいだけです。そのために、頂点をスカルプトした物体 (今回は顔) の表面に吸着させるための設定を行います。 次の図のように「面」へのスナップを有効にして、「自分自身に投影」と「個々の要素を投影」にチェックを入れます。 この設定は非常に強力で、「押し出し」と併用すると、簡単にポリゴンを物体の表面に並べていくことができます。この機能と標準の「F2アドオン」があれば、「ポリビルド」などより素早くリトポロジーができます。 このスナップ機能は [Shift + Tab] でスナップのオン・オフを切り替えられます。
最前面(In Front)
プロパティのオブジェクトタブのビューポート表示パネルを開いてチェックボックスの一番下の「最前面」にチェックすると、そのオブジェクトは常に他のオブジェクトより前に表示されるため、頂点も面も後ろに隠れて見えなくなることを防ぐことができます。 特に凸な曲面上に平面を置くと、面は局面の後ろに隠れてしまいます。
平面の位置を鼻の中心位置に持って行きます。
「最前面」にチェックすると、平面オブジェクトは位置の前後に関係なく前面に表示されます。作業中のポリゴンが見やすい反面、後ろのオブジェクトが隠れてしまうという欠点はあります。
または「最前面」のチェックを外し、シェーディング設定の「透過」のチェックを入れ、値を1.0に設定すると頂点と辺は前面に表示されるようになります。リトポロジーの表示方法は開発側でも検討中なので2.82以降で改善されるでしょう。
面の押出 (エクストルード)
図のように鼻の中央付近に平面を置いて、下唇の下側まで四角形を並べます。頂点を1つずつ押し出す、または辺を選択して押し出すことで四角形を並べていくこともできますが、もっと楽な方法を使いましょう。
[T] キーを押してツールバーを表示します。 「押し出し」のツールには右下に小さな三角形がついています。 この三角形は、押し出しツールは他にも種類があることを示していて、この三角形をクリックしたまま少し時間が経つ(長押し)と他のツールが表示されます。
押し出したい辺を選択したあとで「押し出し(カーソル方向)」を選択します。
ツールとして「押し出し(カーソル方向)」を選択している状態では、マウスの左ボタンをクリックするだけで、その位置まで四角形が押し出されます。クリック1回毎に四角形が作成されるので非常に効率的です。 終了するには別の(普通は選択)ツールをクリックします。
面のループカット
「押し出し(カーソル方向)」で適当に四角形をつなげたあとで、長すぎる部分を分割するにはツールの「ループカット」を選択して、希望する分割方向でクリックします。
目の周りをポリゴンで一周
次に目の周囲をポリゴンでつなぎます。 目頭の下の方のポリゴンから、下まぶたの下ぐらいまでポリゴンを押し出して、方向を変えて目の周りに並べていきます。
「押し出し(カーソル方向)」で一周します。 図では辺選択モードになっています。
最後は頂点選択モードで4頂点を選択して、[F]キーを押してポリゴンを作成します。
唇の周り、鼻の周りも図のようにつなぎます。 全体的に並べるポリゴンの大きさを同じようなサイズにしておくと、その後の作業が楽になります。
F2アドオン
さて、これまで作成したポリゴンの間を埋める操作になりますが、上の図の唇の下側のように上下のポリゴンの間を埋めるには、標準のアドオンとして組み込まれているF2アドオンを使うと効率的に作業できます。
編集の「プリファレンス」から「アドオン」タブを選択して、「F2」を検索します。 検索結果に「F2」が表示されるので、左側のチェックボックスをチェックします。 これで「F2アドオン」が使えるようになるので、右上の[X] でウィンドウを閉じます。
F2アドオンで面を生成
下の図のように両側に並んだポリゴンの間を埋めるには、あいだの辺を選択して [F] キーを押します。 連続して [F] を押すと次々に面で埋められていきます。
このように広がっていく空き領域にポリゴンを貼る場合は、何らかの方法で分岐する必要があります。
分岐して広がる場合、狭まる場合、目や鼻の穴、口のように多角形を埋める場合のパターンには次のようなパターンがあります。 左端は1列のポリゴンから3列に分岐するパターン、次は2列のポリゴンから4列に分岐するパターンです。 これも実は1列から3列に分岐するパターンですが、2列に割って入るような形になるので分かりやすく2列のポリゴンから4列としています。 四角形のポリゴンだけで埋める場合は、偶数列から偶数列、奇数列から奇数列であれば可能です。 多角形の穴を埋める場合は辺の数が偶数であれば四角形のポリゴンだけで埋めることができます。
表示される直前には、内部で何角形であっても必ず三角形まで分割されるので四角形に拘る必要はありませんが、サブディビジョンサーフェス(四角形をなめらかに四分割)を使う場合はなるべく四角形にしておくほうがいいでしょう。 慣れればループカットなどを使ったりしてどんな領域でも四角形で埋めることができるようになると思います。
細かく見ると、1つの頂点から伸びる辺が、3本、4本、5本のパターンがあります。
広がっていくような領域をポリゴンで埋めていくには下の図のように頂点を押し出しておきます。1つの頂点は基本的に4つの辺がつながりますが、領域を広げていくには5つ目の辺を作成します。
頂点を選択して [F] キーを押す基本的な方法で、2列のポリゴンから4列に分岐するパターンで分岐しています。
角を選択して面を作成 (F2アドオン)
四角の面を作成するには、基本的に頂点を4つ選択して[F]キーを押しますが、 F2アドオンを有効にしていると、図に示すように頂点を1つ選択するだけで、[F]キーを押すと面を貼ることができます。
鼻と口の間はホウレイ線に向かって広がっていきます。ここでも5つ目の頂点を [E] キーで押し出します。
ここでも2列のポリゴンから4列に分岐するパターンを使います。
すでに存在するポリゴンが近くにあるので、適当に埋めることにします。結果的に1列から3列のパターンができています。 四角の面で埋めていく作業は、何度か練習して慣れると気にならなくなります。
頂点を複数選んで [E]キーで押し出すことができます。 そのまま [S] キーで拡大縮小を行うと効率的に面を貼ることができます。 面へのスナップ機能を有効にしていても、「個々の要素を投影」のチェックが外れていると同時に押し出すと、表面に吸着しない点ができます。 [G]キーを押すと近くの面にスナップされます。 後で説明するシュリンクラップモディファイアを使うと全頂点を一括して近くの面に吸着させることができます。
ここでは13個の頂点を押し出すことで、12個のポリゴンを一度の操作で作成できます。 非常に効率的ですね。
押し出しで位置を適当に決めた上で、[S]キーで拡大縮小したり、[R] キーで回転させると、あとから頂点位置の調整が楽になります。
リトポロジーの途中経過です。
頂点をスムーズに
さて、以上の方法でリトポロジーを進めていくと、「なんかガタガタしてて美しくない」と思うでしょう。これは「頂点」メニューから「頂点をスムーズに」を実行することで、周辺の頂点との関係をなめらかに変化するように修正してくれます。
「頂点をスムーズに」を実行すると、頂点が表面から離れるのでシュリックラップモディファイアを適用して、頂点位置をリトポ対象の表面に戻す必要があります。
頂点の結合(頂点をマージ)
2つの頂点を結合して1つにまとめたい場合は、2つの頂点を選択して、「頂点」メニューから「頂点をマージ」を実行するか、ショートカットの「M (2.83以前は[Alt+M])」を押します。
顔の前面が大まかに完成
顔の前面を大体埋めることができました。 目の周辺と唇の細かい部分に移ります。
「ループ選択」と「押し出し」と「縮小」
目、口、鼻の穴のように円状に並んだ頂点では、ループ選択 (Alt + 左マウスボタン) で周りの頂点を選択できます。
円状に並んだ頂点を選択したあとで、[E] キーで押し出して、[S] キーで縮小すると、一度に内側に並んだポリゴンを作成できます。頂点の間隔を狭くすると、急に角度が変化する面を表現できます。
スカルプトで作成した形状に沿って頂点を移動します。
唇の周りも目と同様の操作でポリゴンを作成します。
元の形状の特徴 (高くなる所など)に合わせてポリゴンを貼ります。
リトポロジーの途中経過
顔の前面にポリゴンを貼っていった状態です。 目の周り、口の周り、鼻とほうれい線から顎のラインを意識してポリゴンを貼ります。
斜めから見た状態です。
シュリンクラップモディファイア
「ループカット」や 「頂点をスムーズに」の操作では、頂点の表面へのスナップが効きません。 適当なタイミングで、シュリンクラップモディファイアを適用して、すべての頂点を表面へスナップし直すと、スナップ忘れで中途半端な位置に頂点が置かれるのを防ぐことができます。
シュリンクラップの適用
シュリンクラップモディファイアをオブジェクトモードで「適用」すると、実際の頂点の位置が近くの表面に移動します。 「適用」するまでは、適用した結果のプレビューが表示されているだけなので、モディファイアをキャンセルするともとに戻ります。
次の図は、「最前面」のチェックを外して、シュリンクラップモディファイアを適用した結果を示しています。 一般に、凹んだ部分がポリゴンが前になって、膨らんだ部分は元の物体の表面より下になります。
顔の正面
リトポロジーした結果を、元のスカルプトした頭部とリトポロジーで作成したポリゴンを同時に表示しています。大体近い形状にできました。リトポロジーで作成するポリゴンを小さくすればするほどポリゴン数は増えますが、差は小さくなります。
顔の正面のリトポロジーの結果です。
横顔
元のスカルプトした頭部とリトポロジーで作成したポリゴンを同時に横から表示しています。
顔の側面のリトポロジーの結果です。
リトポロジー用の推奨設定
リトポロジーを行う上で、表示方法の設定が複数あるため、どの組み合わせで行うとリトポロジーがスムーズに行えるか迷うかもしれません。 この設定は、私のオススメ設定です。
「面」へのスナップを有効にして、「自分自身に投影」と「個々の要素を投影」にチェックを入れ、平面のオブジェクトの「シェーディング」のオプションで「裏側が非表示」になるように設定し、「最前面」表示にします。
また、透過を有効にして、値を1.0(不透明)に設定すると頂点と辺がすべて表示されます。
まとめ
Blender 2.8 の標準機能だけでも、リトポロジーは簡単に行えると思います。四角形だけで構成したい場合は「トポロジー」を考えながら練習をする必要はあります。 ある程度の自動化はアドオンなどで可能かもしれませんが、それを微調整できるような練習は必要と思います。
ページ先頭へBlender 2.8 - 4.3 の使い方 [目次]
- (01) インストールと日本語化
- (02) 画面構成とモード
- (03) オブジェクトモード
- (04) 球と円柱でモデリング
- (05) スカルプトモード
- (06) 編集モード
- (07) リトポロジー
- (08) Python スクリプト
- (09) マテリアル (1)
- (10) マテリアル (2)
- (11) マテリアル (3)
- (12) アーマチュア(ボーン)
- (13) Rigifyによるリギング
- (14) パーティクルヘア
- (15) グリースペンシル
- (16) ジオメトリーノード (1)
- (17) ジオメトリーノード (2)
- (18) カメラ
- (19) ジオメトリーノード (3)
- (20) 新ヘアシステム Hair Curves
- (21) ヘアカーブの進化
- (22) Vector Displacement Mapブラシ
- (23) アセットライブラリ
- (24) シミュレーションゾーン
- (25) ボーンコレクションとRigify