昨日の記事を読んでいただいた方はわかると思うのですが、あほなことをしてしまって、実はこの記事書くのは3回目です。_┬○ノ
一日たって少し気力回復したので、自分のメモでもあるし、忘れないうちにポイントをまとめておこうと思い、もう一回書いてみることにしました。
さてさて今回のお題ですが、事の発端はボーン入れをしてて、腕の前腕をひねった時に、前腕が雑巾みたいにねじれちゃうのを何とかしたかったのですが、今回のモデルではウェイトマップを出来るだけ分けないでやろうと考えてたので、ウェイトマップ以外の解決策を考えてたのですが、補助ボーンでは上手くいかず、現状ジョイントモーフしか思いつかなかったので、やってみることにしました。
他にいい解消方法あるならマジ教えてくださいqつ_`;p
では本題に入りましょうか。
まず最初に症状を確認しますね。

これが骨を入れたデフォルト状態です。
前腕のボーンはシンプルに、肘側にはピッチ軸専用の短いボーン、手側にはバンク軸専用の長いボーンが入れてあります。
これで、バンク用ボーンを回転させてやると、

こんな感じに肘の部分(バンク用ボーンとピッチ用ボーンのつなぎ目あたり)がねじれてしまいします。
このねじれた部分を何とかするのに、ジョイントモーフを組み込んでやろうq≧∇≦pノっていうのが、今日のお題ですъd'ー' p
ジョイントモーフって何??という人も居るかもしれないですが、一回最後まで読んでもらえれば、なるほどこういう効果ねъd'ー' pと思ってもらえると思うので、簡単に説明すると、
ボーンの回転角度に応じて、モーフィングしてくれる機能、、、こんなところでしょうか?まぁわからなかった人は、2回読めばきっとわかるさ!わかるはず、、わかるんじゃないかな、、、、。
さて気を取り直して手順に移りますね。

最初にモデラーでジョイントモーフ用のモーフマップを作ります。画面の右下の頂点マップ選択で「M」モーフに替え、その横のポップアップから[新規]を選ぶと、ダイアログが出てくるのでモーフマップに名前をつけてください。
次に(ここ重要!テストに出ますよ!)
そのモーフマップの状態で、ポイントの移動を行ってください!(あんまり関係ないところを動かすとあとで面倒なので、修正したい付近のポイントを動かすのがおすすめ)頂点マップ類は新規に作った時、ファイル容量セーブするために中身の無い空っぽのデータになっているのです。モデラーのメモリー上に名前はありますが、データの無いままだとファイル保存しても、頂点マップは名前さえ保存されません。
なので、頂点マップを新規で作った時は、とりあえずそのまま作業するのが吉ですъd'ー' p
ということで、モーフマップに何らかのデータが出来たところで(念のために保存しとくと良いかな)、レイアウトに移動し、ジョイントモーフの設定をします。
レイアウトに移ったら、オブジェクトのプロパティを開き、「変形」のタブを選び、変位プラグインところに「JointMorphPlus」を追加します。

編集にするとこういうダイアログが出てきますので、設定していきましょう。
使いたいオブジェクト、ボーン、回転軸を選びます。Min.Max.のところはその下のValueで設定した角度を超えたときに、どのモーフにするか決められるようになってます。それぞれのボーンの状況にあわせて選んでください。
次にValue1にチェックを入れ、ボーンのデフォルト状態の角度を入力し、モーフに[base]を選んでおきます。そして、ボーン変形後の値を入力します。Value2にチェックを入れ、ボーン変形時の角度を入力し、モーフに先ほど作ったモーフマップを選びます。これで設定完了です。
設定が完了したら、ボーンを回転させておきましょう。

まだモーフをいじって無いので、ほとんど変化は無いはずです。ではモデラーに戻ります。
さぁモーフをいじっていきましょう。今回はねじれを解消するのが目的なので、ねじれの逆のモーフを作ります。

ここで面倒なのが、
モデラーではジョイントモーフの掛かった状態を確認できないということです(
モデラーで確認できる場合があるのがわかりましたので、最後に追記しました)。ジョイントモーフの掛かり具合はレイアウトで確認しないとダメなので、モデラーでポイントを移動>レイアウトで確認>モデラーで更にポイントを移動>レイアウトで確認>モデラーで、、、を繰り返して、
レイアウトで満足いく形状になるまで、モデラーでモーフを作ります。
で、上の画像のようになりました。

とうことで、上のモーフをジョイントモーフで適用したのがこれです。ボーンを回転させると、先ほど設定した角度の中間はソフトが補間してくれます。
更に別の角度でモーフが必要な場合は、JointMorphPlusの設定でValue3以降を追加してください。(角度の並びはちゃんと判断してくれますので、順番はバラバラで問題ないです)
今回は、ジョイントモーフをねじれの解消に使いましたが、よく使われる例では、上腕二頭筋の盛り上がりとか、肘のでっぱりとか、ボーンの回転にあわせて変化するところなら、アイデア次第で使えると思いますので、色々試してみてください。面倒くさいけどq≧ー≦p
【6月19日追記】
モデラーでジョイントモーフの状態を確認できる場合があったので、追記しておきます。
1スケルゴン1ウェイトマップの状態になって(VertexPaintでウェイト設定するとこれがデフォルトとなっています)いる場合、モデラーでジョイントモーフの変形を確認できます。
その場合は、レイアウトに移動することなく、変形結果を確認できます。
ここからは雪野ユウさんのコメントを転載させていただきます。
1 モーフマップを任意の名前で作成(以降、このモーフマップの編集状態で作業を続行)
2 モデラー側で変位対象のボーン選択後に「ジョイントモーフ作成」を使用し、「n」キーで「CreateJointMorph」ウィンドウを開く
3 モードを「Before Edit」のまま任意の角度を入力。ウィンドウを閉じてエンターで確定
4 ねじれや筋肉の動きなど、イメージしていた状態の形に編集・修正する
5 再び「CreateJointMorph」ウィンドウを開き、同じく「Before Edit」で先程入力した角度を元に戻す(マイナス入力する)
6 完了
Special Thanks 雪野ユウ様mdv_vbm