メモ「ミクちゃん部屋にあるファンをpmxの機能で回したい」

※かつてニコニコのブロマガに投稿した記事です。

ぴくちぃさん製作の、この部屋・・・

ご覧の通り、天井にプロペラ・・・じゃなくてファンが付いています。
ファンは「MMDエンジン」と呼ばれるバグによって永続回転するようになっており、
一番最初にキーフレーム登録すれば延々と回り続けるようになってます。

しかし、MMMではMMDエンジンのバグが修正されており、回りません。
仕方ないので一定フレームごとにキーフレーム登録を繰り返していたのですが・・・

こんな動画を見つけました。・・・サムネに引き寄せられて。
どうやら、pmx2.1には物理剛体を繋ぐ「ジョイント」の種類が増えていて
今まで以上に色々な事ができるようになっているそうです。

最初、この動画を見つけた時は「Phun的な事がやりやすくなったのか!」程度で、
具体的にどうすればそのジョイントを組み込めるのかまでは分かりませんでした。

それから数ヶ月後・・・
なんとなくPMXエディタを触っていたら、なんとなく上手くいったので、
改変過程をここにメモしておきます。ちなみに「ヒンジ」以外はまだ触ってません。
(内容が間違ってたらゴメンナサイ)(あと、完全に個人用メモです)



 1.ボーン用意 

ここでは、ぴくちぃ氏の「ミクちゃん部屋」でメモしていきます。
ファンをそのまま回転させられる「ファン」ボーンの親ボーンとして「ファン親」ボーンを作成しました。
子ボーンは親ボーンよりも下に配置する必要があるので、必要に応じてリスト内の位置を変更。
2つのボーン位置は同じにして、とりあえず回転・表示・操作が可能にしておきます。

 2.物理剛体用意 
今回は物理剛体が1つも無い、旧バージョンのモノを改造しましたが、
現行のモノでは干してある服に物理剛体が入っているようです。
ファン」と「ファン親」ボーンそれぞれに剛体を用意します。
位置はボーンと同じ位置にし、他の剛体と接触しないように
非衝突グループ」はすべてチェックを入れておきます。
天井に剛体がある時点で接触する可能性は低いけど、なんとなく入れておきます。
剛体のタイプは片方を「ボーン追従」もう片方を「物理+ボーン位置合わせ」にして、
扇風機本体とプロペラのように、片方だけが自由に動くようにしておきます。

 3.ジョイント作成 
剛体もそうですが、まずはリスト内で右クリックして新規作成。稀によく忘れる。
ジョイント種類を「ヒンジ(Hinge)」にして、先程の剛体2つを繋げます。
ジョイントには回転・移動の制限が付けられますが、今回はいらないので
制限/パラメータ」の回転値には「1」と「0」を入れます。
パラメーター/モーター」の数値を入力する前に「パラメータ初期化」をクリックして
fc」の所に「0.9, 0.3, 1」が入っている事を確認します。
その下の「回転」にとりあえず「1, 1, 50」と入れておきます。
左端が「自動回転させるか?(0=No,1=YES)
中央が「回転速度」、右端が「回転のトルク(強さ)」になっています。
ちょっと戻って上部にある「位置/回転」に。
位置」はボーン位置設定で「ファン」ボーンと同じ位置にしておきます。
回転」は軸向のプルダウンリストから「Y」を選んでおきます。

 4.動作確認 
実際にMMMで読み込んで、ちゃんと回るか確認します。 おわり。


・・・とりあえず現状、回ってくれるだけでも十分なのですが、
部屋のモデルを5倍以上にするとファンが暴れてしまうので改善の余地アリです。
また、インパルスモーフで好きな時に回転/停止を切り替えできるようにもしたいです。

でも、やる気が尽きたので今の所はここまで。