チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第2回:nCloth+Mudboxでラクラク布製作(2/3)
- Maya
- Mudbox
- ゲーム
- コラム
- シミュレーション
- チュートリアル
- モデリング
- 中級者
- 学生・初心者
- 教育
- 映画・TV
今回は実際に布の法線マップを作っていきましょう。
(文章中の画像はMaya2009Unlimited、Mudbox2009になっていますが、Maya2011/Mudbox2011でも変わりません)
準備の必要がないところから始める方が気楽なので、おなじみのpPlaneを使用したいと思います。
では、以下の手順でシミュレーションまで一気にやってみてください。
・Create > Polygon Primitives > Planeで板メッシュを作る。(以下pPlane1)
・pPlane1のSubdivision Width/Heightを20にして分割数を上げる。(布をキレイに変形させるため)
・pPlane1を選択して nMesh > Create nClothを実行してクロス化。
・Create > Polygon Primitives > Sphereで球メッシュを作る。(以下pSphere1)
・pSphere1を選択して nMesh > Create Passive Colliderを実行してコリジョン化。pPlane1と衝突するようになる。(コリジョンは変形しない。)
・pPlane1をpSphere1の上に移動し、大きさを調整します。
こんな感じです。
・タイムスライダー上で右クリックメニューを出し、Playback SpeedがPlay Every Frame, Freeになっているのを確認して再生します。
・もしくはnSolver > Interactive Playback を実行して再生すれば、オブジェクトをリアルタイムに動かしながらシミュレーションできます。非常に便利です。
・再生を何度か繰り返していい具合の布がシミュレーションできたら終わりです。メッシュを複製して取っておきます。
☆何パターンかシミュレーションしてメッシュを複製しておいて、後からブレンドシェープで混ぜ合わせて欲しい形に整えなおすということもできます。シミュレーションのみで欲しい形状に持っていくことは大変です!部分的に良い結果が出れば、後でブレンドシェープで混ぜるという方法が、結果的に効率的です。
こんな風になれば、nClothでのシミュレーションは完成です。かなり大雑把な状態ですが、前回お話した低周波成分さえシミュレーションできればOKです。高周波成分はこの後Mudboxで追加していきます。
クロスシミュレーションのアトリビュート
シミュレーションをコントロールする上で最低限知っておきたいアトリビュートを見ていきましょう。nClothはnucleusというシミュレーションを行うノードと共に処理を行っています。まずはシミュレーション全体をコントロールするnucleusノードのアトリビュートを見てみましょう。
pPlane1かpSphere1を選択して、アトリビュートエディターを開きます。タブの中にnucleusと書かれているものがありますのでそのタブを選択します。
・Time Attributes > Start Frame
シミュレーションを開始するフレームです。このフレームにカレントの時間を戻すと布が元の形状に戻ります。シミュレーションする際は必ずこのフレームから再生するようにします。また、布の大きさや位置を変えるのもこのフレームより前のフレームで変えるようにします。
・Scale Attributes > Space Scale
nucleusでは1ユニット1mで計算されます。1ユニット10cmでシーンを作っている場合この値を0.1にすれば正確にシミュレーションされますが、かなり挙動が変わるので、デフォルトのままでも大丈夫です。
布のノード、nClothのアトリビュートを見てみましょう。pPlane1を選択してアトリビュートエディターを開きます。nClothShape1というタブがあるので選択します。
・Collisions > Friction
摩擦の強さです。1(もしくはそれ以上)にすると布が滑りにくくなるので、布がコントロールしやすくなります。
・Collisions > Stickiness
粘着性です。ここの値を上げても布が滑りにくくなります。
次にコリジョンのアトリビュートを見てみましょう。
pSphere1を選択してアトリビュートエディターを開くと、nRigidというコリジョンノードがあります。
・Collisions > Friction, Stickiness
ここにもFrictionとStickiness値があります。ここも値を大きくしておけば布は滑りにくくなります。nClothとnRigidは相互に影響を与えるので、両方のアトリビュート値を調整する必要があります。
nucleusのSpace Scaleアトリビュートが0.1等小さい値場合、FrictionとStickinessの値は大きめにしないと効きが悪くなります。
布の柔らかさをコントロールするのに二つの方法があります。
一つはnucleusのSpace Scaleの値を小さくする方法です。ただしダイナミクスの計算が大きく変わってしまうので、複数の布がある場合は注意が必要です。
上図の布はnClothのアトリビュートを調整して柔らかくしています。
・Dynamic Properties > Stretch Resistance, Compression Resistance
伸びにくさとつぶれにくさをあらわしています。値を下げると布がしなやか(伸びる)になります。
・Dynamic Properties > Bend Resistance
曲がりにくさをあらわしています。値を下げると布が垂れる(曲がる)ようになります。
ここであげたアトリビュートがシミュレーションする上で最低限必要なものです。他にもたくさんのアトリビュートがありますので、必要に応じてヘルプを見ながら調整してみてください。いろいろな反応があってとても楽しいです。(Mayaのヘルプの目次でユーザーガイド>ダイナミクスとエフェクト>nDynamics>nClothを参照してみてください)
改めてnClothの利点をまとめて見ましょう。
・リアリティの根本となる大まかなモデル(低周波の陰影を作り出す形状)を高速にリアルに作れる。
・体積を正確に保ってくれる。(スカルプトモデリングでは体積を保つのが難しい)
・シミュレーションで大まかなあたりを用意できることで、スカルプト時に正確なあたりとして機能。結果的に速くクオリティの高いモデルを作れる。
次回はシミュレーションしたメッシュをMudboxへ持っていって、最終的な仕上げを行っていきます。