2004年 11月 10日
モデルのディスプレイ・オプションの設定の仕方について
Mayaを始めたばかりという方から、「Low-Polyモデルでモーション付けをしてSub-D(またはHi-Res Poly)モデルでレンダリングするというのはどういうことか」という質問を新たにいただきました。

Sub-DのモデルやHi-Resのポリゴンモデルなどだと、モデルのデータ量が多いためにモーション制作時などにMaya(またはパソコン)の反応が遅くなって作業がしずらくなるために、レンダリング用とは別にデータ量を軽くした低解像度のポリゴンモデルを使うわけですが、以前、アメリカの友達にも「Sub-Dとポリゴンモデルのリグはどう関連付けているのか」という質問をされて英語版のブログの方で自分の設定の説明をしたことがあるので、日本語のブログでもそれと似た説明を載せておこうと思いました。

ちなみに、こういった設定はやり方が色々とあって個人差があると思うので、ここに掲載する例もその中のひとつであると思ってください (と、言い訳をしておく)。

<モデルのディスプレイ・オプションの設定の仕方>


自分の場合は、初めSub-Dでキャラモデリングをしたあと、そのSub-Dモデルを複製して、MayaのメニューModify>Convert>Subdiv to Polygonsのオプションボックスを開いて、下図のようにレベル1ぐらいの解像度でポリゴンモデルを作りました。

a0033035_16445954.jpg

a0033035_17133380.jpgこのときに、Layerを使ってSub-Dモデルとポリゴンモデルを分けておくと、分割して表示できるので便利です。(実は、Layerを使うだけでもモデル間のVisibility設定としては充分なんですが、リグの一部としてモデルのVisibility切り替えを設定して置くのも、設定が整理されてそれなりに便利なときもあるような、ないような…)

ちなみに目玉だけ別レイヤーにしてあるのは、Sub-DとLow-Polyのモデルで共有しているからです。

そしてジョイントを設置し人型のボーン階層(スケルトン)を作った後で、Sub-Dモデルはスムース・バインド(またはRigid・Bindとラティスなど)でスキニングして、ポリゴンモデルは、(データ量を軽くしてモーション付けがしやすくなるように、)細かいパーツに切り分けて、それぞれ適したジョイントに(例えば前腕はElbowジョイントに、といった感じで)ペアレントします。 (パーツの数が多くて面倒くさいけど。)
a0033035_1714197.jpg


a0033035_16241039.jpgそしてIKなどのリグ設定を一通りしたあと、モデル自体や、モーション製作用に使う他のコントローラーの表示・非表示をコントロールできるVisibility Controller(右図で足元に緑色でハイライトされているコントローラー)を付け加えます。

ちなみにRigging101というサイトで、Free Stuffというページの下の方からrig101 Wire ControllersというMELをダウンロードできるのですが、それを使うとワイヤーで出来た色々なコントロール・オブジェクトが簡単に作ることができるので、お薦めですよ。

さて、話は戻りますが、Visibility Controllerには、不必要なアトリビュートチャンネルをWindow>General Editor>Channnel ControlからNon Keyableにして隠し、必要なチャンネルをModify>Add Attributeから付け加えています。

a0033035_17314035.jpgちなみにAdd Attributeツールで選択できるチャンネルのデータタイプの説明をすると…
Vector: 3つのFloatチャンネルを加えます。 一般的なXYZ座標のチャンネルを作りたいときに便利。
Integer: 0、1、-1など整数のみをインプットできるチャンネルをひとつ加えます。 ディスプレイオプションのサブメニューとして、Sub-DのディスプレイレベルやPolygonのスムース機能のサブディビジョンレベル表示に関連付けると便利。
String: データ入力用にファイル名などの英数字を受け付けるチャンネルを加える(らしいが、使ったことが無いので詳細不明。 すまん、見逃しておくれ)。
Float: 小数点以下を含む数値を入力できるチャンネルをひとつ加えます。 Set・Driven・Keyを使った指のリグを作る時などに良く使う。
Boolean: 1または0を入力することによって、On/Off設定が出来るチャンネルをひとつ加えます。 単純なVisibilityのOn・Off設定用に便利。
a0033035_17224093.jpgEnum: ドロップダウンリストが作れるアトリビュート・チャンネルをひとつ加える。 自分はこれでポリゴン、Sub-Dなどのドロップダウンリストをつくって、異なるモデル間のVisibility設定に使いました。(右図参照)

a0033035_20221662.jpg
そして右図が、Visibilityコントローラに付けたチャンネルの全てです。

モデルのVisibilityだけでなく、IKやFKのコントローラー、そしてFurやHairの表示・非表示も(というか、それらがメインですが…)ここから全て設定できるようになっています。

後にモーション制作用のインターフェース(GUI)も別に作ったので、今ではコントロール・オブジェクトのVisibilityをここで触る必要性はあまりなくなったのですが、ここに全てのコントロールを集約させて整理しておいたおかげで、MEL初心者の自分でもGUIを作る時にMELが書きやすかったです。

ちなみにそれぞれのオブジェクトのVisibilityチャンネルとの関連付けは、Set・Driven・Key、またはConnection Editorをつかいました。(下図参照)
a0033035_20254160.jpg

まとめると、この男の子のリグでは、Sub-DのモデルもLow-Polyモデルも同じスケルトンを使っていて、Visibility ControllerのGeometoryチャンネルからNone(スケルトンだけ)、Polygon(Low-Polyモデルだけ)、そしてSub-D(Sub-Dモデルだけ)の選択肢を選ぶことが出来るようにしています。(下図参照)
a0033035_223130100.jpg


実は現在では、全てのオブジェクトが一緒になっているために男の子のキャラのファイルサイズが大きくなりすぎて(17.3MB)ロード時間が長く掛かるようになってしまいました。

その解決法として、Sub-Dのモデルを消したLow-Polyだけのリグファイルを別に保存して、Mayaのリファレンス機能(File>Create Reference)を使ってそのLow-Poly版をSceneファイルに読み込んでモーションを作り、レンダリング時にリファレンスをSub-DとLow-Polyモデルが一体になっている元のファイルに切り替えるようにしています。

と、こんな感じで作業していますが、なんだか今日のブログは、今までの作業のおさらいのようになってしまいましたね。
[PR]
by cgtak | 2004-11-10 22:10 | Mayaチュートリアル


<< リグ設定(犬編) その5      リグ設定(犬編) その4 >>