配列タイプを使ったリアルタイムなパッチカーブ作成法
https://www.youtube.com/watch?v=8bCFaLLuC9I
Modo 13.0では新たなデータタイプとして配列というタイプが追加されました。この配列タイプを使用して、リアルタイムにパッチカーブでジオメトリを作成する方法を解説します。
これまでのダイレクトモデリング型のパッチカーブでは、複数のカーブを元に、そのカーブを補間する形で面を貼っていくことができます。パッチカーブの使い方を知りたい場合にはビデオ「パッチカーブ機能を活用したモデリング 」をご覧ください。ただしこのツールは、リアルタイムで動作するツールではないため、カーブを修正したら、その都度、面を貼り直す必要がありました。今回ご紹介する方法では、リアルタイムに面を貼っていくことになるため、カーブの形状を後から変えても、面を貼り直す必要はありません。
サンプルとして、メッシュレイヤーに3本ほどカーブを作ってみます。Modo 13.0からはこのカーブ上のポイントを取得して、配列にデータを格納することができます。まずはスケマティックビューにこのメッシュを追加したら、追加 > Array > Curves to Arrayを追加します。このモディファイヤはカーブから位置や接線の情報を取得するためのモディファイヤです。何の情報を取得するのかはプロパティタイプで指定することができます。今回は位置の情報を取得してみます。カーブのメッシュをCurves to Arrayのカーブへと接続します。そうするとビューポート上のカーブに対してサンプリングした位置にマークが付けられるのがわかります。このサンプリングする位置については始点や終点、ステップ、サンプリング手法のプロパティで細かく指定することができます。とりあえず今回は各カーブに付き、10個のサンプルを取るようにしてみましょう。ステップを10に設定します。
ここまではあくまでカーブ上の位置のデータを配列に入れ込んだというだけの状態なので、この取得した位置情報を元に新たにメッシュを作ってみます。新たにメッシュを作るため、メッシュレイヤーを一つ追加しておきます。このメッシュに対して配列データからポリゴンを作成します。配列データからポリゴンを作成するためのモディファイヤは、追加 > Mesh Operations > 作成 > Create Polygonsを追加して使います。
このノードの位置へ、先程のCurves to Arrayの出力を接続します。そうすると各カーブに対して面で塗りつぶされているのがわかります。今回は3本のカーブをつなげた状態にしたいので、モードをブリッジに、閉じるをなしにしておきます。面の向きが逆なようであれば、元のカーブをコンポーネントモードで反転させておけばよいでしょう。
そうすると、カーブをつないで面がはられるようになりました。ですが、直線的につないで面を貼っているだけですので、滑らかさがありません。ここはいったん面を貼るのではなく、位置情報から新たにカーブを生成し、生成したカーブに対して面を貼るようにします。
Create Polygonsのポリゴンタイプを面ではなく、カーブに設定すると、元のカーブをつなぐ新たなカーブが生成されるようになりました。ではこれらのカーブから面を貼っていきましょう。
貼った面を入れるメッシュレイヤーを新たに一つ作成したら、さらにもう一つCurve to ArrayとCreate Polygonsモディファイヤを追加します。今度は新たに作成されたカーブを元に配列を作成し、その出力を追加したCreate Polygonsの位置へと接続します。
モードをブリッジに、閉じるをなしに設定すると、なめらかな面が作成されたのが確認できます。面の分割具合は、カーブから配列データを作成する際のCurves to Arrayにおけるステップ数で調整します。作成した面を反転させたい場合には、アイテムリストからメッシュレイヤーを選択し、コンテキストメニューからメッシュオペレーションを追加 > ポリゴン > Polygon Flipを追加すると、面を反転させることができます。さらに、Set Polygon Typeを追加して、ポリゴンタイプを面からサブディビジョンへと変更すれば、カーブに沿ったよりなめらかな面を表現することができます。
このように配列を使えば面がはられた状態であっても、大本のカーブの形状を修正したり、また面の分割数を後から変更するなど、パッチカーブの自由な編集が可能になります。