2017-10-22

Retopology


リポトポロジとは、高解像度メッシュを、AR や VR などで扱えるような低解像度メッシュに変換するプロセス。ここでは、Houdini の topoBuild ツールの使う上での元データの処理、低解像度メッシュの渡し方、作業を行っていく上での重要な表示設定方法を紹介する。


Houdini 20 での Topobuild はこちらの「Topobuild ノード」をご覧ください。



使用したビルド: Houdini 16.0.759
シーンファイルへのリンクは一番下にあり。

1. 元形状の処理

ここでは、Test Geometry にある Rubber Toy を使う。この形状は左右対称なので、Clip ノードを使って片側だけを使うようにする。

  1. ビューポート内で TAB->Test Geometry->Test Geometry: Rubber Toy を実行。Enter を押して確定、原点に配置。
      testgeometry_rubbertoy_object1 ノードができる。
  2. このノード名を highres と名前を変更。
  3. ネットワークビューで i キーを押すなり、ダブルクリックするなりして、highres ノード内に入り、 TAB->Clip を実行。
    1. Origin および Distance はデフォルトのまま
    2. Direction を 1 0 0 に変更し、YZ 平面でクリップ。
    3. Rubber Toy を裏側から見ると、両脚、角は、別ジオメトリがめり込んでいるだけなのがわかる。そこで、これをきれいにする。
  4. ネットワークビューで Boolean ノードを作成。設定はデフォルトのまま (Operation=Intersect) で、 testgeometry_rubbertoy1 と clip1 の間に挿入する。
      これにより1枚の継ぎ目のないメッシュになった。
  5. clip1 の出力に Null ノードを接続、ノード名を OUT とし、表示フラグをこのノードに設定。

      この OUT を後ほど参照する。
  6. これで元メッシュの設定は終了。

2. 低解像度メッシュの作成

Topo Build ノードを使って一からメッシュを作成していく代わりに、低解像度のケージメッシュを作り、それを topobuild に渡してその形状を編集して低解像度メッシュを作成する。

  1. Ctrl キーを押しながら、Create シェルフの Box をクリック、原点に配置。
      Scene レベルに box_object1 ノードができる。
  2. このノード名を lowresと名前を変更。
  3. ネットワークビューで i キーを押すなり、ダブルクリックするなりして、lowresノード内に入り、box1 のマニピュレータを操作し、ボックスの大きさをボディの大きさに大まかに合わせる。
    1. まず Size を 0.5, 1, 1、Center を 0.25, 0, 0 にして、片側か YZ 平面ぴったりになるようにする。
    2. あとは、各面の矢印を操作して、大きさを変更。

      ビューを Top ビューにするには、Space+2。
      側面(右) は Space+4。

      Persp ビューに戻るには Space+1。
  4. ネットワークビューで box1 を選択し、 Ctrl+C と Ctrl+V で複製。
      box2 ノードが出来る。
  5. TAB->Merge を実行。Enter を押して確定。
      merge1 ノードが出来る。
  6. box1 と box2 を選択し、merge1 の入力に接続。
  7. box2 を選択し、マニピュレータの矢印で box2 が首の位置に来るようにする。

      Front ビューは Space+3。
  8. box2 を選択したまま、Ctrl+C と Ctrl+V で複製し、できた box3 を merge1 の入力に接続。
  9. box3 のマニピュレータを操作、box3 が頭の位置に来るようにする。

      ワイヤフレーム表示のトグルは 'w' キー。
  10. merge1 の出力に Boolean を接続。設定はデフォルトのまま (Operation = Intersect)。
      これにより、元形状同様、箱の寄せ集めが一つのメッシュになる。
  11. boolean1 の出力に Clip を接続、Direction を先ほどと同じように 1, 0, 0 にする。
      元形状同様、内側の面がキレイに削除されたのがわかる。
  12. clip1 の出力に Null ノードを接続、ノード名を OUT とし、表示フラグをこのノードに設定。

      この OUT を後ほど参照する。
  13. もっと編集を続けたければ続けても良いが、これで低解像度メッシュの設定も終了。角と脚は TopoBuild で処理する。
ここまでが 01_retopo_begin.hip

3. Topo Build

  1. Scene レベルで、 highres を選択、Model シェルフの TopoBuild を実行。
      Scene レベルに highres_retopo というノードができ、そのノード内に自動的に入っているはずで、ここには以下のようなネットワークがある。
    • object_merge1 は、highres (高解像度メッシュ)を参照している。
    • topobuild1 がリトポロジをするための編集ノード。デフォルトでは、左側の入力があいているのがわかる。
    • なお、ネットワークビューで、TAB メニューから topobuild ノードを作成した場合には、後述するビジュアライザの機能がついて来ない。よって、最初はシェルフから実行するのが望ましい。
  2. この topobuild1 が選択されていれば、このノードの機能により、面を張っていくことが可能。このノードには以下の4つのツールがある。
    • Build モード : 面、点、エッジのマルチ選択モードで選択、追加、削除が可能。
    • Split モード: 作成した面を分割する。
    • Brush モード: 設定した半径内にある点をブラシで移動。
    • Smooth モード: スムージングをかける。
    • よって、この状態から Build モードで面を (ちまちまと) 張っていくことも可能。そのためのチュートリアルはこちらあり。しかし、ここでは先ほど作成した lowres をとっかかりとして使用する。
  3. highres_retopo 内で、TAB-> object_merge を実行。
      object_merge2 ができる。
  4. object_merge2 の Object1 の右端にある '+' アイコンをクリック、/obj/lowres/OUT を参照するようにする。
  5. object_merge2 を topobuild1 の左側の入力に接続する。
  6. Scene レベルで highres と lowres ノードの表示フラグをオフにするか、ビューポート右上で Hide Other Objects に設定する。

      ビューポートの表示は以下のようになり、lowres メッシュが topobuild の初期メッシュとして認識されている。
  7. Topo Build で効率良く作業をするには表示設定を以下のように変更すると良い。
    • topobuild1 ノードの Visualizer タブに行き、Color Type を Poly Vertext Count にする。
        三角形が黄色、四角形が水色、N角形が赤で表示されるようになる。
    • ビューポートで 'd' キーを押し、Display オプションウィンドウを表示、Markers タブの右下にあるプルダウンで 3D Boundaries を選択。
        ジオメトリの境界エッジが青で表示される。
      赤い面はスプリットし、メッシュの内側に青いエッジがあれば、つなぐ必要があるということがすぐにわかる。
    • 同じく Display オプションの Guides タブで Geometry Information を Always オンにすると、ポリゴン数がビューポート右下に表示される。
    • 個人的な好みかもしれないが、ビューポートのレンダリングモードを Hidden Line Ghost にした方が見やすいかもしれない。

        上は、Hidden Line Ghost にして、Smooth モードで、Smooth All を一度実行、鼻の上と首の下のポイントを移動した状態。
  8. あとは Split、Smooth、Build を繰り返し、ガシガシと作っていくしかなく、編集操作を文章にするのは難しい。
      基本的に操作の殆どを LMB (左マウスボタン) で行い、MMB (中マウスボタン) クリックでツールの中断が可能。
  9. 例えば、角の部分は以下の要領で行うことも出来る。
    1. 元の部分にある面を選択、Delete キーを押して、削除。
    2. Build モードで角の先端部分をクリックして、ポイントを一つ作成、向かって右側のジオメトリ境界エッジ上に移動。
    3. 作成したポイントの脇にもう一つポイントを作成。
    4. ポイントの上のほうのエッジをクリック、そのまま作成したポイント二つまで延ばし接続する。(正しく持って来ればスナップする)。
    5. スナップしたあと、下のエッジまでさらにつなげる。
    6. Split モードで作成した上の面を半分に分割、MMB クリックで一度完了。
    7. 下の面も同じように分割。MMB クリックで一度完了。
    8. 向かって左側の部分も黄色で表示された三角形の右端のエッジまで分割。MMB クリックで一度完了。これで三角形は四角になる。
    9. Build モードに移り、上のエッジをクリック、そのまま引っ張り出して左のポイントにスナップさせ、右は浮いたままでクリック。
    10. 途中までの面を作成後、エッジをそのまま下まで伸ばし、下のポイント二つにスナップする。
    11. 最後に空いたところも、エッジを一つクリックし、伸ばしたエッジを残りの二つポイントにひねりながらスナップすることで穴を生めることが出来る。
    12. 作成後は好みに応じてさらに分割可能。
  10. 角を5つ編集したところまでがこちら。三角形を取り除きすべて4角形にするのは最後が良いと思われる。
  11. 脚や尻尾も同じアプローチを取ることも出来るが、こちらで紹介されている Houdini 16.5 の Skin モードでより効率よく作成可能。
    また半身のこの形状を全体に戻すには、 Mirror ノードを使用し、重複する頂点をくっつけるには、 Fuse ノードを使用する。これらに関しては別の機会に。

まとめ

Topo Build チュートリアル

シーンファイル h16_retopo.zip (79KB)
  • 01_retopo_begin: Retopo 作業直前までの設定ファイル
  • 02_retopo_horns.hip: このページ最後まで行ったファイル


作成: 2017-10-22
最終更新: 2024-04-20

0 件のコメント:

コメントを投稿