4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnrealEngineでStyle3Dクロスシミュレーションを使う

Last updated at Posted at 2024-12-05

Style3D概要

Clothシミュレーションの一種です。UnrealEngine用のプラグインがあります。

NewLevelSequence.3575.jpeg

使用例

色々ソフトが出ていますがAteilerとSimulatorを使います。
Ateilerで服を編集しUE内でSimulatorを使います。

料金

30日間無料
image.png

公式

サンプル

ドキュメント

いいところ

  • 服のサンプルが多い。これをベースに加工してUEに持っていける。

  • UE上でAnimationのキャッシュが取れる。要求スペックに多少満たなくてもまぁ動く。メモリ32GB+RTX2060では動いた。リアルタイムでも動くがこれにはスペックが必要。

image.png

  • パーツごとに当たり判定を調整できる
    image.png

  • 公式Discordが丁寧
    聞くと結構答えてくれる(要英語)。

導入手順

アバターに服を着せてアニメーションを設定する手順を説明します。

動画

環境

  • Windows11
  • Unreal Engine 5.4
  • メモリ32GB
  • GPU RTX 2060

環境構築

公式ドキュメント(英語)があるのでこちらを参照しつつ補足していきます。
公式ドキュメントの該当する項のリンクを貼っています。

公式ドキュメントに従いStyle3D Simulator Pluginを追加します。

Free TrialよりPluginをDownloadして該当のバージョンの物をPluginフォルダ以下に配置します。
image.png

image.png

Style3D Ateilerをインストールします。
https://atelier.style3d.com/en/home
image.png

アニメーション付きのアバター準備

Animation付のアバターを準備します。今回はVRoidを使いました。アバターからは服を外しておきます。VRoidはその辺りの操作が出来るので都合がいいですね。アニメーションは以下のページの概要欄で配布されているものを適応しました。

image.png

服の準備

着せる服を準備します。主に以下の順に進みます。

  1. UEからデフォルト姿勢のObjを書き出し
  2. Atelier上で服の追加とフィッティング
  3. フィッティングした服をUEにインポート

服作成用のアバターの書き出し

Simulator上で服を着せるためのアバターを準備します。Aポーズだと都合がいいです。初期値がAポーズではない場合は、AポーズになるAnimationを準備してください。

image.png

ドキュメントに従いStyle3Dコンポーネントを追加します。

image.png

Export Obstacleを選択すると現在のポーズでObjが出力されます。
image.png

Ateiler上で服の装着

Ateilerを起動し、使用したい服をインポートします。

このボタンを押すと服のサンプルが開きます。
image.png

「Download from Cloud」を押すとWeb上のサンプルを追加することができます。
image.png

image.png

今回はアバターとシーンもインポートします。
image.png

アバターが表示されていない時はここから切り替えられます。
image.png

先ほど書き出したアバターをインポートします。
image.png

デフォルトのアバターを消して、アバターに合うように調整します。
パターンを編集してサイズを調整します。変形はハードル高いですが裾上げたり、ウェスト詰めたりくらいは容易です。

image.png

image.png

少し埋まっている、間隔が空いているような状態でも、シミュレーションをOnにするといい感じになります(ここ気持ちいいポイント)。

image.png

image.png

画像右上の再生マークがシミュレーションボタンです。
image.png

ウェストが緩いと下がってきがちなので極力詰めた方がいいです。
image.png

上半身を追加します。ここを追加にしないと現在のシーンが消えます。

image.png

image.png

UE側で上半身、下半身をそれぞれ読み込むようなプロパティ(Multipl Garment)がありますが、2024年7月時点では正常に動いていなさそうだったので、上半身下半身まとめて1つの服として扱います。

サイズを調整します。半袖で腕を振り回すと、袖口があまり綺麗に見えなかったので肩部分を消してタンクトップにします。場所によってはパーツとパーツを縫い合わせるような処理が入っているので、設定から切り離す作業が必要そうですが現状よくわかっていないので割愛します。今回はDeleteキーだけで消えました。
image.png

サイズを詰めてシミュレーションします。
image.png

image.png

いい感じ
image.png

Aラインっぽい服装好きです。
image.png

書き出し

書き出し前にUVを0~1に揃える必要があります。
「ツール/UVエディター」を選択→「配置」を選択します。
image.png

image.png

クイックスタートガイドに従って頂点数を減らしたのちに書き出します。クイックスタートには50000以下とありますが、PCのスペックによってはもう少し下げた方がUE上で安定します。

アバターはいらないのでOFFにします。
image.png

UEで読み込み

UEで読み込みます。
https://meiguoshiyous-organization.gitbook.io/untitled/quick-start#import-smd-to-unreal-engine

以下の手順です。

  1. 服のインポート
  2. 当たり判定の設定
  3. アバターにアニメーションの適応
  4. アニメーションを付けたアバターにフィッティング
  5. アニメーションのキャッシュ
  6. 服のパラメーターの調整(繰り返し)
  7. アニメーションのキャッシュ(繰り返し)
  8. キャッシュしたアニメーションの再生

アニメーションをキャッシュせずリアルタイムで動かすこともできますが、PCのスペックの関係上動かなかったので今回はキャッシュしています。

当たり判定の設定

多くのアニメーションでは「手がズボンの中に埋まる」「右足がズボンの左裾を貫通する」等の動きが含まれるので当たり判定の設定を行い、服の各パーツが身体のどこと衝突するか設定する必要があります。

image.png

服のパーツと体のパーツにそれぞれ当たり判定を設定して、不必要な干渉が起きないようにします。

ペイントモード(UE標準機能)で身体を塗っていきます。
https://meiguoshiyous-organization.gitbook.io/untitled/collision-filter#tmchz

Tips : 既にAnimationが適応されていて塗りづらい場合は「UserRef Pose on Init Anim」を押すと初期ポーズになります。
image.png

同じ値で塗ってほしいので、Strengthを1、Falloffを0にする必要があります。
image.png

image.png

「2. Automatically set Collision Filters for garments」に従い、当たり判定を設定します。
自動で当たり判定が設定されますが、アバターがAポーズであることが前提となっています。

手動でも設定することができます。「1.Manual adjustment of Collision Filter」以降に記載があります。

髪の毛部分のマスクの適応

これだけだと髪の毛が引っかかるのでカスタムでマスクを当てます。
image.png

服の「Collision Group」と「Collision Mask」を適応します。先ほどの自動設定で設定された項目もこちらです。

それぞれに対する公式からの説明は以下の通りです。

A human mesh be set in Collision Group does not contact the parts of the clothing be set in Collision Group A; A human mesh be set in Collision Mask contacts the parts of the clothing be set in Collision mask A. Both need to be set manually.

以下の作業を行います。

  1. 髪の毛をCustom Collision Groupに追加します。
  2. TシャツをCustom Collision Groupに追加します。
  3. TシャツをCustom Collision Maskから除外します。

使われていない微妙な色で髪の毛を塗ります。
image.png

image.png

image.png

Style3DコンポーネントのCollisionGroupにNameを「Hair」、Collision Groupを「Custom」として追加し、先ほど塗った色を設定します。
image.png

インポートした服を開き、CollisionGroupの「Custom」にチェックをいれます。
image.png

Collision Maskから「Custom」のチェックを外します。
image.png

以上で当たり判定の設定が完了です。

腕、髪の毛、足が引っかかりがちです。後の工程でアニメーションを再生した際に不都合が生じた場合は再度設定しなおす必要があります。

image.png

一度Animationのキャッシュが取れたらこの当たり判定はなくなっても問題ありません。

ポーズのフィッティング

アバターにAnimationを適応させると服を着せた時とズレるので、服が合わなくなります。そのためPose Fittingを行う必要があります。

image.png

ドキュメントの以下の部分に従いフィッティングを行います。
https://meiguoshiyous-organization.gitbook.io/untitled/character-posefitting

ポーズのフィッティングに関する補足

アバターの初期値(Animationをつけていない状態)がAポーズでない場合、以下の位置にAポーズになるようなAnimationを設定します。

VRM4Uプラグインを入れている場合は「A_VRoidSimple_Apose」がPluginに含まれているので使用すると都合がいいです。

image.png

PoseFittingはLoginされていないと実行されません。
image.png

PoseFitを押すと「A Pose Asset」にアニメーションを適応した場合はその姿勢から、適応していない場合はアバターの初期値から、アニメーションの開始地点まで自動でアニメーションします。

Ateiler上で服を着せた際の姿勢から、アニメーション開始時の姿勢までアニメーションするので、服のズレを相殺することができます。

ここで設定している「Style3DGarmentCapture」に今から保存するクロスシミュレーションのキャプチャが保存されます。これはデフォルトではDerivedDataに保存されているようなので、うっかり消さないよう気を付けた方がいいです(2敗)。

image.png

image.png

image.png

Animationのキャッシュ

ドキュメントに従いアニメーションをキャッシュしていきます。キャッシュファイルの名前を入力します。

Animation Cacheを押してアニメーションをキャッシュしていきます。
キャッシュが完了するまで待ちます。
途中で崩れるとやり直しです。服のパラメーターを調整してください。

途中にある無理なポーズで崩れて全部推し直しになりがちなので、事前にアニメーションを分割して適切なパラメーターをしてから通しでキャッシュをとる方がいいと思います。

パラメーターの設定

アニメーション中に崩れないように服のパラメーターを調整します。

主に触ったのは以下のパラメーターです。

Weight
image.png

Tシャツがめくれ上がっていく問題が改善します。最大値まで上げました。

Thickness
image.png

服を突き抜ける問題が改善しました。いくらか上げました。

Stretch Warp/Weft/Bias

image.png

服が避ける問題が改善しました。いくらか上げました。
image.png

パーツごとに設定できるのでそれぞれいい感じにします。

Animatoionの再生

Animationを再生します。
モードを「Chache Play」に切り替えて、保存時に指定した名前を入力するとロードされます。
「Cache Play」に切り替えずにRecord ModeのままBegin Playすると上書きされます(3敗)。

結果

服のシワがちゃんと出るのいいですね。

image.png

image.png

あとウェストと服の間の隙間がちゃんとできるのすごい。
image.png

ライティングとVRMのマテリアルの設定、Kawaii Physicsの調整を詰めればもう少し改善しそうです。

その他気を付けること

  • 服の一部が硬直する不具合がありました。最終的に解消しなかったので別の服でやり直したところ、同じ手順で正常に動作しました。服のSampleの設定の問題か、頂点数が多すぎることが原因ではないかと考えています(未解決)。

image.png

その他のClothシミュ

使ったことがないので知りたい

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?