カーブプローブを用いたカーブによる筋彫りの表現
https://www.youtube.com/watch?v=nYpz0wdjbZA&hd=1
今回はMODO 801から搭載されたカーブプローブの機能を利用して、カーブによってメッシュに筋彫りを表現する方法についてご紹介します。
サンプルとなるこのシーンには、プリミティブの球体とカーブのメッシュが用意されています。今回は球体に対して、このカーブに沿って筋彫りを行っていくことにします。筋彫りを行うためにはまず、カーブを球体の表面にぴったりと添わせる必要がありますので、メッシュコンストレイント機能を使ってカーブを移動させます。
カーブのメッシュを選択したらコンポーネントモードへと切り替え、メッシュコンストレイントボタンからコンストレイントモードを背景に設定し、形状コンストレイントをベクトルに設定します。移動ツールでカーブのメッシュを球体へと近づけると、表面にぴったりと添ってカーブが変形するようになります。これで準備はOKです。ではレンダータブへと切り替えましょう。
このカーブプローブ機能を利用するには、スケマティックビューを利用します。スケマティックビューを開き、アイテムリストからカーブのメッシュを選択したら、追加ポップアップ > チャンネルモディファイヤ > プローブ > Curve Probeを追加します。
このカーブプローブのノードでは、カーブ上の各ポイント位置からの情報を参照することができます。どのカーブの情報を取得するのかを指定するため、アイテムリストからカーブのメッシュをスケマティックビューへとドラッグアンドドロップし、Curve Probeのカーブへと接続します。
次に、筋彫りを表現するためのテクスチャを追加します。この筋彫りはバンプエフェクトで表現します。バンプエフェクトを表現するためのテクスチャとして、Constantのテクスチャを追加しましょう。シェーダツリーのレイヤー追加 > 処理 > Constantを追加し、エフェクトをディフューズの色からバンプへと変更しておきます。このConstantテクスチャもスケマティックビューへと追加しておきます。
Constantテクスチャを追加すると、自動的にこのテクスチャの位置をコントロールするためのコントローラとなるテクスチャロケータが追加されます。カーブの情報を取得するためには、このテクスチャロケータの位置が必要となりますので、追加したConstantテクスチャのテクスチャロケータをダブルクリックし、テクスチャロケータもスケマティックビューへと追加します。このテクスチャロケータのテクスチャ座標値をCurve Probeの入力位置へと接続したいのですが、そのままの状態では接続することができません。これはテクスチャロケータのテクスチャ座標はベクトル、Curve Probeの入力位置は行列で表されているため、この型を変換する必要が出てくるからです。
ベクトルから行列へと値を変換するため、追加ポップアップ > 行列 > Matrix Constructを追加します。テクスチャロケータのテクスチャ座標をMatrix Constructの入力へ接続し、出力をCurve Probeの入力位置へと接続します。
次に、このCurve Probeからシェーディングする各サンプル位置の距離に従って、筋彫りの深さなどを表現するため、Gradientテクスチャを追加します。シェーダツリーのレイヤー追加 > 処理 > Grandientを追加し、スケマティックビューへも追加します。ただし、このGradientはあくまで筋彫りの深さなどをコントロールするためだけのものであり、マテリアルに対して影響を及ぼしたくはないので、シェーダツリーの中でMaterialの下に配置しましょう。これで実際の質感に影響することはなくなります。
ではCurve Probeノードの距離の値を、GradientのinValへと接続し、Grandientのテクスチャ値をConstantの値へと接続します。これでGradientノードにサンプル位置とカーブとの距離の値が入力されましたので、これに沿ってGradientで値を作っていきます。Gradientノードの値にひとつキーフレームを作成し、この値を0.0にします。するとうっすらとカーブに沿って何か浮き出た感じになったのがわかります。
グラディエント編集を開き、値を調整すると、カーブがきっちりと表現できているのがわかります。ただし、カーブのメッシュには5本のカーブが用意されていたはずなのに、一本しかカーブが表現されていません。これはCurve Probeノードでは、どのカーブの情報を取得するのかというのを指定しているためです。Curve Probeノードを選択し、プロパティを見てみると、デフォルトではカーブIDが0になっています。この値を調節すると、次々に表現するカーブが変化していくのが確認できます。今回は複数のカーブ全てを同時に表現させたいので、そういった場合には、カーブIDに-1を指定するようにしてください。
グラフ編集でさらにキーを追加してみると、筋彫りの模様も様々に変化させることができます。
さらに、同じGradientノードを使って、筋彫りの箇所に色を付けてみることもできます。もう一つ、Constantノードを追加し、今度はGradientノードのテクスチャ色を、追加したConstantノードの色へと接続します。Gradientノードで色の編集していくと、こちらも同様に筋彫りに沿って色を設定していくことができます。
このように、MODO 801で新たに追加されたCurve Probe機能を使うことで、メッシュ自体に変化を加えることなく、筋彫りなどの表現を簡単に追加することができるようになります。