DAZ dForce設定 服と布をシミュレーションでフィット

DAZ dForce設定

dForce対応の服とか髪、ってどうやってフィットさせんの?

例えば、市販のdForce髪だとこんな感じ。

Bang Bob Hair with dForce for Genesis 8 Female(s) 

シミュレーション前の、ひどい寝癖のような状態から物理シミュレーションを行い、キレイに顔にフィットしている。dForceは、布や髪の物理シミュレーション機能なのだ。

フィット方法は、基本シミュレーションボタンをクリック。

初見だと、意外と「シミュレーションパネル開いてボタン押す」ということが思いつかないんだなぁ。

DAZ dForce服のフィット方法 ボタンひとつで簡単に着こなす
dForce服の使い方は簡単。Sceneタブで対象の服を選択状態にしたあと、Simulation Settingsタブにて、SimulateボタンをクリックすればOK。 徐々に服が変形していき、良い感じにフィットする。 dForce服のフィ...

また、布に人為的な動きを加えるマグネットツールを使うと、髪を思った方向になびかせたり、スカートをはためかせたり、パンツを脱がしたりできる。

dForce Magnetのチュートリアル スカートやパンツを脱がす
「スカートなどの布をつまんで動かせる」という他愛のないツールだが、見るものが見ればいかがわしい表現に使えるということは1秒でわかると思う。というわけで、親兄弟には絶対見せられないような下品なチュートリアルを作ってみた。

なお、dForceパラメータは以下の3箇所に散在している。ひとつにまとめてよう。

  • Simulation Settingsタブ
  • ParametersタブのSimulation
  • SurfaceタブのSimulation

Simulation Settings 重力やシミュレーション時間など全般dForceパラメータ

dForceの全般的なパラメータは、Simulation Settingsタブで調整できる。

  • Gravity 重力。1.0で地上の重力と同じ
  • Air Resistance 空気抵抗。値が大きいと落下速度が遅くなるっぽい。
  • Initialization Time 初期化時間。うーん?
  • Start Bones from Memorized Pose 初期ポーズからシミュレーション開始するかどうか。人体が服を激しく貫通しているようなポーズでは、ここをオンにするとスムーズに服が変形する。
  • Stabilization Time 安定させる時間?
  • Frames Per Second (FPS) Mutiplier FPS係数?
  • Subframes 1フレームあたりのシミュレーション回数?
  • Iterations ( Per Subframe ) サブフレームごとのシミュレーション回数。
  • Collision Mesh Resolution あたり判定に使うポリゴン形状
  • Colision Mode 当たり判定モード
  • Collision Iterations ( Per Subframe ) サブフレームごとの当たり判定回数

参考)dForce-ここから開始-Daz 3Dフォーラム (英語サイトだが、ブラウザの日本語翻訳でけっこう読める)

ParametersタブのSimulation オブジェクトの物理属性を設定

General→Simulationのパラメータ 物理演算タイプなど

  • Simulation Object Type シミュレーション中での扱い
    • Static Surface 変形せず、重力に影響を受けない固形物 TimeLineでアニメーションは可能。摩擦、衝突が有効になる。
    • Dynamic Surface 変形、重力に影響を受ける布状のオブジェクト
    • Dynamic Surface Add-On 布状オブジェクト同士をつなげる。
  • Simulation Base Shape
    • Use Simulation Start Frame 最初のフレームをSimulation Settingsの内容に従って決める。
    • Use Scene Frame 0 タイムラインの0フレームを使用
    • Use Shape from Simulation Start Frame 開始シェイプをSimulationBase_オブジェクト名と一致するモーフとする。フレームはSimulation Settingsの内容に従って決める。
    • Use Shape from Scene Frame 0  開始シェイプをSimulationBase_オブジェクト名と一致するモーフとする。フレームはSimulation Settingsの内容に従って決める。
  • Freeze Simulation
    • 対象のオブジェクトを一時的に「Static Surface」扱いにする。オブジェクトごとにシミュレーションをかけたいときに便利かも。

Display→Simulationのパラメータ 物理シミュレーションオンオフ

  • Visible in Simulation  OnにするとdForceシミュレーション中で「無いもの」として扱われる。衝突も変形も落下もしない

SurfaceタブのSimulation 面グループごとの物理属性を設定

  • Simulation/Surface
    • Visible in Simulation シミュレーション対象にするかどうか
    • Friction 摩擦 シルク感のスルッとした感じ~革・デニム感のザラッとした感じが出せる
  • Simulation/Structure
    • Dynamics Strength ダイナミクス強度 変化の大きさ。形状をキープしたい場合は値を低くすると良し
    • Stretch Stiffness ストレッチ剛性 値が高いと伸びにくくなる
    • Shear Stiffness (Quads) せん断剛性 値が高いと歪み・ねじれにくくなる
    • Bend Stiffness 曲げ剛性 値が高いと折り目が大きくなる 硬い感じが出る
    • Buckling Stiffness 座屈剛性 値が高いと縮みにくくなる
    • Buckling Ratio 座屈率 値が大きいと簡単に曲がるようになる
    • Density (GSM) 密度 空気抵抗の影響が変わる 30~150 レース・リネン 150~350 サテン、ベルベット 350以上 デニムなど
    • Contraction-Expansion Ratio 収縮膨張比 1.0以上で伸びやすく、1.0以下で縮みやすくなる。1.0未満で体にフィットしやすくなる。
  • Simulation/Structure/Damping
    • Damping 減衰 値を大きくすると変形全般の揺れの収まりが早くなる
    • Stretch Damping 値を大きくすると伸び変形の揺れの収まりが早くなる
    • Shear Damping 値を大きくすると歪みねじれ変形の揺れの収まりが早くなる
    • Bend Damping 値を大きくすると曲げ変形の揺れの収まりが早くなる
  • Simulation/Collision
    • Collision Layer 衝突対象の優先順位付け 重ね着した服などに指定
    • Collide (for testing purposes only) サーフェスの衝突を評価するかどうか
    • Self Collide 自分自身に衝突判定するかどうか 不要ならOffにするとシミュレーション時間が短縮できる
    • Collision Offset 衝突の当たり判定の距離 単位はセンチメートル。小さくするとフィッティングが良くなり、大きくするとオブジェクトの重なりを防止できる。
  • Simulation/Smoothing
    • Velocity Smoothing 加速度スムージング 急激に大きく動いたオブジェクト(爆発しやすい)をスムージング
    • Velocity Smoothing Iterations 加速度スムージングの分割回数。大きくすると、突き抜けや爆発が起こりにくいが遅くなる。

dForce Surface Adjusterで物理パラメータを簡易設定

物理属性の設定は複雑で、初見だと何が何やらさっぱりわからない。そこで、簡易的に設定するためのツールが用意されている。

対象のSurfaceを選択し、画面上部のEditメニュー→Figure→Geometry→dForce Surface Adjusterを選択

下記の設定画面が現れる。

3系統のパラメータだけいじれば、自動的に細かいパラメータに置き換えてくれるというものだ。

  • Stiffer 硬い ←→ Silker 柔らかい
  • Shrink 縮む ←→ Expand 伸びる
  • Stretch 伸縮小 – ←→ Stretch + 伸縮大

実際にパラメータを変えてシミュレーションしたのがこちら。

Stifferを増やすと布が固く、折れにくくシワが少なくなる。Silker方向に値を増やすとシルクっぽく柔らかく変形する。シワも多めにできる。

Shrink方向に値を増やすと縮みやすくなり、Expand方向に値を増やすと伸びやすくなる。

Stretchは、単体では違いがわかりづらいけど、ShrinkまたはExpandと合わせて使うと「伸縮しやすさ」が変わる。値が大きいと伸びっぱなしまたは縮みっぱなしに、値を減らすとゴムのように元に戻ろうとする感じだろうか。たぶん。

なお、それぞれの値は相対的なものだ。最初にShrinkボタンを5回クリックしてから画面を閉じ、もう一度画面を開いてShrinkボタンを5回クリックすると、Shrinkを10回クリックしたのと同じことになる。

今の値がどうなっているかわからない点がデメリットだけど、とりあえず見た目にすぐ結果が反映するのはありがたい。

dForce Weight Node Modifierでウェイトマップ指定

金具や固い箇所、物理演算させたくない場所は、ウェイトマップを指定することで物理演算の対象から外すことが可能。

対象のオブジェクトを選択状態にして、画面上部のCreateメニューから、New dforce Modifier Weight Mapをクリック。

Tool Settingタブにて、Active ToolをNode Weight Map Brushにして、Add Mapをクリック。

対象のオブジェクトが赤く塗られる。赤い部分は物理演算対象だ。Altを押しながらなぞると、赤い部分を消すことが可能。

dForceシミュレーションを実行すると、赤以外の部分は物理演算対象から外れる。

なお、ウェイトマップは、画面上部Toolsメニューから、Node Weight Map Brushを選んだ状態でシーン右クリックWeight Editing→Smooth Selectedを選ぶと、境界周辺にグラデーションがかかる。

Simulateボタンクリックで、dForceシミュレーション開始

Simulation SettingsのSimulateボタンクリックでシミュレーション開始

ボタンをポチると、グラフィックボードの負荷がグンと上がる。Cudaという、3Dグラフィック関連の処理が内部でブン回ってるっぽい。

グラフィックボードは、NVIDIA GeForce GT 1030という、2020年の実売価格1万円ほどのヤツ。

GT 1030は、一部ではえらい言われようのダメグラボらしいのだが、ファンレスで静かだし、10年前のグラボから乗り換えた私としては、まあまあ満足の行く性能である。筐体内が狭いコンパクトPCに刺しても、熱々にならない点も良い。

とは言え、先ほどの髪はシミュレーションに8分ほどかかった。最後までシミュレーションさせたら、何時間もかかりそうだったので、適当なところでCancelをクリックしてシミュレーションを止めたのだ。


▲まだまだ時間はかかりそうだが、髪の見た目はほとんど変わらない

レンダリングと違って、それほど厳密にシミュレーションしてくれなくてもいいんだけどなぁ。パラメータをちょちょいといじって、爆速でdForceシミュレーションしてくれるようにできないものか。

シミュレーション時間に関係しそうな、Frames Per Second (FPS ) Multiplier、Subframes、Iterations( Per Subframe )を適当に小さな値にしたところ、シミュレーションの最初のほうでエラー。

エラーログの確認方法

ログは、画面上部のメニューHelp→Troubleshooting→View LogFileで見られる。

このあたりの数値をいじってシミュレーションを繰り返していたら、DAZ Studioが異常終了してしまった。

DAZのdForce / シミュレーション時間を短くするパラメータレシピ

テスト的にdForceシミュレーションを行う場合、精度はユルユルでいいからサクッとシミュレーション終わらせたいっていうときがあるだろう。色々試してみた。

シミュレーション時間を短くするには、Subframesを減少

いろいろいじって、dForceシミュレーション時間を減少できるパラメータは、どうやらSubframes。精度が落ちるかわりに、シミュレーション時間が短くなる。

Subframesを8→4に変更で、2分ほどでいい感じになった。

調子にのって、Subframesを1にしたら、かなりシミュレーション結果の精度が怪しい。シミュレーションは1分で良いところまで来ているのだが…

やや前髪が落ちすぎている気がするが、うーん、それほど悪くないか?

ポリゴン減少しても、時間変わらず Decimaterで髪ポリゴン削減した結果

Decimatorで髪ポリゴンを30%に削減してシミュレーションを再実行。

  • 髪のポリゴン数を30%に(32万ポリゴン→9万ポリゴンくらい)
  • Collision Mesh Resolution → View portに変更

その結果、シミュレーションにかかる時間は、さほど変わらず。

見かけ上はポリゴン減ってるけど、シミュレーション内でおこなわれる計算量は変わってないような感じ。ほかにもいじる箇所があるのかな。

DAZのdForce / 服や布をフィットさせるには、シミュレーションボタンをクリック

ズボンとシャツのセットだが、dForce適用することで良い感じにフィギュアにフィットする。ダブッと大きめのシャツが小柄な女性にフィットするのは気持ち良い感じ。

私が購入したdForce対応服を紹介しよう。あー、そういう感じにフィットするんだな、ってところを見て欲しい。

dForce Torn Clothes for Genesis 8 Female(s) 穴だらけの服
dForce Torn Clothes for Genesis 8 Female(s)  何故か、都合よく服だけがセクスィーに破れた、女性用のTシャツとジーンズのセット。 付属物 ズボンとシャツとマテリアルがセットになっている。 まず、ズボ...

dForce服のフィット方法などは、以下の記事にまとめた

DAZ dForce服のフィット方法 ボタンひとつで簡単に着こなす
dForce服の使い方は簡単。Sceneタブで対象の服を選択状態にしたあと、Simulation Settingsタブにて、SimulateボタンをクリックすればOK。 徐々に服が変形していき、良い感じにフィットする。 dForce服のフィ...

DAZのdForce / まとめ

  • dForceのシミュレーションにはそこそこ時間がかかる。髪の場合で8分程度。
  • ただし、Simulation SettingsのSubframesの値を下げると、シミュレーション時間が減少するっぽい
  • Decimatorで髪のポリゴンを減らしても、シミュレーション時間は変わらなかった

参考リンク

DAZ Studioで使える有料・無料フィギュアについては、こちらを参照。

DAZの無料フィギュア 素材やキャラ配布 モデルと購入
高品質、無料のDAZ STUDIO用フィギュア(人体モデル)の探し方。DAZ公式のフリービーコーナーや、RenderosityのFreestuffコーナー、ShareCGなどはブックマーク必須。