見出し画像

【3DCG】あぴミクさんにMarvelous Designerで作った服でくるくる回ってほしい~夏の陣~

こんにちは。ラワイルです。いままでロング丈のフレアスカートの衣装をBlenderで作り、MMDで動画制作をしていたのですが、さらなるひらみをもとめてMarvelous Designer(MD)で服を作っています。

作った服はあぴミクさんに着せて回ってもらいたいので、そのためのワークフローを確立するのが今回の狙いです。完成した動画がこちらです。

ヒラヒラしたスカート系統のお洋服には全円スカート、ティアードワンピース、全円ロングメイド服、シフォンスカートなど様々なバリエーションがあり、着せてみたいと思ったお洋服を気軽に着せられるようにしたいと思っています。

このような備忘録を書いてみることにしたのは、今回のワークフローに関する情報がネット上にあまりなく、また自分でも状況を整理したかったからです。

なお作業等にあたりMMDの集い Discord支部の皆さんにご協力をいただいています。作業指針を考えるにあたり特にless様には大変お世話になりました。

今回は素体に服を着せる都合上、裸に見えたり下着姿に見えたりするモデルの写真が載る可能性がありますが、可能な限り修正するように努めています。万が一修正が不十分な箇所があった場合はご容赦ください。


方針

MMDモデルとモーションを用いてMD物理演算をする

ワークフローは上記の図の通りだが、問題となるのは①pmxとvmdをいかにしてMDにアニメーションつきアバター情報として取り込むか②MDでの物理演算をいかにして成功させるか③レンダリング④後から髪の物理をどうつけるか、である。

④に関して、物理を焼いたあとのスカートとの衝突が問題となるほか、MDでは服の物理がかなり高精細になるので、髪も滑らかさを高めたくなるかもしれない。Blender上の機能を試してみたい気持ちもあるが、リアル寄りの物理だとかなりサラサラな髪になるのであぴミクさんの雰囲気に合うかどうかは難しい。

ちなみに、今回は行わないがMMDモデルの衣装制作をMDで行う場合には、衣装にpmxとしてのウエイト・物理設定をどう乗せるかも問題となるであろう。

1.MDにアニメーションを取り込む

1日目(2022/07/25 月)

まずあぴミク素体のpmxから剛体・ジョイントを削除し、服と髪も削除する。次いでvmdを用意する。今回は短めのモーションを使ってワークフローを確立したかったので「女の子がクルクル回るモーション」を使用。

使えそうなツールはいくつかある。
①Unity上のMMD4mecanimを用いてfbxを出力
②Blender上のMMD toolsを用いてfbxを出力
③MMD上のMMD bridgeを用いてabcを出力

①~③を試して③が選ばれることになった。→その後ワークフローを進めるうちに、②を選ぶことになった。

①Unity上のMMD4mecanimを用いてfbxを出力

①について、Unity上では再生に成功しているが、MDに取り込むと動きがおかしくなった。原因はうまく切り分けられていないが、ボーン構造由来の変換の互換性がどうやら怪しそうだ。

Unity上での再生

MD上での再生

ちなみに私がUnityの操作に慣れていないゆえ、Unityで正しく動くか確認するためのAnimator Controllerの設定もひと悶着したのだが、本題ではないので割愛する。

ちなみに、MMD4mecanim由来のfbxをBlenderに入力しようとしたらBlenderでASCII FBX files are not supportedと言われた。

②Blender上のMMD toolsを用いてfbxを出力

②はfbx出力を行うには有力な方法であったが、変形がおかしくなった(画像がなくて恐縮)。これはSDEFの変形にBlender等多くのソフトが対応していないためであり、PMXEでSDEF→BDEF変換を行った。すると、画像のように腕がねじ切れてしまった。これは捩り分散が入っていないからである。そこで、いったん捩りボーンを削除し、そのうえで準標準ボーンプラグインで捩り分散のボーンを入れることを検討した。ところが、ボーン構造が複雑であり、困難を極めたので、この方法も没になった。
なお、あぴミクには本来BDEFモデルもある。SDEF用でないといけない、ボーン構造が複雑というのは、もっぱら今回使用させていただいた素体の仕様による。この素体と②のツールは相性が悪かった。→組立等である程度改善し、最終的に②を選択することになった。

捩り分散を行わないBDEFだとこうなる

③MMD上のMMD bridgeを用いてabcを出力

③の導入には成功した。abcはボーン構造等の互換性を気にしなくて良いのがメリットだが、方針図④で髪の物理を入れるところでボーンがないのは不便になりそうだ。

スケーリング問題

ところがMDの衣装ファイルにあぴミクabcをインポートしたらあぴミクがいなくなってしまった。なぜ。

あぴミクさんいなくね?
あぴミクを探せ!
18.0mm

居た。親指姫かな?スケールが合っていなかった。

というわけで、PMXE>プラグイン>System>サイズ変更でサイズを拡大し、かつvmdのボーン移動も拡大した。ちなみに回転も拡大すると美しくないホメ春香になる。最初は158cmになるように79倍、などとしていたが、どうも衣装に合わなくてゆるゆるになってしまった。衣装はもともと作ってあったのだが(そのときのミクさんはfbxかobjで書き出したはず)、結構大きかったようだ。さて、ミクさんの身長を測って、と……

この測り方でいいんだろうか

この拡大だとやや大きすぎる。測っている位置が髪のてっぺんか、顔の皮膚のてっぺんか、が違うので。

この大きさにそろえる

この大きさに揃える。(本来の身長に比して大きすぎる気はする)

これでようやくアニメーションの調整に入れる。

傍論

私のPMXEの表示が壊れていた。高DPI設定がおかしくなっていたからで、アプリケーションではなく、システム(拡張)にすると文字がちゃんと切れずに見えるように。システムでも悪くないがぼやけ気味である。

システム(拡張)

今回の知見

互換性が保てるか保てないかを見極め、互換性が保てない部分はベイクする。200フレームからモーションを開始、100フレーム目に200と同じポーズのキーを打ち、演算を安定させる。最初の200フレームの不要部分は後でカット編集すればいいので、こういう工夫をする癖をつける(less氏)。

2.MDで服を物理演算(アニメーション)する

取り込むことができたので物理演算をするが、とても遅くて重い。寝ている間に演算を走らせて、今直面している問題を挙げた。

・ターンしたときに服が破けて演算が爆発してソフトが落ちる→fpsを上げたいけど100以上にならなさそうである。fpsを高めて対処するMMDやNexGiMaと異なり、粒子間隔を小さくしたり、シミュレーション精度を上げたりすることで対処するようである。(精度は3〜5くらいか。10にしたら落ちた)
・なぜか演算フレームが1000フレームめくらいまでしか選べない→なんで
・リボンが服と自己貫通する→粒子間隔とシミュレーション精度
・リボンがずれる→造形の問題とか伸び止めテープとか
・アバターの体どうしめり込むと流石に服の物理に悪いのではないか→モーション調整
・アニメーションを眺めていたいけど保存方法がわからない。録画してみせる方法も分からない→CLOならレンダリングにも対応している
・スカートが開くというよりも巻き付く→シルクがやわらかすぎる?
・ターン後、左手でスカートを押しすぎてて不自然なくらいに浮き上がり、その後もとのポーズに戻る際に右手でスカートにパンチをしてスカートが壊れる→モーションの速さ、材質、剛体操作、演算精度
・GPU演算とか、より速いCPU演算を使ってみたい

2日目(2022/07/26 火)

演算結果の確認

無事(?)落ちることなく出力できていたようだ。

演算フレーム

これをあまり仕様とは認めたくないが、アニメーションの歯車アイコンを押して出たビューでは1000フレームまでしか上げられない。

ところが右のQuick Menuでは1000000まで上げられるのでいったんこれで解決。

アニメーションの保存方法

プロジェクト保存で、アニメーションまで保存されることを確認した。
出力に関して、Blenderでの出力を目標にMDD Cache (Standard)でexportしてみたのだが、どうもBlenderで何も表示されず。原因は不明である。→のちにスケール等が原因だと判明した。

fpsに関して

MMDやNexGiMaと違って、演算精度に関わるのはfpsよりもむしろシミュレーション精度だそうだ。MDクロスシミュで動画を出されているわらしべ長者様より、「このモーションはふつうにやればふつうに演算できる」とのご助言もいただいた。

アニメーション精度をアニメーション(安定) 数字は5に設定して、再度演算を試みることにした。

リボンがずれる問題

リボンがターンでずれるということは、リボンがちゃんとリボンとして縛る機能をはたしていない、ということになるのであろうか。
結び目もやや伊達な感じである。なので、結び目が腰ひもの内側までちゃんと通るようにした。
それだけでなく、腰ひもとたれの部分で太さが違うのはヤバいので、そこもそろえるようにしたら、なんかいわゆるふくらんだリボンみたいな形にならなくて、重力に負けるというか、思ってるのと違う感。

そもそも結ぶとは何だろうか
とりあえず奥まで結び目を回してみた
帯の細さとリボン部分を合わせたら(合わせるのが普通だ)ちょっと寂しい感じに

リボンを結ぶ方法

手軽にするには、伊達リボンを作る方法がある。

また、MDの本には、以下の3つが紹介されている
①リボンのobjをインポート
②リボンの芯となるモーフ付きobjをインポートして結ぶ
③MDで縫い付けを工夫するトリックを用いる

いずれも手間がかかりそうなので、とりあえずこの系列の型紙でなんとかなってほしいという思いが強い

傍論

服に裏地つけたい
あとアバターの体型があまりに忠実に反映されすぎているのでMDでキャミソールとかつくるかもしれない

3日目(2022/07/27 水)

眠すぎてソフトを開くモチベがなかった。テキトーにウェブサイトを見たり動画を見たり。

4日目(2022/07/28 木)

リボン

とりあえずクローンレイヤー(下)を作成してみたら割と形が安定した。ただ、結び目のヒモがシックスパックみたいになっている。なぜか?と思って内部線を消したら消えたので、おそらく内部線どうし、自動的に縫い合わされたのであろう。

シックスパック

帯と結び目を結びたい気持ちがある。というのも、帯と結び目は本来同じ布のはずだから。ただ、内部線とか煩雑になるのも嫌である。

とりあえず結んでみた。

裏地を作る

どうせならワンピースの方も裏地を作りたい。それに、布感を出すために裾の始末をしたくなった。だが、それを始めた途端、演算が暴れ始めた。

裏地がはみ出ている

裏地をどうすべきか、という葛藤がある。スカートと完全セパレートにするか(二重物理を堪能できる)、糸ループを再現するか、あるいは完全にぬいつけるか。セパレートにするなら、もう少し裏地の丈が短い方が良さそうだし、そもそも側面を縫い付けるべきではない。他方、現状の続きをするなら、いったん完全に縫い付けた方が良さそうだ。とりあえず縫い付けてみる。スカートのfabricも検討したい。

ひと休み(2022/07/29 金~31 日)

7/29(金)はいくつかタスクがあった。7/30(土)~31(日)は旅行に行っていた。楽しかった。リアルロングスカートは良いものである。

5日目(2022/08/01 月)

旅の疲れもあり、比較的活動コストの低い読書に充てていた。
まずは裾どうし縫いつけることに。

内部線を使って縫いつける。
にっちもさっちもいかないので、シミュレーションを基本にして、リボンは固定したうえで粒子密度を10にしたら案外早く計算できた。(演算いらないところを固定するのは案外大事かもしれない)

結構頑張ったのでは?

肩も凝ってきたし、お風呂に入りながら演算を回す。

表布と裏布を縫う場所の表裏間違えた……

ごにょごにょ…….

んー!!!いい線行ってるけど縫い目がひっくり返ってバチバチしてるところが治らない!!!!!!
はあ……やり直しだこりゃ

6日目(2022/08/02 火)

ついでにキャミソール着せる。

仮装円柱ないとつらい。

縫い合わせのやりすぎで変な力かかっていたらしい。

2022/08/03~05

合宿。

7日目(2022/08/06 土)

服の型紙に取り囲まれるミクさん

割とよさげ?服の後ろ側がなかなか降りてくれないのはよくわからん
裏地つけると演算がややこしくなる

8日目(2022/08/07 日)

でけた。モーション入れる。偏ってるのは気にしない
もろもろあって、結局裏地はFabricで設定して、布1枚でやることに
めり込まないようにモーション調整をした。

9日目(2022/08/08 月)

さらに、リボンをドレスに縫い付けた。安定している前と後ろだけ縫い付けるか、全体縫い付けるか。演算方法を比較する。前後だけ縫い付ける方がよさげ

前後だけ縫い付けた場合
全部縫い付けた場合

あとは骨をはってるみたいになるのが気になるので。粒子間隔を5にしてベイク。
縫い目が傘みたいになるのは、縫い目の裾側が内側に巻こうとする力が多分に影響してそうな。本当に布ってどうしてこうもとぐろを巻きたがるんだ。もう2枚布重ねるのは二度としたくないな。というわけでここも削除。グッバイ、ビチビチ。
→憑き物が取れたみたいにめっちゃ軽くなったwどうやら2枚の布をくっつけるという手法は取らない方が良さそうである。禁忌くらいで考えておく。演算は汚くなるわ遅くなるわ。布の厚みはそれ用のレンダリングがあることだし。
一応、裾の始末はCut&Sewをして、別のFabricを割り当てることで再現した。あとはステッチでもつければそれっぽくなると思う。
なぜかファスナー取れたのでやり直した。

10日目(2022/08/09 火)

リボンがターンのときにバラバラになったり、位置がズレる問題。リボンを締め付けて対処しようとしたが、うまくいかなかったので、タックでとめたら解決した。
スカートが回転で広がるというよりも、偏った広がり方をするのは、モーションが回転移動より先に大きな横移動をするから、らしい。

3.Blenderでレンダリングする

11日目(2022/08/10 水)

アレンビックでBlenderにもっていく。アニメーションの項目にあるやつ+アレンビックがアニメーションを出力できる。

デカすぎる

スケーリングとMDにおけるUVの調整はなんとかしないといけないらしい。
裏地について、fbxだと色の変更が反映されているが、UVがどこにあるかわからない。逆に、abcだと色の変更が反映されていないので、ノード芸で変更する必要がありそうだ。
アルファ入りのパフスリーブがなぜか黒い。

12日目(2022/08/11 木)

テクスチャ画像の補正をしたらしい。

Discordでタンジェントとノーマルの違いの話をした。

パフスリーブのαに勝った。

これで勝てた

HDRIのアドオンとか入れた、デノイズを入れた。
厚みつきの布だとノード芸できないので、厚みなしの布にして、見様見真似でノード芸をした。UV取得ではなくabcとセットで出すUVでないと、マージンがつかなくて大変。
頭のメッシュをくっつけようとしたら、abcとobjの互換性の問題が発生した。
SDEFやらボーン構造やらと戦って、Blenderのボーン追従をゴニョゴニョしてたらしい。

13日目~15日目(2022/08/12 金~2022/08/14 日)

ぱんつぷらぐいん入れたリボンをMMD toolsで物理オンにしたら帰ってこなくなった。
無難にクロスすることにして、リジッドボディ使うのは無難に髪だけにしておく。
髪がすごくもっさりする。

あっぴー「嫌...前が見えない...」

MMD toolsで取り込むミクとMDに入れるミクの操作法が違うとアカンのはその通りなので、髪の演算等でMMD toolsを使うからには、MMD bridgeではなくBlender経由でMDにミクを入れることにしたい。そのために骨の向きを変えたり、ボーン構造を単純化しようとしてみたりしたが、難しかったのでお借りしている素体をそのままBlender経由でMDにもっていき、スカートの演算をBlenderに戻して云々というワークフローになった。
MMD toolsの組立は分離などすべてが終わってメッシュが確定してる状態ではないと、ダメである。

16日目(2022/08/15 月)

目の変なギザギザがあったが、星目とハート目をオミットしてインポートしたらギザギザしなくなった。全く同じ座標にしているとそういう不具合が起きることがあり、少しずらせば起きないらしい。

17日目(2022/08/16 火)

シャンデリアにエリア光源をつけた。張りぼてのガラスを建物の外に用意。プリンシプルBSDFでゴニョゴニョ作った
MMD Shader DevとプリンシプルBSDFを組み合わせるのではなく、プリンシプルBSDF一本でパラメータをいじる作戦に変更した。

less氏「壁を破壊して楽しんでるのかしら」
less氏「MMDだとデフォで無限遠まで見えるようにしてるしなあ」
MMD Shader Devのミクちゃん

18日目(2022/08/17 水)

床に仕事をさせたい。非金属の床だとあんま実は反射しないらしい。

シャンデリアを放射で点灯!

19日目(2022/08/18 木)

お洋服を見に行った。荷物は軽くした方がいい。あとnoelaかわいい。

20日目(2022/08/19 金)

肌の色をガンマ補正かけたりEmissiveで見えてはいけない部分が見えていないかを発見したり。眼のうるうる感を頑張ったり。内分の処理をするなど。

21日目(2022/08/20 土)

服の色を補正するなど

髪の物理に違和感がある。モデルのスケールが大きすぎる気がする。

4.髪とスカートのコリジョン

22日目(2022/08/21 日)

この後、Mayaの接線とベジェ曲線について考えてみた。

リボンがグチャった。スケールが小さいのにこの質量はブラックホールでも作ろうとしているんだろうか。

ブラックホール
髪がスカートに刺さって貫通するようになったのだ!?なぜなのだ!?

なあにこれ…コリジョン取れてないじゃん…
コリジョンとして設定したときに布をかけたら機能したのでリジッドボディとしたときに問題があるんだろう
リジッドボディをどうにかするか?髪にクロスを使うか?ダミースカートをつくるか?fbxを試すか?
fbxにして双方rigidbodyにしたら一応当たり判定はとれているらしい?

傍論

流体と布の干渉もやってみたいのだが、そのときに備えてBlenderのクロスも使えるようにしたいと思うなど

さらに実験

Blenderで流体をかけてみようと思ったが、再生がうまくいかない。調べてみたら、日本語ユーザー名のせいで、cacheフォルダのパスがダメだったらしい。

夏休み終了

約3ケ月のブランクののち、再びこの髪とスカートの衝突問題にコミットすることにした。


この記事が気に入ったらサポートをしてみませんか?