DAZ 3D Studio の dForce を使って、ベッドを表現してみました。 フィギアがのってる部分を凹ませて、シーツのシワも再現することができました。 元ネタは DAZ のフォーラムにある “How to Use dForce: Creating a Blanket, Draping Clothes on Furniture, and Much More Commercial” です。 めめんとさんが「DAZ Studio 4.10 dForceでソファなどをへこませる方法」という記事で日本語で解説してくれてます。

今回はベッドにフィギアを乗せて再現してみたのですが、少しやり方を工夫しないとうまくいきませんでした。 またシワにポリゴンの折れ目が出て不自然に見えてしまう場合があるので、その修正方法の覚書です。

基本的な仕組み

元ネタで紹介されている基本的な仕組みをざっくりと説明すると … まずオブジェクトを 3 つ用意 ( Create → New Primitive → Cube … など ) し 、下記のように配置します。

Plane、Cube、Sphere をシーンに配置する
  • Cube – これがベッドになります。Dynamic Surface を適用します ( 後述 )
  • Sphere – 本番はこれをフィギアにします
  • Plane – Cube を床に据え付けておくために必要です

ベッドに見立てる Cube は変形していくのである程度ポリゴンの数が必要で、ポリゴン数が少ないと変形も少ないのでベッドらしくなりません。 上記の画像では Y 軸方向に縮小して、Cube の高さを低くしています。

Plane は床に見立て、 Cube よりもひと回り大きくするか、少なくとも同じ大きさにします。 この Plane は Cube を床に据え付けるアンカーの役目を果たします。 Plane がないと Cube は無重力状態のように変形しつつ浮いてしまうので必須オブジェクトです。

最後に Sphere を Cube の上に配置しますが、少しめり込ませておきます。

配置ができたら Cude に Dynamic Surface を適用させます ( Edit → Object → Geometry → Add dForce Modifier : Dynamic Surface )。 Simulation Settings ペインを開き、Enviromment の Gravity ( 重力 ) にネガティブな値 ( -1 など )を入れます。 そして Simulate ボタンを押すと、下記のように Cube が膨らんでいきます。

dForceをシミュレートするとCubeが膨らみ凹みとシワができます

Gravity が -1 だと少し膨らみすぎたので、上記では -0.5 にしてみました。 レンダリングしたものが下記になります。

レンダリング結果

フィギアで再現してみる

さっきは Sphere で試してみましたが、今度はフィギアで再現してみます。 Figure を配置して dForce をシミュレートすると、ゼロポーズから始まってしまいます。 今回はベッドに乗っているだけなので、ゼロポーズから始める必要はありません。 逆にゼロポーズから始めるとベッドがぐちゃぐちゃになってしまいます。 なので現在のポーズのまま dForce をシミュレートしますが、二種類のやり方があり最終的な結果も変わってきます。

ポーズを Memorize して dForce をシミュレート

まずはフィギアの現在のポーズを Memorize してシミュレートする方法です。 フィギアを選択しておき、サブメニューから Memorize → Memorize Figure Pose を選択します。 そしてフィギアはベッドに少しめり込ませて配置します。 ロングヘアーなど、髪がベッドに接する場合は非表示にしておきます。

その上で Simulation Settings の Initialization で Start Bones From Memorized Pose が On になってるのを確認します( デフォルトで On になっています)。

フィギアのポーズをMemorizeしてdForceをシミュレートする

dForce のシミュレートを開始するとフィギアのポーズはそのままで、はじめ少し上に移動し、所定の位置まで落下する感じでシミュレートされていきます。

Cube が膨らみ凹みとシワができます

Start Bones From Memorized Pose を Off にして dForce をシミュレート

Start Bones From Memorized Pose を Off にしてシミュレートする場合は、フィギアをベッドの表面にめり込ませないように配置します。

フィギアはCubeにめり込ませないように配置します

dForce のシミュレートを開始すると、フィギアのポーズも位置も動きません。 ベッドの方が盛り上がっていき、シワができていきます。

Cube が膨らみ凹みとシワができます

一見違いがないように見えますが、比較すると下記の画像ように違いがでます。

凹み具合とシワの比較

これは好みの問題だと思うので、お好きな方で再現してみてください。

Gravity ( 重力 ) の強さで凹み具合の調整

ベッドの凹みの深さは Gravity の値で調整できます。 下記の画像は Gravity をそれぞれ -1、 -0.5、 -0.1 でシミュレートした比較画像です。

Gravityの値による凹み具合の比較

シワ部分にできたメッシュの折り目が出てしまった場合

シワの方向によっては、ポリゴンメッシュの折り目が出て不自然に見えてしまう場合があります。 少しわかりにくいかもしれませんが、下記の画像ではポリゴンのマス目が模様のように表示されています。

ポリゴンによる不自然な模様

カメラのフレーム外ならそのままでもいいと思いますが、フレーム内だとかなり目立つので修正したほうがいいと思います。

まずは視点を Top に切り替え、ビューを Wire Shaded にします。 次に Draw Settings ペイン ( Window → Panes(Tabs) → Draw Settings ) にある Wireframe の Triangulation Wireframe Opacity を 100% にして三角形メッシュを表示させます。

三角ポリゴンがシワの方向と交差している

拡大してみると、シワの方向と三角形の辺 ( 緑色 ) が交差しているのがわかります。 これをシワの方向に沿うように変更します。 Tool Settings ペインから Geometry Editor を選択して、修正したい範囲を選択します。

修正したいポリゴンを選択

次に右クリックから Geometry Editing → Rotate Triangulation of Selected Polygon(s) を選択します。

Rotate Triangulation of Selected Polygon(s) で三角ポリゴンを反転

すると下記の画像ように三角ポリゴンが反転され、シワの方向に沿うようになりました。

三角ポリゴンとシワの方向が合う

修正したら dForce をシミュレートし直します。 修正後にレンダリングしてみると、下記の画像のように不自然な模様はなくなりスッキリしました。

三角ポリゴンの修正前と修正後の比較

さらになめらかにしたい場合は、Edit → Object → Geometry → Convert to SubD を選択して、ポリゴンの解像度をあげる ( Base から High Resolution にする) こともできます。

ベッドにマテリアルを設定する

最後にベッドにマテリアルを設定します。 Scene ペインでベッドである Cube を選択して Surfaces ペインで cube を選択しておきます。 Content Library ペインから Shader Presets / Iray / DAZ Uber とたどっていき、布系のシェーダーを選択します。

ベッドに布系のシェーダーをセット

今回は Fabric – Velvet – Red を選択したのち、色をブラウンに変更してみました。 これでベッドの完成です!

参考にさせていただいたページ