CINEMA 4D メモシリーズと同じ感じで MikuMikuDance をアレコレする上で気付いた事とかのメモをぽちぽち掲載していこうということで始めてみた新シリーズ。
いくつか分類があるけど、まずはPMXモデルを編集する上でのチップスなんぞを書きとめる「PMXメモ」よ。
ロングスカートの広がりを物理で綺麗に制御したい時
こんな感じの広がった形(プリンセスライン?)のスカートに対して物理設定を行った場合、デフォルトのジョイントの設定だと下図のように萎んで残念な見た目になってしまう事が多いんじゃないかしら。
ジョイントや剛体に対してデフォルトの設定が適用されている場合、物体は下方向(重力方向)に向かって移動しようとするカタチになって、件のスカートのように柔らかい布が垂れ下がっているような動きをするわ。
バネを使ってジョイントに対して戻るチカラを加えても、このままでは下方向に向かって伸びるバネを設定してしまうだけだから、ジョイントに対してチカラの方向(可動範囲)を指定してあげる必要があるの。
※詳細は後程解説
ジョイントにも向きがある
PMXエディター上でジョイントを選択すると、3本の線が表示されるんだけど、コレがジョイントの向きを示す軸ね。
パラメーターとしてはXYZの回転量として定義されているわ。
これを、X軸回転(赤い軸)のみでスカートの広がりの向きを制御できるように下図のようにスカートの外向きになるように調整してあげると、簡単に広がりの量(強さ)を設定できるようになるわ。
この時、緑の軸がスカートの上方向、青の軸がスカートの外方向になるようにするのがポイント。
向きの調整はジョイントの「位置/回転」パラメーターの「回転」で指定してもいいけど、3軸を数値で指定するのはなかり難しいから、PmxView 上でジョイント選択モードを使用して直接ジョイントを回転させると簡単よ。
ジョイントをクリックするとハンドル(リング状の物体)が表示されるから、コレをD&Dで動かすことでジョイントを回転させることができるわ。
ジョイントの向きで変わる動作
最初の例であげたスカートがしぼんでしまう現象は、下図のようにジョイントの向きがデフォルトのままで、可動範囲が下向きに設定されている事が原因ね。
この状態だと、ジョイントは下向きに稼働するチカラを与えられる(実際の理屈だとちょっと違うけど)から、結果としてジョイントは縦一列に並ぼうとするワケ。
可動範囲に関して、私は最初思いっきり勘違いしてたんだけど、ジョイント間の向きからの相対角度じゃなくてジョイントの向きに対する相対角度だったのよね。
可動範囲をゼロにすれば、ジョイントはまったく回転しないでモデルデータ上のジョイントの位置をキープする(物理を設定していない状態と同じ動きをする)ものだとばかり思ってたんだけど、実際は違ってたと。
で、これをスカートが広がるように設定するには、ジョイントをスカートの向きに合わせて回転させれば良いというワケよ。
実際には重力やバネ、スカートにぶら下がっている剛体の総質量なんかの関係でカッチリ向きを合わせればOKというわけでもないんだけど、この向き調整が基本になるわ。
補足:
ジョイントの可動範囲はあくまでジョイント単体で発生するチカラに影響を与えるもので、他のジョイントや重力、オブジェクトの移動なんかによって可動範囲を超えて動くことがあるので注意。
今回は以上。
次回はスカートの剛体について何か書いてみようかと思うわ。