読者です 読者をやめる 読者になる 読者になる

ぱらつり記

No description

MMDモデルのスカートを1頂点1剛体化してみた話

久しぶりの更新です。

ふわふわスカート is GOD

f:id:paralleltree:20160321231741p:plain

某動画を見てやってみました。備忘録です。

手順

今回犠牲になる編集するモデルはクレサト式EXルーミアになります。

こちらの記事にあるように進めていきます。 途中でちょくちょく別名保存していくとやらかした時のダメージが軽減されます。

PMXEditorを使用しますが、作業中にPMDEごった煮プラグインを利用します。

まずはPMXEditorでモデルを読み込み、 スカートに関連したボーン、剛体、ジョイントを削除します。

これが f:id:paralleltree:20160321225019p:plain

こう f:id:paralleltree:20160321225034p:plain

次に、スカートの親となる下半身ボーン、対象の頂点があるスカートの材質を選択した状態で、編集 > プラグイン > User > EtcPlugin > BODY > 選択した材質からボーン/剛体/Jointを作成する。(別名パンツプラグイン)を実行します。

f:id:paralleltree:20160321225101p:plain

スカートの頂点に対してボーンと剛体が作成され、対応したジョイントが追加されます。

f:id:paralleltree:20160321225211p:plain

ボーン

できたボーンの移動を無効にして、一番下のボーンに関しては非表示とします。

f:id:paralleltree:20160321225244p:plain

次に各々のボーンの表示先を設定していきます。 上から2番目にあるボーンを選択して、テキストボックスに表示される番号を一番上のボーンの表示先ボーン番号に入力します。

正しく入力できていれば、ぽつぽつとしていたスカートボーンが上から順に並んでいるように見えるはず。

f:id:paralleltree:20160321225422p:plain

プラグインでできた先端を除くすべてのボーンの表示先設定が終わって間違いがなく下のようになっていれば、今度は親ボーンを上から設定していきます。

f:id:paralleltree:20160321231032p:plain

プラグインでできるボーンの名前は規則性があるようでなく、その上親子関係は表示されずに危なっかしいので、親ボーンは表示先の後に設定すると良いでしょう。

さて、ボーンの設定中にボーン名が赤くなって「なんだこれ」となったかもしれません。

f:id:paralleltree:20160321225445p:plain

自動生成されたボーンに親子関係が加わりましたが、もともとの順序はバラバラです。 「全ての親」ボーンがボーンリストの一番上にあるように、親は上、子は下に配置されていなければなりません。

ファイルからPMXデータの検証をすると、

■ボーン
系列順序確認 : 103 | ... × Bad! 以下のボーンは親の変形順序が子より後になります(ボーン順と変形順序を確認してください).

と言われます。

これを解消するために、一番上のボーンを一括で範囲選択して、Ctrl-↑でスカートボーン集団の一番上に持っていってやります。

f:id:paralleltree:20160321225552p:plain

1つ1つの操作はなかなか重いですが、次の段、また次の段と進めて、PMX検証で系列順序確認部のエラーがなくなればこの作業は完了です。

ここで、一番下のボーン以外のスカートボーンをすべて選択して、ローカル軸修正をかけておきます。これが後のジョイント設定で使え(るようになるはずだと思ってい)ます。

f:id:paralleltree:20160321225605p:plain

剛体

作成された剛体のうち、一番上のものをボーン追従に、それ以外のものを物理演算に設定しておきます。各剛体の形状、大きさは適度に調節します。 また、非衝突グループのチェックも必要に応じて入れておきます。

f:id:paralleltree:20160321225613p:plain

ジョイント

作成されたジョイントを選択して、編集 > プラグイン > User > EtcPlugin > JOINT > 選択したJointを接続剛体Bのボーン角度で回転するを実行します。

f:id:paralleltree:20160321225623p:plain

一応ボーン設定の最後で設定したローカル軸が生きているはずですが、一番下のジョイントは表示先がないせいかダイナミックな感じに回転してしまいます。 これらジョイントの制限は0にしたほうが無難のようです。

ここからは自分のための覚え書きになりますが、ジョイント制限は下に行くほど緩めにしたほうがいいのかな……? とはいっても0.1前後単位の話になりますが、全て0のままだとスカートが垂れてくれないので難しいところです。

とりあえずZ軸方向の移動とx, z軸回転を3段くらいに分けて増加するようにしておきました。

結果

ここまでの作業で、記事冒頭のような形に。

元のモデルが良い調整で大きな差は出ませんでした。

ちなみにこれと元モデルを読み込んだところで、私のマシンでの視点移動はもっさり化しました。。。

感想とか

ボーン設定キツイ

我ながらよく途中で放り出さなかったなと。

もっとここ楽できるぜとかあったらコメントください。

あとジョイント設定のおすすめサイト教えてくださいお願いします。

参考

http://mmd.stella.sub.jp/?eid=103mmd.stella.sub.jp