Mikoto用mqoをRokDeBone2へ

サンプルの準備

今回はいよいよmikoto用メタセコファイルをRokDeBone2で読み込んでみます。
サンプルは前回の「Mikotoのボーンをいじってみた」で修正した miku01_BONE.mqoを使います。
修正前のファイルでもokです。

輪郭を消す

さて、RokDeBone2で読み込む前にモデルを少し修正します。

RDB2ではトゥーン設定を行うとマテリアルごとに輪郭線の設定を行うことが出来ます。
また、輪郭データがあると「影3」での頂点単位の影響度設定の際、輪郭用モデルが 邪魔をして頂点がピックできず影響度がうまく設定できません。

つまり、RDB2では輪郭データはないほうがいいということです。
消してしまいましょう。

メタセコイアで前回修正したmiku01_BONE.mqoを読み込みます。
・全てのオブジェクトを表示にして、ロックもはずしておきます。
・左側の編集オプションで、点・辺・面をONにしておきます。
・材質の中から「mat2」をクリックして選択状態にします。
  「mat2」が輪郭モデルの材質です。これの色を変えてみるとよく分かると思います。
・メニューバーの編集から「現在の材質の頂点・面を選択」をクリックします。
・これで、輪郭モデルだけが選択された状態になります。
・Deleteキーを押して選択した面を削除します。
  輪郭モデルが消えたのを確認してください。
・上書き保存して終了します。

これで準備完了です。

RokDeBone2で読み込む

お待たせしましたようやくRokDeBone2です。
RDB2で修正したモデルを読み込んでみます。

  1. RDB2を起動します。
  2. メニューバーから「File」→「形状ファイルの読み込み」→「mqoファイルの読み込み」を選択します。
    ファイルを開くダイアログが開きます。
  3. 先ほど修正したmiku01_BONE.mqoを指定して開きます。
    MQOダイアログが開きます。
  4. 倍率を8.0
    ボーン形式を「mikoto形式の、ポリゴンのボーンデータを含む。」にします。
    ok押します。
  5. 「mikoto用データの、間接の曲げ方の設定」ダイアログが開きます。
  6. 間接の曲げ方はデフォルトのままokを押します。
    (デフォルトではスキニング有り無しの自動ブレンド。意味がよく分からないのでそのままで。m(_ _;)m)

読み込み完了です。

ボーン付でモデルが読み込めたはずです。
階層構造エディタを見てください。ボーンの親子関係やボーン名までまでちゃんと読み込まれています。
さらに左右対象モデルでは[L][R]記号と_X+,_X-が自動で追加されています。

個人的には「_X+,_X-」の付け方規則が理解できなかったので、大変助かる機能です。

RDB2とmikotoの違い

とりあえずボーンを動かしてみます。
RDB2はmikotoと違い、ボーンの先端の「○」をクリックしないと、ボーンの選択や移動が出来ません。
おかげでボーンが込み合ってる場所でもボーン選択がしやすくなっています。
そこに注意してmikotoの時のようにボーンを動かしてみてください。


髪の毛を動かすと分かりやすいと思いますが、選択したボーンとその子ボーンしか動いていないと思います。
mikotoの時のように親ボーンも子ボーンに引っ張られて動かすにはIK階層の設定を変更する必要があります。

どこでもいいのでボーンを選択できる位置で右クリックします。
IK階層数の設定モードジョイントごとに設定をクリックして、ジョイントごとに設定にチェックマークを入れます。

操作モード変更

これで親ボーンが子ボーンの影響を受けるようになります。
髪の毛の先端を動かすと、そのボーンにつながっている他のボーンもつられて動くようになります。


ではさらに、もう少し色んな場所を動かしてみてください。お気づきでしょうか?

影響度設定がうまくいっていない

どうやら影響度が一部ぐしゃぐしゃのようです。○| ̄|_

頭、体、スカート、ネクタイなどはいいようですが、髪の毛や手、足などがぐしゃぐしゃで、他のボーンの影響を受けてしまっています。


対策する前にもう少し見比べてみます。(実は対策は簡単。後で説明します。)
肩や髪の毛の付け根をよく見てみると、mikotoでは表示されなかった浮動ボーンが表示されています。
mikotoの時と違ってこのボーンは簡単に動かすことが出来ます。
しかし、このボーンにつながっている子ボーンを動かしても、これより親のボーンに影響がありません。
手や髪の毛を動かすとよく分かると思います。
どうやら浮動ボーンをちゃんと認識して「IK伝達禁止フラグ」をONにしてくれているようです。

影響度 - 命名規則で設定

今のままでは影響度の設定がうまく引き継がれている部分といない部分が混在しています。

ここで一旦RDB2での影響度設定の方法を調べてみます。

1,デフォルト状態
ボーンと頂点との距離と角度によって、影響するボーンとその影響度が決定される。意図しない形になることが多い。
2,パーツ単位の影響ボーン指定
「影1」。影響度をパーツ単位で指定できます。
3,影響範囲の形状を指定、編集、変換
メインウインドウの「影2」ボタンを押すと、形状による影響範囲設定モードになります。
4,名前による影響ボーン指定
階層構造エディタで名前を変更することで影響範囲を指定できる。
書式は「表示オブジェクト名-影響ボーン名」。スキニングは無し。
mikotoと同じ書式ですね。
5,頂点単位のペイントによる設定
「影3」。頂点単位の影響度設定が出来る。

とあります。
どうやらが利いているようです。
4はmikotoと同じ命名規則なので、ボーンやボーンはそのまま名前による影響ボーン指定が働いて 影響度が設定されているようです。
それに対してボーンやボーンは、ボーン名に[L][R]や_X-,_X+などが追加され、 名前が変わってしまっています。そのため今のパート名では存在しないボーンを指定していることになります。

では、命名規則にしたがってパート名を変更してみます。

階層構造エディタ

変更されたボーン名にあわせて[R]_X-[L]_X+を追加します。

修正前 修正後
修正前 修正後

影響度がうまく設定されました。

何はともあれ保存

修正が終わったらさっさと保存してしまいます。
メニューから「File」→「形状ファイル書き出し」→「sigファイルの書き出し」
適当なファイル名を指定して保存。

これで一安心です。

影響度 - 影響範囲で設定

髪の毛は影響度ボックスを設定していました。RDB2ではどうなっているか確認してみます。
「影2」をクリックして影響範囲作成、調整ダイアログを開きます。

一番下の「影響範囲形状の…」というところに影響度ボックスが読み込まれています。
RDB2は影響度ボックスが設定されていた場合、これも読み込むことが出来ます。
しかし仕様上は「アンカー形状に複数の形状を混合させることは出来ません。」となっています。
が、 うまくいっている様子…。
よく分かりませんので、そのうち調べることにします。

影響範囲については今回は保留です。

影響度 - 頂点単位のペイントで設定

もう少しモデルを眺めてみます。

不自然な影響度
髪の毛の付け根が不自然な形に変形してしまいます。
影響度設定が頂点単位ではどうなっているのかを確認してみることにします。

そのままでは見にくいので、邪魔なモデルを非表示にします。

階層構造エディタで「m頭-頭」を右クリック。
Sig Paramsダイアログが開くので、「このオブジェクトを無効にする。」にチェックを入れてokをクリックします。
頭のモデルが非表示になりました。
mリボン-頭」も同様に非表示にします。
これで見やすくなりました。

影3」をクリックして頂点単位影響度設定ダイアログを開きます。
一番上のツリーでボーンを選択すると、選択したボーンが影響を与えるモデルは着色表示されます。
各色の影響度の意味はこのようになってます。

赤 … ボーンからの距離と角度
緑 … ボーンからの距離
青 … 1つのボーンだけ
黄 … 影響度の数値指定
水色… 軸対称点からコピー

赤、緑、黄は複数のボーンの影響を受け、青は1個のボーンのみの影響を受けます。


ということで、まずは髪の毛の付け根ボーンである「ツインテール1[L]_X+」をダイアログ内のツリーから選択してみます。
まあ、こんなものでしょうか。
次にその親ボーンである「FLOAT_ツインテール1[L]_X+」を選択してみます。
このボーンは浮動ボーンで影響度は何も与えていないと思うのですが…。

黄色ですね。

修正しましょう。
ツインテール1[L]_X+」を選択。
影響度の計算方法の選択」で「1つのボーンだけの影響を受ける(青色)」を選択します。
影響度設定方法の選択」で「排他」を選択します。
排他は、すでに設定してある影響度情報を全て破棄してから影響度データを設定します。
つまり他のボーンで影響度が設定されていたら、それらも全て無効にしてくれます。
FLOAT_ツインテール1[L]_X+」の影響を無効にしたいので今回はこれを使います。

FLOAT_ツインテール1[L]_X+」で黄色だった頂点を全部青に変えます。

頂点単位の影響度設定

これで完了です。

マウスの左クリックの役割」で、ボーン変形するを選択すると、ボーンを動かすことが出来るようになります。
ボーンを動かしてみて影響度の具合を確認します。
変にひしゃげずにいい感じです。
「閉じる」ボタンを押してダイアログを閉じます。

髪の毛を適当に動かして確認してみます。
先ほど確認したときと同じに動いてますね。(当然ですが。)
ここまでうまくいったら、反対の髪の毛も同様に修正してしまいます。
おわったら「m頭-頭」と「mリボン-頭」のオブジェクトを有効にもどします。

上書き保存。

輪郭を設定する

輪郭の設定をします。
「トゥ」をクリックします。
トゥーン1設定ダイアログが開きます。

とりあえず配色が気持ち悪いのでこっちを先に修正することにします。
設定パーツ選択」からパーツを選んで、それぞれ「影のテクスチャ」を設定しなおします。
テクスチャに影まで書き込んであるので、今回は「暗い色~ハイライト」まで全部白(255,255,255)でいいでしょう。
面倒ですが、全パーツでやらないといけません。
○| ̄|_


次は輪郭の設定です。
実は輪郭はトゥーン1設定ダイアログを開いた時点ですでに有効になっています。

輪郭は下のほうにある「輪郭(マテリアルごと)の設定」で行えます。
・輪郭を設定したいパーツを「設定パーツ選択」で選択します。
・「選択した待てるあるの輪郭線を表示する。」にチェックが入っているのを確認します。
・輪郭線の色を変えてみます。
好きな色に設定してください。やっぱり黒(0,0,0)がいいんでしょうか?
元のモデルは(10,11,11)だったのでこれがいいかもしれません。

これも面倒ですが、全パーツでやらないといけません。
○| ̄|_

好みに応じて線の太さも変えてください。
これも面倒ですが、全p(ry
○| ̄|_


エクセルみたいな表で設定できれば楽なんですが…。
とはいえ設定が出来るだけでもありがたいことです。ここはひとつ頑張ってみます。


…出来ました。

忘れていましたが、「mリボン-頭」は輪郭いらないので「輪郭を表示する。」のチェックマークははずしておきます。
出来上がったら、閉じるボタンをクリックしてダイアログを閉じます。
すかさずCtrl+Sで上書き保存します。


ちゃんと輪郭が表示されました。
前髪の一部が輪郭表示されていないようです。これは別オブジェクトに分ければ ちゃんとなるんでしょうか…?
よく分かりませんが、とりあえずここはいいということにします。

移植終了

さて、これでmikoto用mqoファイルのRDB2への移植作業は完了です。
いくつか分からない部分もあったので飛ばしてしまいましたが、少しでもmikoto用データの移植のお役に立てれば幸いです。

今回はスキニング無しの場合はオブジェクトをたくさん分けておくと影響度設定がしやすいですが、 トゥーン設定が非常に大変だと分かりました。
人間モデルなどの場合、普通はそんなにオブジェクト分けないと思うので今回の例はちょっと特別だったかもしれませんね。


さて、このようにRDB2のmikoto用mqoファイルの読み込みは結構うまく出来ており、初めて読み込んだときの印象より使いやすいようです。
始めこそ、影響度ぜんぜん読み込んでないじゃんと思ったものですが、工夫次第でうまいこと読み込めるようです。
残る重大問題は影響度範囲がどうなっているかですね。