Wiki Menu

最近の更新 (Recent Changes)

2020-05-31
2015-11-08
2015-11-07
2015-11-05
2015-09-11

最新リリース情報

MID2Motion (1.2.1)2015-11-07 15:31
MMDIKSolver (1.2)2015-06-13 19:45
MMDMotion (1.5.1)2015-11-05 17:38

Wikiガイド

MMD IK Solver GUI

MMDIKSolver の簡易GUI です。MMDIKSolver はライブラリーですが、 プログラムを組まなくても簡単に使えるよう、ダミーボンを利用した GUI をつけました。

GUI のパネル

screen.png

メニューバー

あまり役に立たないにメニューバーです。ツールに入ってるのは今のところMMDMotion のおまけ VMD2CSV だけです。

IKモデルパネル(左側)

IKで動かすモデルの設定です。

  • モデル読み: PMD, PMX, MMDモデルCSV を読み込みます。ボタンを押すとファイル選択ダイアログが開きます。他に隣のテキストボックスにドロップすることでも読み込めます。ちなみにモデルの読み込みは結構時間がかかるので、数秒操作不能になることがありますが、あせらないでください。
  • モーション読み: VMD, MMDモーションCSV を読み込みます。これはIKを実行する前の体勢を入力するものです。やろうと思えば歩きながら、一定の位置を指差すこともできます。
  • その下のコンボボックス: IKのターゲットに接近させる先端を選びます。
  • 先端非回転チェック: これは手首などをIK先端に選んだ場合に、その先を空間で常に同じ方向を指させたい場合につけるチェックです。
  • リスト: 先端の祖先になっているリストが近い順に並んでいます。 IK で動かすボーンには、このような祖先ボーン以外を指定すると永遠に終わらない可能性があるので、指定してはいけません。簡易 GUI では、連動親の指定はできません。
  • 変更対象テーブル: 親リストから選んだボーンの回転制限や除外を行います。一般に「指」は z 軸回転のみ.「捻」「ひざ」は x 軸回転のみ、「ひじ」は y 軸回転のみを想定して作られてます。ちなみに、この x, y, z はグローバル座標系のものじゃなくて、ローカル座標のものです。はじめから回転軸が制限されているもの(limited にチェックがあるもの) は、変えられません。

ターゲットパネル(右側)

  • IKモデルと同じ チェック: これは同じモデルの違う部位をIKで追う場合に使うもので、MMDの IK 機能に近いものです。
  • モデル読み: PMD, PMX, MMDモデルCSV を読み込みます。IKモデルと同じファイルを読み込むこともできます。その場合は、IKモデルとは違う動きするモデル扱いになります。
  • モーション読み: VMD, MMDモーションCSV を読み込みます。下のターゲットボーン選択は、このファイルの中に記録されてるボーンから選ばれますから、必ずターゲットボーンを記録して置いてください。
  • その下のコンボボックス: IKに追わせるターゲットボーンです。
  • その下のテーブル: ターゲットボーンのキーフレームが表示されてます。距離の部分は、IKを解いたときにモデルのIK先端とターゲットの間の距離がリストされていきます。うまく成功すると、10-8 より下の値になってますが、どうしても届かなかったら(多分遠すぎる)、それなりに大きな値が出てきます。
  • フレーム補間: これをチェックつけないと下に出ているキーフレームに対してだけ IK を解きます。つけていると全てのフレームを補間して解きます。意味は使用例で確認してください。

下側

  • 実行ボタン: IKの変更対象とターゲットボーンが決まるとIK Solve を実行できるようになります。
  • 保存ボタン: 実行ボタンのあとに押せるようになります。IK解答のモーションの保存先を聞いてくるので、指定してください。これで保存しないと何も残りませんよ。
  • さらに下のテキストボックス: たまにエラーとかが書かれている場所。

使用例

MMDIKSolver の例その1と同じことをします。

  1. まずモデル・モーションを読み込みます。モデルの読み込みが一番時間がかかるもので、数秒停止する*1とおもいますが、気長に待ちましょう。
  2. 左IKモデルに合わせる先端である "左人指3先" を設定しましょう。すると下のリストにその祖先ボーンがずらっと出てきます。
  3. この祖先ボーンから動かすボーンを選び、→ボタンで動かすボーンに追加していきます。今回は、"左人指1","左手首","左ひじ","左腕","左肩","上半身" まで。
  4. 追加されたボーンの回転の制限をします。
  5. 右のターゲット側には、黒板ダミーボーン "右黒板DB3" を指定します。そうするとキーフレームのリストが下に出てきます。
  6. 下の「実行」ボタンが押せるようになったはずです。押すと IK が始まります。1秒くらいで終わると思います。
  7. 保存ボタンが押せるようになったはずです。押すと IK で動かしたモーションだけ書かれているファイルの保存先を聞いてきます。今回は仮に ”solution.vmd" と呼びます。
  8. MMDでIK モデルに追加読み込みします。なぞってるでしょ? ちょっとおかしい? それはダミーボンの移動間隔の 10 フレームの間で、回転ボーンモーションの補間が回転の補間なので、腕が回転して弧を描くからですね。 解決法は同じく全フレームを補間することですね。GUI のターゲット側にある「フレーム補間」にチェックを入れてから、また「実行」を押します。
  9. 今度はフレームリストに全てのフレームが入ってると思います。同じく保存して、MMDで読み込んでみます。
  10. どうですか? 満足しましたか? いろいろ試してみて、自分の満足がいく設定方法を試してみてください。

  1. *1マルチスレッド化すると、待ち時間の間に次の作業にいけるのですが、あくまで「簡易」GUI なので我慢してください。