[布地](Cloth)モディファイヤは、Cloth システムの中核であり、Cloth シミュレーションに含める必要のあるシーン内のオブジェクトすべてに適用されます。このモディファイヤで、布および衝突オブジェクトの定義、プロパティの割り当て、シミュレーションの実行を行います。その他にも、コンストレイントの作成、布の対話的なドラッグ、シミュレーションの一部の消去などの制御機能が含まれます。
左: [布地](Cloth)モディファイヤが適用される前
右: [布地](Cloth)モディファイヤが適用され、シミュレーションが実行された後
布地のシミュレーションでは、どのオブジェクトがシミュレーションに含まれ、どのオブジェクトがシミュレーションに含まれないかを布地に指示します。その後で、オブジェクトの素材を定義します。どのオブジェクトが布で構成され、どのオブジェクトがソリッドな衝突オブジェクトであるかを指定できます。
布地はモディファイヤであるため、そのインスタンスは布地のシミュレーションに含められる各オブジェクトに割り当てられます。これには、すべての布オブジェクトおよび衝突オブジェクトが含まれます。[布地](Cloth)モディファイヤの異なる 2 つのアプリケーションで使用される 2 つの布オブジェクトは、互いにやりとりをしないことに留意してください。オブジェクトをシミュレーションに含めるには、次の 2 つの方法があります。
衣服のシミュレーションを行う場合、サイズを考慮することは重要です。非常に大きな旗とハンカチとでは、動作が異なります。スケールがオフの場合、シミュレーションはオフになります。布地は現実世界の物理現象をシミュレートするため、現実世界の単位で動作します。これは、布地が、3ds Max の単位と独自世界の単位との関係を理解する必要があることを意味します。
例として、10 x 10 の 3ds Max 単位の平面を作成する場合を考えましょう。 この平面を 10 インチ x 10 インチのハンカチとして動作させる場合、1 3ds Max 単位 = 1 インチであることを布地に通知する必要があります。 この平面を 10 フィート x 10 フィートのベッド シーツとして動作させる場合は、1 3ds Max 単位 = 1 フィートであることを布地に通知します。
このセクションの冒頭で述べた場合を除き、布地は 3ds Max システム単位設定([カスタマイズ](Customize)メニュー [単位設定](Units Setup) [システム単位設定](System Units Setup))を無視します。 布地が保持する独自の単位設定は、布地の[シミュレーション パラメータ](Simulation Parameters)ロールアウトの[cm/単位](cm/unit)パラメータで設定します。これは、各 3ds Max 単位に対応する長さをセンチメートル(cm)で布地に伝達します。 1 インチは 2.54 cm です。このため既定値の 2.54 は 1 3ds Max 単位が 1 インチに相当することを意味します。
使用する設定値を決定する手順について、以下に説明します。
以下に簡単な例を示します。man.obj ファイルを 3ds Max に読み込み、それにシャツを着せます。
Cloth では、さまざまな方法で布地の動作を設定できます。布の動作を皮革、絹、黄麻、およびこれらの中間にある任意の素材に設定できます。
すべてのパラメータの設定が完了したら、次の段階はシミュレーションの実行です。多くの場合、最初にローカルのシミュレーションを実行して、布地をキャラクタに適合させます。布地が所定の位置に配置されたら、時間の経過に合わせてシミュレーションを実行できます。
Cloth では、非常に自由な形式でシミュレーションを実行できます。シミュレーションには、多くの変更や編集を加えることができます。これは、クリックするだけで後は「最善の結果になることを期待する」ようなシナリオとは異なり、多くの作業がユーザの手に委ねられることを意味します。
布地にさまざまな方法で制限を加えて、異なる布地の効果をシミュレーションで作成できます。布地を使って制限を加えると、空中をはためく布に特別な抵抗力を加えたり、シーン内のスペース ワープの影響を布に及ぼしたりできます。布地の一部をアニメートするオブジェクトにリンクしたり、サーフェスにアタッチするのも、一般的なコンストレイントです。パンツを作成する場合、パンツの最上部の動きをキャラクタの腰に制限したり、カーテンの動きをカーテンレールに制限したりできます。コンストレイントは、布地の非常に重要で堅牢な部分です。布地では、制限を加えられた複数の頂点グループに非常に大きな柔軟性を持たせることができます。衣服のさまざまな部分を、それぞれ異なるノードのサーフェスまたはその他の布オブジェクトに制限できます。
モディファイヤのグループ サブオブジェクト レベルで、布地内にコンストレイントを作成します。このレベルでは、選択したすべてのオブジェクト(布と衝突の両方)の頂点を表示できます。次に、これらを選択して、グループ内に配置します。グループの定義が完了したら、次に選択セットを別のオブジェクトにアタッチ(制限)したり、外部フォースの影響を受けるようにできます。
布を裂くことができます。手順の一例については、こちらの手順を参照してください。
布は、次のような状況においてシミュレーションの過程で裂かれます。
[強度](Strength)または[裂けしきい値](Tear Threshold)の値(同じです)によって、布がどれほど簡単に裂けるかを設定できます。
シミュレーションを実行する前に、布が裂ける場所を指定する必要があります。その方法はいくつかあります。
「[シーム](Seams)サブオブジェクト レベル(布地)」、「[カーブ](Curves)サブオブジェクト レベル(服飾メーカー)」、「[縫い目](Seams)サブオブジェクト レベル(服飾メーカー)」を参照してください。
「[グループ](Group)ロールアウト(布地)」を参照してください。
「[グループ](Group)ロールアウト(布地)」を参照してください。
[ポイント キャッシュ](Point Cache)モディファイヤを使用して Cloth のアニメーションを最適化する場合は、裂ける前に前に裂け目が正しくスムージングされない可能性があります。この問題を修正するには、Welder モディファイヤをスタックに追加します。[連結化](Welder)を[ポイント キャッシュ](Point Cache)モディファイヤの上に配置します。
例: [シェイプを保持](Keep Shape)オプションを使用するには:
布オブジェクトが 3D シェイプであり、シミュレーション時にその状態を維持する場合、[シェイプを保持](Keep Shape)オプションおよび設定を使って、このシェイプを保存したり反転したりできます。ここでは、[シェイプを保持](Keep Shape)の単純な使用例を示します。
これにより、初期状態のチューブ状シェイプが生成されます。
[重力](Gravity)をオフにすると、布オブジェクトがシミュレーション時に落下することを防いで、視界にとどめておくことができます。また、[cm/単位](cm/unit)の設定により、比較的大きな平面サイズも補正できます。
[オブジェクト プロパティ](Object Properties)ダイアログ ボックスが表示されます。
これにより、[V ベンド](V Bend)も自動的に 500.0 に設定されます。
ベンドに大きな値を使用すると、シミュレーションが高速に処理されます。
次に、オブジェクトごとに異なる[シェイプを保持](Keep Shape)プロパティを設定します。
数秒後に、don't keep shape オブジェクトは平らになり始め、keep shape オブジェクトには変化がなく、reverse shape オブジェクトはシェイプが反転して、ベンド角度が負になります。
例: 一枚の布を裂く:
2 つのダミー オブジェクトを平面に配置
布地の裂け目を作成するために選択された中央の頂点
3ds Maxで布地の平面の中央にある頂点で構成された新しい連結コンストレイントが作成されます。
[裂け目を作成](Make Tear)をクリックした後
3ds Max によって布地を引っ張るダミーがアニメートされます。 このとき、裂け目として設定した頂点に沿って布地が裂けます。
両端が引っ張られて中央で裂けた布地
ダミー オブジェクトの位置によっては、実際に表示される裂け目はこの図と異なる場合があります。
ネットワーク上のレンダリング ファームを使用して布のシミュレーションを実行するには:
複雑な布のシミュレーションには、大量の計算および長い時間が必要になる場合があります。布地には、ネットワーク上のマシン(レンダリング ファームの一部)でシミュレーションを簡単に実行可能にするコマンドが含まれています。これらのコマンドを使って自分のマシンの処理能力を確保し、シーンの別の部分の作業を行うことができます。
最良の結果を得るために、マッピングされたドライブを指定し、[フォース UNC パス](Force UNC Path)をオンにします。これにより、ユニバーサル命名規則を使ってパスが指定され、ネットワーク上のすべてのコンピュータから検出できるようになります。また、すべてのキャッシュ ファイルを同じディレクトリ内に格納するのも良い方法です。
レンダリングとは異なり、ネットワークでの布地のシミュレーションを、複数のサーバ マシン間で分割することはできません。
サーバ マシンがレンダリングを始めると、すぐにシミュレーションの計算が開始されて、ディスクに保存されます。任意の時点で[ロード](Load)ボタンをクリックすることで、現状のシミュレーションをキャッシュ ファイルからロードして、進捗状況を確認できます。