MassFX リジット ボディの経験を積んだところで、mCloth を試してみましょう。mCloth は、MassFX シミュレーションで動作する標準 Cloth モディファイヤです。ダイナミック mCloth オブジェクトは、シミュレーションで布地オブジェクトやリジット ボディなどの他のオブジェクトと相互に影響し合うようにできます。
このレッスンでは、風に揺れる窓辺のカーテンという簡単なセットアップを作成します。カーテンがそよ風にはためき、窓の下枠にある瓶を倒します。また、適切にシミュレーションされるようにリジット ボディを設定する方法についても説明します。
この演習では、MassFX におけるリジット ボディと mCloth の使用について、次の項目を中心に学習します。
スキル レベル: 初級から中級
所要時間: 30 分
レッスンの準備:
シーンには、ガラス瓶とチェックのテーブル面という 2 つのオブジェクトが含まれています。

瓶の設定を行います。

物理シミュレーションでは、シミュレーション エンジンがダイナミック オブジェクトに使用する物理的シェイプは一般に、3ds Max がオブジェクトのレンダリングに使用するグラフィカル メッシュと同一ではありません。概して物理的シェイプはシンプルです。シミュレーション エンジンの負荷を減らしつつ、シミュレーションでオブジェクトの存在を示すには、通常は物理的シェイプで十分です。
しかし、シェイプが一致しないことで、オブジェクトを別のオブジェクト上に目測で直接配置するのが難しくなる場合があります。これを容易にするために、MassFX はキャプチャ変換機能を備えています。この機能を使用するには、まず、最終シミュレーションの開始時にオブジェクトが乗るべきサーフェスの上方にオブジェクトを配置します。次に、オブジェクトが落下して所定の位置に収まるように、テスト シミュレーションを実行します。オブジェクトが所定の位置に置かれたら、シミュレーションをリセットせずに停止し、オブジェクトに対してキャプチャ変換を使用します。すると、シミュレーションをリセットしても、オブジェクトは所定の位置に留まります。
をクリックしてシミュレーションを開始します。 瓶がテーブル面に落下し始めますが、倒れてしまいます。これは望ましい動作ではありません。

原因を特定して修正します。
をクリックしてシミュレーションをリセットします。そして、フロント ビューポートまたはレフト ビューポートで瓶の底を見直します。 底は平らで、テーブル面と平行になっています。したがって、グラフィカル メッシュに問題はありません。そのため、問題はおそらく物理的シェイプにあります。とはいえ、物理的シェイプはグラフィカル メッシュと同じ場所にあるため、これを調べるのは容易ではありません。しかし、この 2 つを分離して物理的シェイプがよく見えるようにすることは簡単です。
テーブル面が非表示になります。
グラフィカル メッシュから物理的シェイプを離し、物理的シェイプの底を調べながらビューポートをオービットします。 
左: グラフィカル メッシュ
.右: 凸型物理的シェイプ
明らかに物理的シェイプの底がでこぼこしています。これが原因で、テーブル面で瓶が不安定になっています。これは、物理的シェイプが、使用する頂点が非常に少ないグラフィカル メッシュの「ベスト フィット」の近似であるために起こります。[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトのコントロールを使用したサーフェスの代わりに、物理的シェイプの頂点の数を増やして、グラフィカル メッシュの頂点から生成することもできます。しかし、これでは物理的シェイプが持つ単純化という効果がなくなってしまいます。より簡単で効率的な方法は、[カスタム シェイプ](Custom Shape)オプションを使用することです。
移動した物理的シェイプを元に戻して、またグラフィカル メッシュと同じ場所になるようにし、モディファイヤ スタックの[MassFX リジット ボディ](MassFX Rigid Body)項目をクリックします。 これにより、[シェイプ タイプ](Shape Type)設定が[カスタム](Custom)に変更され、瓶と同じ名前を持つ新しい編集可能メッシュ オブジェクトが作成されて、オリジナルの瓶の上に重ねて配置されます。この新しいオブジェクトは、[凸型](Convex)シェイプ タイプによって作成された物理的シェイプのジオメトリ コピーであり、メッシュのソースと呼ばれます。

オリジナル オブジェクトに重ねて配置されたメッシュのソース
メッシュのソースの名前は、[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトに反映されます。今は、[カスタム](Custom)物理的シェイプ タイプのコントロールが示されています。この場合、コントロールはすべてボタンです。

これにより、編集可能メッシュ オブジェクトが選択されます。このオブジェクトを編集して底を平らにし、メッシュのソースから物理的シェイプを更新します。
[修正](Modify)パネルで、
[頂点](Vertex)サブオブジェクト レベルをアクティブにし、フロント ビューポート領域で、最も下にある頂点を選択します。頂点は 5 つほどあるはずです。 
([分離ツールの切り替え](Isolate Selection Toggle))をオンにします。[分離ツール](Isolate Selection)がアクティブになると、現在選択されているものだけが表示され、他はすべて非表示になります。このオプションを使用したときは、頂点の選択後、[分離ツール](Isolate Selection)をオフにしてください。 これにより、選択した頂点が Z 軸方向の平均位置に移動し、すべて同じ高さになります。しかし、これだと瓶の底よりわずかに高くなります。


これにより、編集されたカスタム メッシュ ソース オブジェクトの構造が瓶の物理的シェイプにコピーされます。
を押して、メッシュのソースを削除します。もう一度、瓶オブジェクトを選択します。 差し当たりメッシュのソースは必要なくなりましたが、[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトの[メッシュ オブジェクトを抽出](Extract Mesh Object)機能を使用して、物理的シェイプからまた簡単に取得することができます。
シミュレーションを開始します。 瓶がひっくり返ることなく床に落ち、まっすぐに立って静止するはずです。
をクリックして[MassFX ツール](MassFX Tools)ダイアログを開き、[ワールド パラメータ](World Parameters)パネルを開きます。[シーン設定](Scene Settings)ロールアウトで、[リジット ボディ](Rigid Bodies)
[サブステップ](Substeps)を 2 以上に設定します。 現在の位置でタイム スライダが止まります。
[シミュレーション ツール](Simulation Tools)パネルを開き、[シミュレーション](Simulation)ロールアウトで、[キャプチャ変換](Capture Transform)ボタンをクリックします。 これにより、瓶の最初の変換(シミュレーションの開始位置)が現在の位置に設定されます。
をクリックしてシミュレーションをリセットします。 瓶が静止します。
カーテンの設定を行います。

左: レフト ビューポート
.右: トップ ビューポート
これらの設定は、前出の図に示してあります。
これにより、メッシュの解像度が高くなり、布地が一層リアルに曲がったり折り重なったりするようになります。
([選択を mCloth オブジェクトとして設定](Set Selected As mCloth Object))をクリックします。 これで、平面がシミュレーションで 1 枚の布のように動作します。

カーテン マテリアルの動きは、あまり滑らかではありませんでした。

今度は布地の動きがもう少し自然になりました。
次に、カーテン レールを作成し、そこにカーテンをアタッチします。

モディファイヤ スタックで[mCloth]エントリを展開して、[頂点](Vertex)サブオブジェクト レベルを表示します。[頂点](Vertex)エントリをクリックします。 
[修正](Modify)パネルが変わり、[ソフト選択](Soft Selection)ロールアウトと[グループ](Group)ロールアウトが表示されます。そして、ビューポートにカーテンの頂点が表示されます。

メイン画像: 頂点の最上行が選択された、レフト ビューポート内のカーテン
.インセット: [修正](Modify)パネルの[グループ](Group)リスト
[グループ](Group)ロールアウトのリストには、たった今作成したグループ(Group001)とその未割り当てステータスが表示されています。グループにノード コンストレイントを割り当てます。これにより、シミュレーション時にこれらの頂点がカーテン レールに「くっつく」ようになります。
[コンストレイント](Constraint)グループで、[ノード](Node)ボタンをクリックし、ビューポートのカーテン レールを選択します。 リストの Group001 項目に、ノードとして Cylinder001、つまりカーテン レールにコンストレイントされると表示されます。
今度はカーテンが所定の位置に留まります。
[風](Wind)フォースを追加します。

パース ビューポートで選択された[風](Wind)スペース ワープ
[作成](Create)パネルで、
([スペース ワープ](Space Warps))をクリックします。
[フォース](Forces)ロールアウトで、[追加](Add)をクリックし、[風](Wind)スペース ワープを選択します。 スペース ワープの名前が[シーン フォース適用](Scene Forces Applied)リストに表示されます。

これで、カーテンがシミュレーションで風の影響を受けるようになります。しかし、他のオブジェクトは影響を受けません。
カーテンは少し動きます。しかし、既定の[強さ](Strength)設定(1.0)の風では、カーテンに大きな影響を与えるには力が足りません。
[パラメータ](Parameters)ロールアウトで、[強さ](Strength)を 50.0 に設定します。 今度はカーテンが瓶に向かって力強くはためくようになりました。しかし、押す力が十分ではないため瓶は動きません。

[プッシュ](Push)の値を増やせば、カーテンがはためいて瓶が倒れるようになります。

カーテンで一部のアイテムだけ倒し、他のアイテムは倒さないようにする必要がある場合は、一部のアイテムを倒すのに十分な値を[プッシュ](Push)に設定し、重いアイテムの[密度](Density)を増やすことができます。
[修正](Modify)パネルで[物理的マテリアル](Physical Material)ロールアウトに移動して、[密度](Density)の値を調整します。これを最も簡単な方法で行うには、スピナーを右クリックします。 
これでシミュレーションを実行すると、瓶が[風](Wind)スペース ワープの力を直接受けなくても、カーテンによって瓶がはね飛ばされるようになります。
ご覧のとおり、このような簡単なシミュレーションでも、遊ぶことのできる変数がたくさん存在します。さまざまな設定を試し、調整を重ねれば、MassFX と mCloth を使って比較的簡単にリアルなアニメーションやシュールなアニメーションを実現できるようになります。
作業を保存する:
このレッスンで説明した MassFX の設定(ベイク処理されたアニメーションを除く)は、mcloth_final.max ファイルに含まれています。
シミュレーションの開始時に、最も効率的にサーフェスにダイナミック リジット ボディを配置するには、キャプチャ変換機能を使用します。
リジット ボディを安定させるため、場合によっては、カスタム シェイプ タイプ ツールを使用して物理的シェイプを微調整する必要があります。
布地オブジェクトをシミュレーションに全面的に参加させ、他のオブジェクトと相互に影響し合うようにできます。また、[風](Wind)などの[フォース](Force)スペース ワープの影響を受けるようにすることもできます。