共同開発を経て、私たちは、コミュニティに向けて2つの新機能を導入したことを嬉しく思います:LiveSyncプラグインとUSDエクスポートシミュレーションデータです。この記事では、これらのパワフルな機能がどのようにワークフローを向上させるかを探っていきます。
LiveSyncプラグインとUSDエクスポートシミュレーションデータは、どちらもMarvelous DesignerとUnreal Engineを頻繁に行き来するユーザーのために設計されていますが、それぞれ異なる目的を持っています。
- LiveSyncプラグイン: この機能は、面倒なインポートとエクスポートのプロセスを簡素化することを主な目的としています。メッシュ、マテリアル、スケルタルアニメーション、ジオメトリキャッシュのすべてをワンクリックでインポート・エクスポートできます。
- USDエクスポートシミュレーションデータ: Unreal Engine 5.4の更新されたChaos Cloth機能と連携するように特別に設計されており、このツールによってリアルタイムシミュレーション効果を実現し、Marvelous Designerの複雑な衣装物性情報を直接Unreal Engineに変換することができます。
妖精のキャラクターアニメーションシーケンスを例に、これらの機能がデザインとアニメーションのワークフローをどのように向上させるかを詳しく見ていきましょう。
Marvelous Designerでの妖精の衣装デザイン
Unreal Engineに移る前に、Marvelous Designerで妖精の衣装をどのように制作したのかを見ていきましょう。
1. シンプルなTシャツをベースから始めます
Marvelous Designerには、衣装制作を始めるための複数の方法があります。このプロジェクトでは、ベースとしてTシャツのパターンを2Dウィンドウにドラッグすることから始めました。スタイルラインツールを使用することで、3Dウィンドウで直接パターンを調整し、Tシャツを全く異なるスタイルに素早く分割・修正することができ、その変更は2Dパターンにリアルタイムで反映されます。
2. レイヤーと生地シミュレーション
Marvelous Designerは多層衣装のシミュレーションに優れています。妖精の衣装では、アンダースカートのパターンを複製し、内部ラインを使用してレース細工を追加しました。各レイヤーが衣装の立体的な見た目に貢献しています。異なる生地物性をシミュレートするために、Marvelous Designerの77種類の生地プリセットライブラリからMuslin(モスリン)生地プリセットを追加し、シミュレーション中のスカートのひだや流れを変化させました。
3. 花びらパターンとプリーツ効果の作成
多角形ツールを使用して写真からスカートの花びらの形をトレースし、内部図形 / 線ツールとプリーツツールでアコーディオンプリーツ効果を適用しました。結果として、美しい質感と動きを持つエレガントな多層スカートが完成しました。Marvelous Designerの新しいPBRマップジェネレーターのおかげで、ワンクリックでテクスチャマップ(ノーマル、不透明度、メタルネス、ディスプレイスメント)を自動生成することもでき、さらにリアリズムを向上させることができました。
4.フリルとトップステッチの追加
仕上げのタッチとして、長いパターン線を短い線に縫い合わせることでフリルを作成しました。そして、ステッチツールを使用して、衣装のリアリズムを高めるステッチの細部を追加しました。
衣装デザインとMarvelous Designerでの初期シミュレーションが完了したら、アニメーションのキャッシュに進みます。
アニメーションキャッシュ
まず、ピンツールを使用して、パターンピースの線をダブルクリックすることで、衣装の特定部分をアバターメッシュに固定し、ライン全体を素早くピン留めします。タックツールは、生地をモデルに拘束する別の方法であり、生地とモデルの間の距離を制御する長さ調整も可能です。
アニメーションをキャッシュするために、シミュレーションプリセットをアニメーションに変更し、重力値を下げ、空気抵抗を増やして妖精らしい浮遊効果をシミュレートします。すべての設定が整ったら、記録をクリックしてアニメーションキャッシュの記録を開始します。このキャッシュはすべての必要なアニメーションデータを保存し、後でUnreal Engineにすべてのシミュレーション効果を保持したまま完全な忠実度でエクスポートすることができます。
カラーユリの作成
シーンの植物もMarvelous Designerでモデリングとシミュレーションを行っています。アニメーション記録プロセス中に、風の位置と角度をリアルタイムで調整して、これらの自然な動的効果を作成することができます。
Marvelous Designerのキーフレーム編集ツールを使用することで、フレームスキップのない完璧なループアニメーションを作成することができます—ゲーム内シーケンスに理想的です。ビデオ編集ツールと同様に、レイヤーをカットしたり水平に移動したりすることができます。最初のフレームをコピーしてアニメーションの最後に貼り付けます。アニメーションの最後のフレームが最初のフレームにブレンドされ、完璧なループアニメーションが作成されます。
アニメーションが完成したら、妖精の衣装とカラーユリの両方をLiveSyncプラグインを使用してUnreal Engineにインポートし、このファイルにはマテリアル、アニメーション、テクスチャの精度が維持されます。
LiveSyncを使用したUnreal Engineへの転送
妖精の衣装が完成したので、LiveSyncプラグインを使用してアニメーションをUnreal Engineに取り込みましょう。
LiveSyncをインストールして有効化した後、Marvelous Designerが実行中であることを確認し、Unreal EngineでLiveSync Editorを開いて、「更新」ボタンをクリックします。
Marvelous Designerのシーンが LiveSync Editorにインポートされます。エディタでは、Marvelous Designerで割り当てられた生地に基づいて、シェーダーボールが自動的に作成されているのが確認できます。また、Unified Material(統合マテリアル)を有効にすることもできます。もう一度更新をクリックすると、プラグインはUV座標に基づいて統合マテリアルを生成します。
LiveSyncプラグインの機能はインポートに限定されません。MetaHumanキャラクターや任意のスケルタルメッシュを Unreal Engineとの間でエクスポートすることができ、キャラクターの衣装の作成とシミュレーションが容易になります。
すべてのアセットが正常にインポートされたら、Unreal EngineのSequencerを使用して最終シーンのアニメーションとレンダリングを行いました。妖精の衣装、羽、カラーユリなどの環境要素はすべてMarvelous Designerでモデリングとシミュレーションを行い、LiveSyncプラグインを介し てUnreal Engineと同期されました。
Chaos ClothとUSDエクスポートの活用
LiveSyncプラグインは、Unreal Engineを使用したアニメーションのレンダリング、映像やシネマティックの作成に適しています。また、このシーンのカラーユリのような環境アセットをMarvelous Designerからインポートする際にも使用できます。しかし、リアルタイムの生地シミュレーションを求めるユーザーにとって、Marvelous DesignerのUSDエクスポートシミュレーションデータは非常に価値のあるものであり、特にUnreal EngineのChaos Clothと組み合わせた場合に威力を発揮します。プロセスを詳しく見ていきましょう:
Chaos Clothのための最適化: 複雑なレイヤー構造を持つ妖精の衣装は、Unreal Engineにインポートする前に最適化が必要でした。ドレスをスキンメッシュ、シミュレーションメッシュ、レンダーメッシュの3つの部分に分割しました。
自動リトポロジーとリギング: シミュレーションに必要のない衣装は、キャラクターの体にスキニングされます。体にフィットする衣装はシミュレーションに追加する必要はありません。Marvelous DesignerのEveryWearを使用して、自動リトポロジーとリギングを実行しました。EveryWearは、ゲーム用バーチャル衣装の自動最適化ツールキットです。Marvelous DesignerのQuad Optimize オプションで自動リトポロジーを実現できます。また、EveryWearツールを使用してポリゴン数を削減できます。リギング機能もEveryWearツールセットの一部です。まず、影響を与えるジョイントの最大数を指定します。Unreal Engineは最大8つのジョイントをサポートしているため、8に設定します。「Apply」をクリックすると、ボディメッシュのウェイトが自動的に衣装にコピーされます。スキンウェイトはブラシツールを使用してペイントやスムージングができます。また、スカルプティングツールセットのハンマーツールと修復ブラシを使用して、干渉を修正できます。
この妖精のドレスの主な課題は、花びらスカートに多くのレイヤーがあり、重くて複雑なことです。スカートを最適化するために使用したアプローチは、ジオメトリの代わりにテクスチャを通じて複数のレイヤーを表現することでした。まず、スカートを2つの部分に分割して展開しました。次に、簡略化されたプロキシモデルを作成し、正投影ビューを使用して異なるAOVチャンネルをテクスチャマップとしてレンダリングしました。これにより、ジオメトリを大幅に単純化しながら、テクスチャによってレイヤーの複雑さの錯覚を生み出すことができました。
(左の画像はMarvelous Designerで展開されたスカートを示し、右の画像はこれらのレイヤーがテクスチャを使用してどのように表現されているかを示しています。)
ポリゴン数の最適化
モデルをさらに最適化するには、ポリゴン数を削減する必要があります。これを行う一つの方法は、Marvelous Designerで粒子間隔を増やすことです。3Dで生地をシミュレートする際、ランダムな三角形はより自然な見た目のシワを作成する傾向があります。Unreal EngineのChaos Clothでは四角形ポリゴンの代わりに三角形ポリゴンを使用することがうまく機能するため、リトポロジーや四角系ポリゴンへの変換は必要ありません。単に粒子間隔の値を増やすことで、面の数を減らすことができます。もう一つの重要な要素は、衝突の厚さを増やすことで、これにより生地層間の分離が大きくなります。この場合、Chaos Clothでより良い結果を得るために、衝突の厚さをデフォルトの2.5mmから5mmに増やしました。
USDファイルのエクスポート
モデルが最適化されたら、USDファイルをエクスポートできます。エクスポート設定で、すべてのアバターのエクスポートのチェックを外し、複数のオブジェクトを選択し、「厚さ」オプションと統合UV座標を有効にします。重要なのは、衣服シミュレーションデータを含めるオプションを有効にすることです。これにより、収縮や衝突設定などのMarvelous Designerで割り当てられたすべての物性が保持され、Unreal EngineのChaos Clothで読み取ることができます。
Unreal EngineでのClothAssetセットアップ
Unreal Engineに戻り、ClothAssetを作成する必要があります。Marvelous DesignerからエクスポートしたUSDファイルをインポートし、Marvelous Designer LiveSyncプラグインを使用してインポートしたスケルタルメッシュを選択します。このプロセスで衣装をキャラクターにスキニングします。プレビューシーンで、同じスケルタルメッシュを再度選択していることを確認してください。
最大距離のウェイトペイント
次に、最大距離プロパティのウェイトをペイントします。これは、生地のどの部分がシミュレーションされるかを制御します。0の値でペイントされた領域は、シミュレーションされず、代わりにキャラクターの体に直接スキニングされる領域を表します。スムースブラシを使用してウェイトのグラデーション効果を作成します。2Dビューまたは3Dビューでウェイトをペイントできます。2Dで作業する場合、パターンのレイアウトと配置はMarvelous Designerの2Dウィンドウと同じです。ウェイトペイントを容易にするために、USDファイルをエクスポートする前にパターンのレイアウトをする際に念頭に置いてください。パターンピースは互いに近すぎたり重なったりしないようにする必要があります。ウェイトペイント後、「Accept」をクリックしてシミュレーション結果をプレビューします。
ペイントしたウェイト値は、SimulationMaxDistanceConfigノードを使用して調整できます。このノードは最高値と最低値を制御します。最大値を下げることで、シミュレーションをさらに最適化できます。
生地の物性プロパティ
次の3つのノードは、生地の物性プロパティを定義するために使用されます。通常、生地プロパティの調整は生地シミュレーションで最も複雑な部分ですが、Marvelous Designerから物性プロパティをエクスポートしたため、このステップはより簡単になります。各パラメータの矢印アイコンを有効にすることで、Marvelous Designerからインポートした生地プロパティを直接使用できます。
さらに、ノードの横にある衣装アイコンを使用すると、Marvelous Designerで生成されたウェイトマップを使用できます。Marvelous Designerで異なるパターンに異なる生地プリセットが適用され、ウェイトマップはUSDファイルと共に自動的にエクスポートされます。
衣装がアバターの体と衝突するようにするには、物理アセットを作成する必要があります。このアセットはUnreal EngineのSetPhysicsAssetノードに追加する必要があります。
生地シミュレーションのその他の重要なノード
- SimulationCollisionConfig: 生地の厚さと摩擦を制御します。矢印アイコンを有効にすると、Marvelous Designerからインポートされた値が使用されます。
- Self Collision: 最適化のためデフォルトでは無効です。有効にすると、球体を使用した基本的な自己衝突が可能になります。または、SimulationSelfCollisionConfigノードを通じて、より正確だがコストの高い衝突を使用できます。
- SimulationSolverConfig: このノードはSolverのグローバル設定を管理します。反復回数を増やすと制約の硬さが強化されますが、CPU負荷が増加します。Substep値を調整すると、より高いCPU負荷と引き換えに衝突の精度が向上します。両方の設定はパフォーマンスと精度のために最適化する必要があります。
シミュレーションに空力効果を追加することもできます。風を導入することで、アイドリングアニメーション中に衣装が自然に動き、キャラクターがより生き生きと見えるようになります。
Level of Detail(LOD)設定
プリセットの最後の部分は、LOD(Level of Detail)設定の構成です。異なるLODは、カメラのキャラクターからの距離に基づいて有効になります。先ほど設定した物性プロパティは、トップコレクションに接続されています。中間のLODコレクションにはメッシュ密度を減らすためのRemeshノードが追加されています。スキニングノードから直接接続された下部コレクションには、動的シミュレーションは含まれません。ゲームプレイ中に常に生地シミュレーションをアクティブにしたい場合は、このコレクションを削除できます。
シミュレーションメッシュとレンダーメッシュの結合
プロキシモデルをシミュレーションに使用した場合、Delete Elementsノードを使用してレンダーメッシュとして削除する必要があります。次に、詳細なレンダーメッシュを静的メッシュとして、またはUSDインポートノードを通じてインポートします。その後、Merge Cloth Collectionノードを使用して、シミュレーションメッシュと新しいレンダーメッシュを結合します。
キャラクターブループリントでの最終セットアップ
キャラクターのブループリントで、Chaos Cloth Componentを追加し、キャラクターに親子付けします。作成したクロスアセットを選択し、必要に応じて位置と回転パラメータを調整します。ブループリントをコンパイルして保存します。
これで、衣装にリアルタイムの生地シミュレーションプロパティが備わり、ゲーム環境で自然に反応するようになります。
シネマティックシーケンスを作成する場合でも、ゲーム内アセットを作成する場合でも、Marvelous DesignerのLiveSyncプラグインとUSDエクスポートシミュレーションデータの組み合わせにより、シームレスで効率的なワークフローを実現できます。これらのツールにより、豊かで詳細なシミュレーションと迅速な反復が可能になり、生産性が大幅に向上します。
これらのツールをご自身で試すために、妖精モデルと衣装は公式CONNECTストアで無料ダウンロードが可能です。これらのファイルは教育目的での使用を意図しており、商用目的では使用できません。
サインインしてコメントを残してください。