dForce その1:Simulation Settingsペイン
Category : dForce
DAZ Studio 4.10Proの新機能として登場した物理シミュレーションエンジン『dForce』のご紹介第1回は、物理シミュレーションの設定が詰まったSimulation Settingsペインのプロパティと、物理シミュレーションの開始方法についての記事です。
DAZストアで販売されているdForce対応済み衣服など、既にシーンの設定が終わった状態からのお話ですので、ない場合はInstall Managerにて無料でダウンロードできる『dForce Starter Essentials』などで試してみて下さい。
この記事を書くにあたって、DAZフォーラムのトピック「dForce - Start Here」を参考にしています。

※オプションメニューについて追記しました。(2017.12.05)
■物理シミュレーションをする
最初に、シーンに既に物理シミュレーション可能なオブジェクトがある場合に、物理シミュレーションを開始する方法などを見ていきましょう。
●物理シミュレーションを開始する
(1)メインメニュー > Window > Panes (Tabs) > Simulation Settings を実行して、Simulation Settingsペインを表示します。
(2)Simulation SettingsペインのSimulation>Duration>Frames To Simulateプロパティを固定ポーズの場合は「Current Frame」(初期値)に、アニメーションする場合は「Animated (Use Timeline Play Range)」に設定します。
プロパティが何も表示されていない場合は、ペイン左上の「All」をクリックして下さい。
(3)ペイン右上の「Simulate」ボタンをクリックします。
シミュレーションが開始されます。


※初めてdForceで物理シミュレーションをしようとした場合、(3)の時点で次のようなダイアログが出現する場合があります。
これは、dForceで使用できるグラフィックカードなどのデバイスがある際に最適化作業を行うためのインフォメーションですので、「Yes」ボタンをクリックして下さい。

※シーンにシミュレーションできるオブジェクトがない場合、次のようなダイアログが出現します。

※NVIDIAまたはAMDのグラフィックドライバをインストールしていない場合、OpenCL1.2に対応したデバイスが見つからないため物理シミュレーションが行えません。NVIDIAまたはAMDのチップを使ったグラフィックカードを装着しているときは、ドライバのアップデートを行って下さい。デバイスがOpenCL1.2に対応していないときは、今回ご紹介しているDAZフォーラムのトピックにあるリンクをたどってCPU用のOpenCLドライバをインストールして下さい。
●シミュレーション結果をクリアする
「Clear」ボタンをクリックすると、シミュレーションの結果がクリアされます。
または、再度シミュレーションを開始するとその前のシミュレーション結果はクリアされます。
■Simulation Settingsペインのプロパティ
<Editorタブ>

・Environmentグループ
・Simulation > Initializationグループ
・Simulation > Durationグループ
・Simulation > Qualityグループ
・Simulation > Collisionグループ
<Advancedタブ>

***
Simulation Settingsペインでは、固定ポーズの場合にわざわざタイムラインを使ってキーを打たなくても自然なシミュレーション結果が得られるようにプロパティが用意されています。
「Initialization Time」「Pose Transition Time」「Stabilization Time」の関係と、その時点でのクロスの状態は次の画像の通りです。

例えば各Timeの値を1(秒)にした場合、0フレーム、30フレームにMemorized Pose、60フレーム、90フレームにCurrent Poseのキーを打った状態でアニメーション(30fps)のシミュレーションをしたこととほぼ同じ結果になります。
最初のポーズがゼロポーズではなく記憶したポーズであることもポイントです。現在のポーズによってはゼロポーズから始めると変な結果になってしまうときや、ゼロポーズで既に肌や床が服にめり込んでしまっているときなど、最適なポーズを記憶させてそこからシミュレーションを始めることができます。
シミュレーションの品質を決めるためのプロパティとして、「Frames Per Second (FPS) Multiplier」「Subframes」「Iterations (Per Subframe)」「Collision Mesh Resolution」「Collision Mode」「Collision Iterations (Per Subframe)」以上6つがあります。これらは基本的に値が低いほど低品質で高速、高いほど高品質で低速になります。
■Simulation Settingsペインのオプションメニュー
■dForceを使う上での注意点など
・インスタンスはコリジョン・オブジェクトにはなりません。
・aniMate2のアニブロックによるアニメーションはタイムラインに焼き付ける必要があります。
(Genesis 8 Starter EssentialsにGenesis8用のアニブロックが入っていますので活用して下さい。)
・OpenCL1.2に対応したドライバのインストールが必要です。
■爆発を避けるために
dForceでシミュレーションを行っていると、急にバーの進みが悪くなり、衣服が爆発!してしまうことがあります。悪いときにはエラーが出てDAZStudioを再起動しなければならなくなってしまうこともあり、なんとか避けたいところです。

衣服が爆発してしまう原因は不明ですが、私が調べたところ次のような対処をすることでそれを避けることができるときがあります。
(1)Self CollideをOffにする
(2)極端な体系変化を避ける
(3)クロスを限界以上に引き伸ばさない
(4)シミュレーション品質を上げる/下げる
まず(1)はクロスがそれ自体と衝突する判定が初期状態でオンになっているため、それを切る方法です。Surfacesペインで衣服の全サーフェイスグループを選択し、「Self Collide」プロパティをOffにします。

これは一番効果がありますが、衣服によっては不自然な結果になってしまうことにもなります。
(2)については、極端に太った体形にしたときに爆発が起きる割合がとても多かったです。
dForceのクロスシミュレーションではクロスがフィギュアの体系変化にある程度ついてくるのもスゴイ点の一つなのですが、やはり無理が出る限度があるようです。
(3)は不確定ですが、袖のある服でポーズによって結構爆発することがありました。
(4)は品質を上げると爆発しない、と言い切れないところが難しい点です。
バージョンアップによって、爆発するケースが減ることを願うばかりです。
今回の素材はこちら
DAZストアで販売されているdForce対応済み衣服など、既にシーンの設定が終わった状態からのお話ですので、ない場合はInstall Managerにて無料でダウンロードできる『dForce Starter Essentials』などで試してみて下さい。
この記事を書くにあたって、DAZフォーラムのトピック「dForce - Start Here」を参考にしています。

※オプションメニューについて追記しました。(2017.12.05)
■物理シミュレーションをする
最初に、シーンに既に物理シミュレーション可能なオブジェクトがある場合に、物理シミュレーションを開始する方法などを見ていきましょう。
●物理シミュレーションを開始する
(1)メインメニュー > Window > Panes (Tabs) > Simulation Settings を実行して、Simulation Settingsペインを表示します。
(2)Simulation SettingsペインのSimulation>Duration>Frames To Simulateプロパティを固定ポーズの場合は「Current Frame」(初期値)に、アニメーションする場合は「Animated (Use Timeline Play Range)」に設定します。
プロパティが何も表示されていない場合は、ペイン左上の「All」をクリックして下さい。
(3)ペイン右上の「Simulate」ボタンをクリックします。
シミュレーションが開始されます。


※初めてdForceで物理シミュレーションをしようとした場合、(3)の時点で次のようなダイアログが出現する場合があります。
これは、dForceで使用できるグラフィックカードなどのデバイスがある際に最適化作業を行うためのインフォメーションですので、「Yes」ボタンをクリックして下さい。

※シーンにシミュレーションできるオブジェクトがない場合、次のようなダイアログが出現します。

※NVIDIAまたはAMDのグラフィックドライバをインストールしていない場合、OpenCL1.2に対応したデバイスが見つからないため物理シミュレーションが行えません。NVIDIAまたはAMDのチップを使ったグラフィックカードを装着しているときは、ドライバのアップデートを行って下さい。デバイスがOpenCL1.2に対応していないときは、今回ご紹介しているDAZフォーラムのトピックにあるリンクをたどってCPU用のOpenCLドライバをインストールして下さい。
●シミュレーション結果をクリアする
「Clear」ボタンをクリックすると、シミュレーションの結果がクリアされます。
または、再度シミュレーションを開始するとその前のシミュレーション結果はクリアされます。
■Simulation Settingsペインのプロパティ
<Editorタブ>

・Environmentグループ
・Gravity | 重力の強度を表します。1で地球上の重力、0より小さいと反重力となり、1を超えると意図的に重く、速く動く結果が得られます。 |
・Air Resistance | 空気抵抗の強度を表します。1で地球の海面気圧、0で真空状態となり、高いほどゆっくりと動きます。 |
・Simulation > Initializationグループ
・Initialization Time | シミュレーション開始直後に重力をかけてメッシュを落ち着かせる時間(秒)です。この時間内はポーズは固定されます。 |
・Start Bones From Memorized Pose | Onのとき、フィギュアの記憶されたポーズ(Memorized Pose)からシミュレーションを開始します。初期状態では記憶されたポーズ=ゼロポーズですが、Edit > Figure > Memorize > Memorize Figure Pose を実行することでその時点のポーズが記憶されたポーズとなります。 |
・Pose Transition Time | 「Start Bones From Memorized Pose」がOnのときに、記憶されたポーズから現在のポーズに変化する時間(秒)です。 |
・Simulation > Durationグループ
・Frames To Simulate | シミュレーションするフレームを選択します。アニメーションでなければ「Current Frame」を、アニメーションであれば「Animated (Use Timeline Play Range)」を使って下さい。 「Animated」が2種類ある違いはシミュレーションする範囲です。(Use Timeline Play Range)がTimelineペインの再生範囲(Range)を使うのに対して、 (Custom)は「Simulation Range」で指定した範囲を使います。 |
・Stabilization Time | 「Frames To Simulate」が「Current Frame」のときに、現在のポーズになった後に状態を安定させるために余分にシミュレーションする時間(秒)です。 |
・Simulation Range | 「Frames To Simulate」が「Animated (Custom)」のときに、シミュレーションの開始/終了フレームを指定します。 |
・Simulation > Qualityグループ
・Frames Per Second (FPS) Multiplier | シミュレーションのフレームレートをアニメーションのフレームレートのx倍にします。 |
・Subframes | 1フレームの間にシーンを更新し、衝突を試行する回数です(4~16が推奨範囲)。 |
・Iterations (Per Subframe) | 1サブフレームの間に形状を保持するためにメッシュの頂点間の接続が計算される回数です(8~32が推奨範囲)。大きいほどサーフェイスのたるみが防止される。ポリゴン数の多いアイテムほど必要な値が大きくなります。 |
・Simulation > Collisionグループ
・Collision Mesh Resolution | SubDのかかったアイテムのときに、Baseでベースメッシュ、Viewportで「View SubD Level」のメッシュを衝突検出に使用します。SubDのかかっていないアイテムには関係ありません。 |
・Collision Mode | 衝突検出のモードを「Best - Continuous:CCD」/「Better - Continuous : CCD Vertex-Face」/「Good - Discrete : Swept Vertex」から選択します。 Bestは衝突検出が最も正確で低速、Goodは衝突検出が正確性が低く高速、Betterはその中間になります。 |
・Collision Iterations (Per Subframe) | 1サブフレームの間に衝突検出をする回数です。通常は1で十分です。 |
<Advancedタブ>

・OpenCL Device | シミュレーションに使うことができるデバイスが複数ある場合、ここで選択します。 |
***
Simulation Settingsペインでは、固定ポーズの場合にわざわざタイムラインを使ってキーを打たなくても自然なシミュレーション結果が得られるようにプロパティが用意されています。
「Initialization Time」「Pose Transition Time」「Stabilization Time」の関係と、その時点でのクロスの状態は次の画像の通りです。

例えば各Timeの値を1(秒)にした場合、0フレーム、30フレームにMemorized Pose、60フレーム、90フレームにCurrent Poseのキーを打った状態でアニメーション(30fps)のシミュレーションをしたこととほぼ同じ結果になります。
最初のポーズがゼロポーズではなく記憶したポーズであることもポイントです。現在のポーズによってはゼロポーズから始めると変な結果になってしまうときや、ゼロポーズで既に肌や床が服にめり込んでしまっているときなど、最適なポーズを記憶させてそこからシミュレーションを始めることができます。
シミュレーションの品質を決めるためのプロパティとして、「Frames Per Second (FPS) Multiplier」「Subframes」「Iterations (Per Subframe)」「Collision Mesh Resolution」「Collision Mode」「Collision Iterations (Per Subframe)」以上6つがあります。これらは基本的に値が低いほど低品質で高速、高いほど高品質で低速になります。
■Simulation Settingsペインのオプションメニュー
・Simulate | 物理シミュレーションを開始します。 |
・Clear Simulation Data | シーン内の全てのオブジェクトの物理シミュレーション結果をクリアします。 |
・dForce> | |
・Add dForce Modifier: ~ | オブジェクトにdForce Modifierを付加します。通常は「Add dForce Modifier: Dynamic Surface」でOKです。 |
・Remove dForce Modifier | オブジェクトからdForce Modifierを取り除きます。 |
・Clear dForce Simulation from Selected Item(s) | 選択しているオブジェクトの物理シミュレーション結果をクリアします。 |
■dForceを使う上での注意点など
・インスタンスはコリジョン・オブジェクトにはなりません。
・aniMate2のアニブロックによるアニメーションはタイムラインに焼き付ける必要があります。
(Genesis 8 Starter EssentialsにGenesis8用のアニブロックが入っていますので活用して下さい。)
・OpenCL1.2に対応したドライバのインストールが必要です。
■爆発を避けるために
dForceでシミュレーションを行っていると、急にバーの進みが悪くなり、衣服が爆発!してしまうことがあります。悪いときにはエラーが出てDAZStudioを再起動しなければならなくなってしまうこともあり、なんとか避けたいところです。

衣服が爆発してしまう原因は不明ですが、私が調べたところ次のような対処をすることでそれを避けることができるときがあります。
(1)Self CollideをOffにする
(2)極端な体系変化を避ける
(3)クロスを限界以上に引き伸ばさない
(4)シミュレーション品質を上げる/下げる
まず(1)はクロスがそれ自体と衝突する判定が初期状態でオンになっているため、それを切る方法です。Surfacesペインで衣服の全サーフェイスグループを選択し、「Self Collide」プロパティをOffにします。

これは一番効果がありますが、衣服によっては不自然な結果になってしまうことにもなります。
(2)については、極端に太った体形にしたときに爆発が起きる割合がとても多かったです。
dForceのクロスシミュレーションではクロスがフィギュアの体系変化にある程度ついてくるのもスゴイ点の一つなのですが、やはり無理が出る限度があるようです。
(3)は不確定ですが、袖のある服でポーズによって結構爆発することがありました。
(4)は品質を上げると爆発しない、と言い切れないところが難しい点です。
バージョンアップによって、爆発するケースが減ることを願うばかりです。
今回の素材はこちら
![]() dForce Fiona Dress for Genesis 8 Female(s) | ![]() Victoria 8 | ![]() Voss Hair for Genesis 3 & 8 Female(s) |