メッシュの断面をカーブとして出力するには
https://www.youtube.com/watch?v=xpYEBv0jgeA
Modoバージョン13.2では、グラディエントに関する様々なモディファイヤが搭載されました。スケマティックビューの追加からモディファイヤを見てみると、新たにグラディエントというカテゴリがあり、その中にいくつもグラディエントに関するモディファイヤが提供されています。グラディエント同士をブレンドしたり、クランプしたり、ノイズを乗せたり、スケールをかけたりと、様々なオペレーションが可能になっていますが、その中でもメッシュの形状からグラディエントを生成するという面白いモディファイヤが搭載されています。このモディファイヤを利用して、今回はメッシュの断面をカーブとして出力する方法をご紹介します。
サンプルとなるシーンには、緩やかに形状が変化するメッシュが用意されています。このメッシュの断面をカーブの形状にそのまま移しだしてみます。まずはカーブを用意しましょう。この形状は1メートル四方で作られていますので、カーブもそれに合わせて作成します。
新たなメッシュレイヤーを一つ作成し、Curveという名称に設定しておきます。モデルパレットから頂点サブタブ > 新しい頂点で(-500mm,0,0)と(500mm,0,0)に2つの頂点を作成したら、カーブサブタブ > 開いたカーブでカーブを作成します。これでカーブが作成されましたが、これだとカーブが断面を表すためには、セグメントが足りませんので、カーブを再構築します。
メッシュオペレーションのタブからオペレータ追加 > カーブ > Curve Rebuildでポイント数を100ぐらいの大きな数に設定します。これでカーブの形状は同じで、セグメントが多く切られたカーブが再構築されました。このままだとカーブを確認しづらいので、カーブタブ > カーブをレンダリングをオンにし、大きさを調整します。またアイテムリストからカーブのメッシュを右クリックし、シェーディング > アイテムマスクの作成を選択します。これによりカーブのマテリアルを設定できるようになりますので、わかりやすい色を設定しておきます。
では、動く形状のメッシュから断面の情報を取り出します。この断面の情報を取り出すにはまず、スケマティックビュー > 追加 > グラディエント > Gradient from Meshモディファイヤを追加します。どのメッシュからグラディエント情報を取り出すのかを指定するため、動く形状のメッシュを接続します。そうすると、メッシュを切断(スライス)するためのインターフェイスがビューポート上に表示されます。プロパティからスライスオフセットの値を調整すると、どの地点をスライスするのかを調整することができます。
ではこれでグラディエントを取り出せるようになりましたので、これをカーブの形状へと適用します。カーブの形状へと適用するため、カーブを変形させる必要があります。カーブを変形させるにはメッシュオペレーションで、Transformのエフェクタを利用します。オペレータ追加 > Deformers > エフェクタ > Transform Effectorを追加します。Transform Effectorを動かすと、カーブの形状そのままで移動することになりますので、ここにフォールオフとしてリニアフォールオフを追加し、影響範囲を指定できるようにします。(フォールオフを追加)からLinear Falloffを追加し、軸はX、配置を動く形状の端へと合わせるため、(-500mm,0,0)に設定しておきましょう。
これにより形状はイージングカテゴリのグラディエントで指定した形状そのままが反映されることになります。ですので、このイージングのグラディエントに対して、Gradient from Meshから出力したグラディエントをそのまま接続するようにします。Linear Falloffをスケマティックへと追加し、右クリックからチャンネルの追加 > グラディエントでノードにグラディエントを追加し、Gradient from Meshから出力を接続します。カーブの振幅の大きさはTransform EffectorのY軸に対する移動量で調整します。
これはメッシュの変形具合をリアルタイムに反映させますので、例えばこの形状自体がモーフインフルエンスなどで変形のアニメーションを行っている場合にも、問題なく対応できますし、コンポーネントモードでジオメトリを編集しても、すぐさま反映されるようになります。
また、このスライス自体に対してもアニメーションさせることができます。例えば、Gradient from Meshのスライスオフセットを0%から100%アニメーションあせてみます。そうすると、スライスされる断面の情報もアニメーションされることになります。スライスに合わせてカーブの位置もアニメーションさせたい場合には、一工夫必要です。カーブは既にTransform Effectorを使って移動を行っているため、さらにカーブのアイテムに対してトランスフォームの情報を与えると、移動が倍になってしまい、おかしなことになってしまいます。これを解消するためには、メッシュオペレーションリストで移動用のTransform Effectorを追加します。アイテムモードにおけるトランスフォームではなく、メッシュオペレーションとしてトランスフォームを適用することで、矛盾なく配置を行えるようになります。では追加したトランスフォームに対して、スライスオフセットと合わせるように移動のアニメーションを付けてみます。そうすると断面の形状に合わせて、カーブが変形アニメーションを行うのが確認できます。
このように、Gradient from Meshを使うと、メッシュの形状に合わせたモデルやライトの生成、そのアニメーションが可能になります。