プロシージャルモデリングとリグを組み合わせた門扉の作成 ~リギング編~
https://www.youtube.com/watch?v=iP0JN0mxdpM
プロシージャルモデリングとリグを組み合わせた門扉の作成 ~モデリング編~
今回のビデオは、前回「プロシージャルモデリングとリグを組み合わせた門扉の作成 ~モデリング編~」で作成した門扉のモデルを元に解説していきます。
さらにここからリグを組むことで、直接プロシージャルモデリングのパラメータを調整するのではなく、コントローラのチャンネルを使ってデザインの検討ができるようにしてみます。
こういったコントローラのチャンネルを使ってモデリングのパラメータを調整する場合、まず必要になるのが、何を調整したいかをしっかり決めておくということが重要です。今回の場合は門扉半分のXYZに対するサイズ、それに門柱のサイズ、桟の数、そして桟と桟の間隔を決めたいと思います。
コントローラとなるロケータを一つ作成したら、このロケータに対して新たに定義したいチャンネルをユーザーチャンネルで作成します。ユーザーチャンネルのタブから以下のチャンネルを作成します:
<門扉半分のサイズ>
ユーザー名称:Size
タイプ:距離
モード:XYZベクトル
初期値:1.0
最小値を使用:オン
最小値:0.1
<門柱>
ユーザー名称:Side
タイプ:距離
モード:スカラー
初期値:0.1
最小値を使用:オン
最小値:0.0
<桟の数>
ユーザー名称:Count
タイプ:整数
モード:スカラー
初期値:10
最小値を使用:オン
最小値:1
<桟と桟の間隔>
ユーザー名称:Gap
タイプ:パーセンテージ
初期値:5.0
最小値を使用:オン
最小値:1.0
ロケータを選択すると、これらのユーザーチャンネルがすぐさまビューポート上に表示されるようにしておきましょう。まずはロケータの形がわかりやすくなるよう、ロケータタブのシェイプをカスタムに変更し、シェイプを円、ビューに向けるオプションをオンにし、クリックしやすい場所へと配置しておきます。
次にアセンブリタブへと移り、ユーティリティのコマンドからチャンネルホールツールを選択しておきます。こうすることで、ビューポート上でコントローラをクリックすると、自動的に先程定義したユーザーチャンネルがHUDに表示されるようになります。
ここまでできたら、実際にユーザー定義のチャンネルと、門扉を作成したプロシージャルモデリングのパラメータとを接続していきます。まずはユーザーチャンネルをすべてスケマティックビューへと追加します。
まずは門扉のサイズですので、オペレーションリストから門柱を表すCubeを選択し、門柱のサイズXYZをスケマティックビューへと追加します。さらに門柱のX軸の位置が必要となりますので位置Xチャンネルを、また桟の数を表すY軸に対するセグメントのチャンネルも追加します。
コントローラーのSideをCubeのサイズXへ、SizeYをCubeのサイズYへ、SizeZをCubeのサイズZへ、そしてCountをセグメントYへと接続します。これは素直にそのまま接続することができます。
次に門柱から押し出される桟のサイズですが、これは二回目のPolygon Bevelで押し出す距離ですから、シフトの値になります。このシフトの値は全体の門扉のX軸に対するサイズから門柱の大きさであるSideを引いた値となりますので、減算処理を行うため、スケマティックビューの追加 > 演算 > Basic Math:減算モディファイヤを追加します。左上にある値Aには門扉のSizeXを、左下にある値BにはSideの値を接続し、その出力をPolegon Bevelのシフトの値へと接続します。
さらに門柱のX軸の位置をきちんと配置する必要があります。門柱のX軸の位置は、先程計算したシフトの値に門柱の半分のサイズを足したものです。なので、まずは加算モディファイヤを追加し、Sideの値を2で割って加算した値を位置Xへと接続します。ただしこうすると、ポリゴンベベルがすべての面から押し出されるようになって、正しく処理されていません。これは最初に行ったPolygon Bevelの処理範囲を指定するLinear Falloffの位置が、門柱の位置ときちんとあっていないためです。
Linear Falloffの位置Xのチャンネルを追加したら、X軸のサイズ全体から門柱のサイズを引いた値を接続します。そうすると全体のサイズと門柱のサイズを指定するだけで、全体のモデリングがきれいに行えるようになりました。
最後に桟と桟の間隔を指定します。ここでは単純にZ軸に対するサイズから指定したパーセンテージ分をかけ合わせた値を、一回目のPolygon Bevelで内側へと押し込む距離に指定しようと思いますので、まずは1回目のPolygon Bevelのインセットの値をスケマティックビューへと追加します。あとは乗算モディファイヤを追加し、SizeZを乗算ノードの値Aへ、Gapを値Bへと接続し、出力をインセットへと接続します。
これでビューポート上のコントローラをクリックするだけで、表示されるパラメータを調整すれば、プロシージャルモデリングの各オペレーションを調整することなく、モデリングのトライアンドエラーが行えるようになります。デザインの検討を行う際などには、詳細を作り込む前に、こういったリグを組むことで後から楽に調整することが可能になります。
この次は「プロシージャルモデリングとリグを組み合わせた門扉の作成 ~ウォークスルー編~」にて、門扉にカメラが近づくと自動的に桟の長さが調整され、扉が開くような表現を解説します。