【MMD】柔軟剤プラグイン解説(基本編)

ななななななな様の柔軟剤プラグインv017の使い方を非公式に我流で解説していく。
非公式なので誤りが含まれる可能性があるのであらかじめ了承されたし。

また、作者ご本人の配布動画の説明と解説ページ(https://ch.nicovideo.jp/na7)は既に見ているものとして、解説はそれ以外の部分に絞る。

プラグイン本体は↓



■適用できる形状/そのままでは適用できない形状

【適用できる形状】
・円筒形
・円筒形にスリット1本
・1枚の布
のいずれかで、横列が枝分かれや合流せずに1段ずつ数えられる形なら概ね適用可能。


トポロジー(ポリゴン割り)が上記のようになっていれば外観やアウトラインはぐにゃぐにゃに曲げてあっても問題ない 。
(例えば巻きスカートは伸ばせば1枚の布なので適用可能)

旗やマントのような、筒になっていない布にも使える。

※適用できる構造のはずなのにエラーになる場合、プラグインウィンドウの下枠を引っ張って詳細メニューを出し、以下の設定を変えることで実行できる場合がある。
・「予定剛体数の最大/最小をnにおさめる」のチェックを外す
・「経路が単一でなくても~頑張る」のチェックを入れる




【そのままでは適用できない形状】
以下のような形状だとそのままでは適用できなかったり、エラーにならなくても剛体が上手く入らなかったりする。ただ、強引に適用する方法も無くはない(応用編解説参照)

・フリルなどの複雑な装飾がスカート本体と同じ材質で縫い付けてあるもの



・1枚ポリではなく縁の厚みがあるもの



・布を重ねたような多重構造になっているもの



・スリットが2本以上入っているもの



・横列が途中で融合したり分岐したりして段があやふやなもの
 (以下の例だと赤線の部分が何段目なのか判断できない)



■基本パラメタ設定





【近傍判定精度】
密集している頂点を1つの頂点・剛体として集約する判定の広さ。

頂点が同じ場所に複数重なっていたり、デザインの都合で折り目部分だけ頂点が密集していたりするとき用の設定。

図の例だと青丸のペアの頂点の距離より近傍判定の広さがぎりぎり大きくなるように設定すれば、2つの頂点で剛体1個になる。





【剛体の段数】
右上の剛体の段数で、縦に何段の構造にするか決めることができる。
例えばデフォルト(5)だとモデルのポリゴンがいくら細かくても剛体は5段配置になる。


ロンスカでここをケチるとろくなことにならないので膝下より長い丈なら10段は積むべき(自論)。マキシ丈なら15~20段くらいあっても良い。

なお、1頂点1剛体化したい場合はモデルのスカートのポリゴン段数と同じ段数を指定する。
モデルの段数は中央の剛体配置表の「段」で確認できる。
以下の例だと段の一番下が21なので、0段目と足して22段が最大段数になる。



試しに22段を指定して実行すると、上の5段の例と比べて22段すべての列に剛体が分散して入ることが分かる。



【剛体数の上限】

適用対象の部位に割り当てる剛体数。
多いほうが布っぽくなるが処理も重くなるので悩みどころ。

たまに勘違いされているが柔軟剤プラグインは1頂点1剛体化用ツールというわけではなく、本来は指定した数の剛体を上手く散らばしてだいたい均一に配置してくれるのが利点なのである。
※スカートの頂点数よりも大きな数を入れると1頂点1剛体にすることもできる、と考えるのが正しい。
なお、実際に配置される剛体の数がスカートの頂点の数を超えることはないので、1頂点1剛体化したい場合は"10000"などの極端に大きな数を指定すればよい。

私の感覚だと剛体数による処理の重さの目安は
 ~100 低スぺに優しい
 ~200 モデル単独なら余裕。3人以上の共演は危険
 ~500 リアルタイム処理(60fps)の上限
 ~1000 物理ONのままで操作できる上限
 ~1600 グラボがGeforceの環境でボーン数過多による強制終了が起きない上限
 1600~ 扱いに特殊な訓練が必要
となる。

【振り分けボタン】
段数と剛体上限を決めて振り分けを押すと左の表に段ごとの予定剛体数が入る。
(指定段数がモデルの構造より少ない場合、剛体が入らない段は0になる)

「裾の円周が長い段には多く」のように、自動的に剛体の密度を考慮した分配になるが32-32-32のように規則的な分布にしたければセルをクリックすれば手動入力でも変更できる。




【回転制限の緩め度】
これはジョイントの硬さ、つまり布の硬さと考えてよい。


小さいと復元力の強い膨らんだスカートやレザーのような動きになり、
大きいと真下に垂れさがるシルク系の布になる。

ジョイントの向きごとに3種類あるが、よく分からない場合は全て同じ数字で揃えて問題ない。
私の好みは60くらい。


【最下段剛体質量】
支点となる腰周りの剛体は必ず質量1になるように固定されており、
下段(スカートの場合は裾)の質量をここで指定する


間の段の質量は
最上段:1.0 ~ 最下段:指定した値
で自動的にグラデーションになるように設定される


概ね、小さくした方が軽やかに、伸びにくくなる。
1に近づけるほど重力に負けて伸びやすくなるので小さめを推奨。


【追加オブジェクト名称】
柔軟剤で追加されるボーンや剛体の名前を決める。
演算の動きには影響しないのでデフォのままでもいい。

複数部位に適用する場合には
 スカート:sk
 マント:mt
のように別にした方が分かりやすい。

※長いとMMDのボーン名称の長さ制限で不具合が出やすくなるのでなるべく2文字程で簡潔に


【親ボーン指定】
柔軟剤で生成されるボーンの親ボーンを決める。

スカートの場合はモデルの下半身ボーンを指定するのが普通。
(マントなら上半身2などになる)
操作しやすいようにあらかじめ下半身ボーンの子にスカート親ボーンなどを作っておいてそれを指定するのも良い。

ちなみに柔軟剤プラグインだとスカート全体の親が単一のボーンになり、縦の列のボーンが親子関係にならないが、物理演算で動かすならボーンを繋ぎ直す必要はない。
※ジョイントで繋がっていればボーンの親子関係は演算に影響しないため。



■適用後にやるべきこと

剛体タブで追加された剛体をシフト+左クリックで全部選んで諸々の設定を行う。


・剛体グループを決める(他の部位で使われていない番号にする)
 ※ただし16番はMMD本体の床剛体なので使わないこと

・非衝突グループを設定する(体・尻・足などスカートと当たる剛体のグループを確認してその番号のチェックを外す)
※これをしないと接触判定がない

・剛体の形状
必要に応じてサイズや形状を変える。

MMDのジョイントの強度は剛体のサイズが小さすぎると弱くなるため、デフォルトのサイズ0.2の球ではスカートが崩れやすくなる恐れがある。
その場合は剛体のサイズを0.25~0.3以上にすると安定しやすい。



また、球型だと剛体の隙間が大きくなってしまう場合は箱(板)剛体にしてサイズを広げることで貫通しにくくなる。柔軟剤プラグインで作成した剛体は「高さ」が厚みになるように配置されているので、サイズの高さだけ小さめで他2つを大きくすると薄い板になる。



・剛体の物理パラメータ変更

一例だが、ふわふわの布にしたい場合は移動減衰を上げるとよい。
(0.99~0.999999程度。1.0は特殊な動きになるので性質を理解していないなら使わない方が良い)
また、膝や腕に引っ掛かりやすくするなら摩擦を1にする。
反発は基本的にゼロのままでよい。


 応用編に続く!