Marvelous DesignerやDAZ自体の使い方は、YouTubeをはじめだいぶ情報が豊富になってきてるので問題ないと思うんですが、その二つを連携させる方法については思った以上に情報がなかったり古かったり情報源によって書いてあることがまちまちだったりとかなりの苦労をしたので、整理を兼ねて覚え書きです。
実際にこの手順で作成したイラストは以下の記事にあります。
embed: negisho.fanbox.ccよほど興味のある方でなければ退屈なだけだと思うので、もちろん無理に読む必要はありません。
でも一番下にちょっとサービスシーンのある動画あります笑
目標
Marvelous Designer(以下MD)で制作した衣服を、DAZ Studio(以下DAZ)に取り込み、自作少年モデルに装着し、Irayでレンダリングすること。
条件
◆DAZの自作モデルは、Genesis8.1 Maleをベースとしたもの。
◆ソフトウェアバージョン:DAZ ver.4.21/MD Ver.12
◆衣服はDAZ上で「着用」できる必要はない(※)。
※「着用」とは、取り込んだ衣服がDAZ上で衣服として機能し、DAZ上でモデルのポーズを変えても追従する状態。ねぎしょはこれの実現はちょっと諦めかけてます。
以下の手順で実現できるのは、ポーズ済みの衣服をポーズ済みのモデルにぴったり重ねて、あたかも着ているように見せかけるということだけ。なぜ諦めかけてるのかの詳細は後ほど。
成功した手順
①DAZ上で少年モデルを読み込み、髪の毛、睫毛類(Genesis 8 Male Eyelashes)など余計なものを削除し、ゼロポーズ/位置もデフォルトのまま、OBJ形式で書き出す(Export)。
※To:は「DAZ Studio(1 unit = 1cm)」/Scale 100%
②DAZ上で少年モデルに完成形のポーズを取らせ、同じ設定で別名のOBJ形式で書き出す。
※モデルのProperty→Resolution Levelを"Base"に戻すようにと書いてある情報も多かったが、ねぎしょ方式の場合は"High Resolution"のままのほうがうまくいった。ただしPCの性能次第ではMD上での操作が重くなるかもしれない。
※ポーズは取らせても、モデルの位置は変えない方がいい。位置は後で変えられる。
③MDを開き、インポート→OBJで、①で作ったゼロポーズの少年モデルを読み込む。
※フィッティングスーツを自動作成するため、ちょっと時間がかかる。
④読み込んだ少年モデルに、作成した衣類を着用させる。
▶ファイル→追加→プロジェクト または 衣装
※衣服を素体のGenesis8.1Maleおじさんに合わせて作っていて少年モデルにサイズが合わない場合、「自動フィッティング」で合わせてもいいが、型紙が変化してしまうし、思っていた形と違う結果になることもある。
少年モデルに合わせて手動で型紙を作り直すのも有りだが、2D Pattern Windowで全ての布地を選択し、Property Editorの「シミュレーション属性」で「横の収縮」と「縦の収縮」の数値を適当に弄って小さくすると、型紙自体を書き換えなくて済むうえ意外と狙った形にしやすかった(ただし腰のゴムが緩くなったりするので多少の個別調整は必要)。
⑤全ての衣類を着用し終えたら、ファイル→インポート(追加)→OBJで、②で作ったポーズ済みの少年モデルを選択して読み込む。
このとき、「オブジェクトタイプ」を「Morph Target」とする。
※DAZのポーズをMDに取り込む方法として、ゼロポーズから最終ポーズまでのアニメーションを含めてFBX形式やCOLLADAで書き出し、MDに読み込むという手順が多く紹介されてますが、少なくともねぎしょの環境ではそれはうまくいきませんでした。手足の形が歪んだりして最終ポーズが完全に同一にならず、できたポーズつき衣服をDAZに戻してもモデルにきちんと重なりません。唯一成功したのが最終ポーズ形態をMorph Targetとして読み込むこの方法です。
⑥OKをクリックすると、ポーズ済みの少年モデルが読み込まれ、ゼロポーズの少年モデルからポーズ済みの少年モデルへアバターの形が徐々に変化しながら、 衣服のシミュレーションが勝手に始まる。
※ポーズ変化中はアバターの形が大きく崩れるが、最終形態は②のポーズ通りになるので問題ない(よく見ると手首あたりの形が少し崩れたままのような気もしなくもないので、もしかしたら手袋みたいなものを作るときは問題が出るかもしれない)。
※下の方に、実際にシミュレーション中の動画をあげてあります。
⑦ポーズが完了したら(途中で触ることもできる)、衣服をつまんで引っ張ったりしながら調整し、最終形態に整える。
⑧ポーズ済み衣服が完成したら、2D Pattern Windowで、衣服を選択する。
※シャツならシャツを構成する全ての型紙をドラッグで選択する。複数の衣服を着用している場合は、衣服ごとに⑧~⑨を実行して衣服別にOBJを書き出す。
⑨ファイル→エクスポート→OBJ(選択のみ) で書き出す(例:Shirt.obj)
※「単一のオブジェクト」「結合する」「薄い」にしないとDAZではまともに読み込めない。→間違いでした。「薄い」ではなく「厚い」にしても問題なく読み込めることがわかりました。この方式を使う限りでは、「厚い」にした方がいいです(布の厚みが表現されるのでリアリティが増します)。
※統合UV座標を書き出すが、このときに注意すること↓↓
UVマップ全体がプレビューの1マスに収まっていることが必要(複数衣類がある場合は衣類ごとに1マスずつに収まっていればよい)。1つの衣服が1マスに収まっていない場合、UVマップが複数枚に分割されて出力され、DAZではUVがズレたりなどおかしなことになる。
UVマップはMDのUV Editorで縦横とも0~1の範囲に収めれば1枚のUVで書き出すことができる。型紙がそのままUVマップになるのはほんとに便利☆
※サイズは「cm(DAZ Studio)/100%」
⑩作成したポーズ済みの衣服OBJを、DAZにインポートする。
⑪モデルの位置を変えていなければ、インポートしたポーズ済み衣服は、DAZ上のポーズ済みの少年モデルにぴったり重なる(はず)。複数の衣服がある場合は全て同じ手順でインポートする。モデルの位置を変えるときは、衣服を全て少年モデルにペアレントしてから動かす。
⑫Surfaceタブを開き、衣服のSurfaceを目指す仕上がりになるよう調整してレンダリングする。
※DAZでは、現状なぜか「Normal MapがBump Mapのところに入る」という謎のバグが発生するので、直す必要がある。
以上。
追記
上記の方法が、ゼロポーズからの動きの大きいポーズ(しゃがむとか、逆立ちするとか)でも通用するか実験してみました。結論から言うと、少し工夫が必要です。
以下の動画をご参照ください。
極端なポーズの場合、ゼロポーズからいきなり最終ポーズをMorph targetとして読み込むと、アバターの変形に衣服がついてこれなくなりシミュレーションが進まなくなります。
その場合、DAZでゼロポーズから最終ポーズへ至る途中のポーズを何段階かに分けてOBJ形式で書き出しておき、様子を見ながら順次MDに読み込んでいけばうまくいきます。
DAZ上で「衣服」として扱うことを諦めかけてる理由
本来なら、ちゃんとDAZ上で衣服として機能するように作り、DAZ上でポーズを変えてもちゃんと追従するようにしたほうがいいと思いますが、それはちょっと無理かも、、と思い始めてます。
▼DAZモデルに自作衣服を着せることがどんだけ困難か5秒でわかるGIF
これは、Genesis8.1素体モデルにTransfer Utilityを使って衣服として設定し、Fit toで少年モデルに着用させた状態です。着用させた時点で既になんかおかしいですが、ポーズを変えるとご覧の通り、衣服が全く意図しない変形をしてしまいます。
要するに、股下や脇など、ゼロポーズの状態で布がぐしゃっと集まってるような箇所を引き延ばすようなポーズを取らせると、破綻するわけですね。
これをマシにするためには、衣服にMorphを組み込まなければなりません。衣服のMorphとは、モデルのポーズを変えたときに衣服がどのように変形するべきかなどの情報のことですが(たぶん)、これを組み込むのはとてつもない手間と時間がかかります。
シャツのようなゆったりしたものの場合は、Morphを作り込む代わりに、dForceでDAZに物理演算させてしまう方がまだ手間がかかりません。
ではdforceの実力をMDと較べてみましょう。
…やっぱどう考えてもMDのクロスシミュレーションの方が使い勝手がいいし結果も優れてますよね。dForceも設定次第でもうちょっとマシな結果を得ることはできますが、やはり衣服専門のシミュレーターには敵わないと思います。
で、ねぎしょが3Dを使用する理由は、3Dアーティストとして飯を食っていくためじゃなくて、なるべく効率よくエロイラストを量産するためなんですよね。要するに、「描いた方が早い」んだったら3D使う意味ないわけです。
そんなわけで、自作衣服に多大な手間と時間をかけてMorphをつけたり、明らかにMDに劣る品質しか得られないDAZのdForceでなんとか物理演算するより、衣服のシミュレーションはMDに任せて、DAZはシーンの作り込みやモデルのポージングに特化したほうが良さそう、という結論に至りつつあります。
そもそも、ねぎしょ作品の少年モデルくんは服着てないことの方が圧倒的に多いですしね…。
てなことで、自作のDAZ衣服を配布したりは、少なくとも何かすごい解決策を発見しない限りはできそうにありません…。期待していただいた方は申し訳ないです。
とりあえずは、作った衣服でえっちなイラストを作れるように頑張ってみます。
おまけ
最後に、dForceではまず無理なことをやってみましょう。
このシャツインもとい「シャツをパンツの中に入れる」というのは、dForceでは非常に困難です。タイムラインとかピン止めとかMesh Grabberとかを駆使しまくれば絶対にできないとは限りませんが、基本的には「パンツに入るシャツのMorph」をせっせと作るか、はじめからシャツインした状態の衣服をセットで作るしかありません。
でもMDなら衣服レイヤーの順番変えるだけ…!すごい☆