夜はCGの時間

ゲームのデザイン仕事を生業にする筆者が、色々なツールのちょっとしたネタやTipsなどを投稿、まとめる備忘録ブログです。

【MAYA】カーブに沿って曲がる橋を作る【MASH】

例えば、この島に橋を渡したいとする。

f:id:Magotarou:20191214231824p:plain

愚直にオブジェクトを配置し、頂点をいじって作ろうとする場合、板を一枚渡すだけなら楽だ。

だが、吊り橋のように複数の板を並べて渡すとなるとちと面倒だ。

さらに、ちょっと中央をたゆませたりして、それをかんたんに調整出来るようにしたいとなると…。

 

こんなときに、オブジェクトを ルールに沿って大量に配置できるMASHが便利なので、それを実践してみる。

 

使用MAYAバージョン:2019.2

 

パーツを用意する

適当に橋桁を1つ用意する。

f:id:Magotarou:20191214234511p:plain

 

カーブを引く

NURBSカーブを引く。

後で調整できるので適当でいい。

f:id:Magotarou:20191214234624p:plain

 

MASHネットワークを作成

橋桁オブジェクトを選択して、

アニメーションメニュー > MASH > MASHネットワークを作成

 

あるいは

シェルフ > MASHタブの一番左のアイコン をクリックする。

f:id:Magotarou:20191214235800p:plainこれ。

 

すると、以下の図のように、橋桁が増える。

f:id:Magotarou:20191214235904p:plain

 

カーブワープを実行する

カーブワープは、パスに沿って変形させる機能だ。

シェルフ>MASHタブの右から6番目辺りにある。

f:id:Magotarou:20191215000351p:plain

(この機能、メニューのどこにも見当たらない。隠し機能?)

 

オブジェクト ⇒ カーブ の順で選択して実行する。

 

オブジェクトは、MASHネットワークの作成時にできた【MASH1_ReproMesh】を選択し、NURBSカーブを選択して実行。

するとこのような状態に。

f:id:Magotarou:20191215000809p:plain

 

みるからに失敗しているようにみえる。

個数を調整する前に、橋桁の向きを調整してみよう。

 

橋桁の回転

なにかうまい方法はないかと調べたが、結局この方法が一番楽だった。

橋桁の元モデルを回転させる。

f:id:Magotarou:20191215002659p:plain

今回は、X-90度、Z90度回転。

ちなみに元の橋桁オブジェクトは、MASH実行時に非表示にされているので注意。

 

MASHの調整

アウトライナに【MASH1】というオブジェクトができていると思うので、それを選択してアトリビュートエディタを開く。

f:id:Magotarou:20191215001056p:plain

色々あるが【MASH1Distribute】タブを開く。

調整するのは、【ポイント数】と【距離X】の2箇所だ。

f:id:Magotarou:20191215003227g:plain

 

あとはカーブを選択して、カーブポイントを調整することでたゆみ具合などを直せば完成だ。

f:id:Magotarou:20191215003528p:plain

 

きれいに曲線を描いた状態になる。

f:id:Magotarou:20191215003712p:plain

 

 

ちなみにこの手法の特徴として、以下のようなものがある。

f:id:Magotarou:20191215004100p:plain


『カーブの曲がった部分のモデルが変形して次のモデルとの距離を維持している』のが赤丸の部分で見て取れる。

なのでこういった橋や、曲がる階段などにこの手法は向いている。

元モデルを厳密に作成して、数値を調整すれば、隙間なくポリゴンを並べることもできる。

(頂点マージはしてくれないので最後に自分でする)

 

逆にモデルの形状を変えずにカーブに沿わせたいときは、MASHモジュールの『Curve』を使うと良い。

f:id:Magotarou:20191215004600p:plain

 

こちらの場合は、カーブワープを実行せずに、MASHネットワーク作成後Curveモジュールを足し、【入力カーブ】にNURBSカーブを中ボタンでD&Dする。

f:id:Magotarou:20191215005430g:plain

 

こちらは変形しても元モデルの形状は変わらない。

Curveのステップを1にして、Distributeの距離Xを0にし、ポイント数を増やして調整すると良い。

f:id:Magotarou:20191215004527p:plain

 

終わりに

MASHには他にも、

  • メッシュの表面にオブジェクトをランダム配置する
  • 色を塗った部分にだけオブジェクトを配置する
  • ダイナミクスを使って自然な感じでオブジェクトを大量配置する

など、背景のモデルを作っていると役に立つ機能が色々ある。

 

まあ昨今、アセットとして細かいモデルを作ってゲームエンジン上でMASH的な配置をすることも多いので、ゲーム用途だと昔ほど使い道はないかもしれない…。