MMMの大きさ変更に関するメモ

なんだか今更ですが、
MikuMikuMovingはモデルデータの大きさ変更ができます。

今回は大きさを変えた時の挙動について、
今の私が知っていることをざっくり書いてみました。*1

【追記:Tips記事の方にもざっくりまとめておきました】


上限と下限

大きさの上限は10,000で、下限は0.0001となっています。

組み合わせることで最大100,000,000倍差が可能になりますが、
座標精度やカメラの描画範囲などを考えるとあまりオススメできません。
そこまで極端なサイズ差をやる場合は、
PMXエディタ等で大きくしたモデルデータを使った方が良いかも。

ちなみに、ホイールの上下で0.1ずつ数値を変更できます。


物理演算への影響

0.5倍よりも小さくなると強制的に物理演算がOFFの扱いになります。

大きさが変わると物理パラメータにも大きさが影響し、
剛体を繋ぐジョイントが剛体の重さに耐えられなくなることもあります。
古くからMMDモデルで使われている「バネ付き6DOF」は
名前の通りバネのような挙動をする為、スカートが伸びてしまうことも。

事前に物理演算焼きこみで固定化してしまうのがブナンな選択です。


中心となる位置

大きさを変える場合、必ず中心となる場所が存在します。
これが……ややこしい。

まず「全ての親」の初期位置が X:0,Y:0,Z:0 にあるモデルデータ。
この場合は全ての親ボーンを中心に大きさが変わり、
全ての親ボーンそのものは大きさの影響を受けません。
たぶん一番分かりやすい挙動。

次に「全ての親」の初期位置が X:0,Y:5,Z:0 にあるモデルデータ。
この場合は全ての親ボーンから見て Y:-5 の位置を中心に大きさが変わります。
慣れてないとちっとも予測のつかない挙動。

実は上記2つの例はどちらも大きさの影響を受けていて、
モデルデータの根元に当たるボーンから見て、
X:0,Y:0,Z:0 を中心に大きさが変わっています。

1つ目の例では「ボーンの位置」と
「大きさ変更の中心になる位置」がぴったり同じなので
そのボーン自体が中心かのように思えているのです。


さて。ここまで「全ての親」ボーンがあること前提でしたが、
もしこれが無い場合、「センター」が代わりとなります。

となると「リストの一番上にあるやつ」が基準になる……と思いきや、
モデルデータの位置に影響しない「操作中心」は
大きさの中心位置にも影響しないようです。

……私はこのへんまで試してメモして満足して終わりました。


個人的にやりやすい方法

全ての親とセンターの中間となるボーン「配置用」を追加して、
配置用で配置、全ての親で向き調整、とすると
大きさの変化に対応させやすく、人物も背景も同じノリで動かせます。

全ての親を多段化すると地味に使い勝手が良くなるので、
MMD使いの人達にもちょっとオススメです。


最後に

さて、大きさを変える時の中心位置が
特定のボーンの位置によって変わることが分かりました。
ということはつまり、上手く使いこなせば
おへそを中心に、頭を中心に、好きな位置を中心にできます。

更に、他のモデルデータと関連付けすることで、
ステージにあらかじめ用意されたダミーボーンの位置を中心に縮む
……ということも可能になります。
きちんと組み立てることで柔軟な縮小が可能になるのです。


というわけで最後にこちら。おまけです。
Dance in Scale Portalと、その舞台裏となります。


*1:MMM ver.1.2.9.2 64bit版を元に書いています