神子モデルの改造1:上半身3ボーン追加
少し前にモンテコア様の神子を購入しましたので、自分がよく使うモデルの構造に改造します。その過程をメモしてみようと考えます。
上半身3の作成
MMDモデルでは上半身3ボーンを持つモデルは少ないようですが、私はカスタム少女3DのモデルからMMDを始めた事と、次に触ったモデルがモンテコア様の巡音ルカだったこともあり、以後は上半身3が無いモデルにも付けるようにしています。上半身3の作成方針は次の通りです。
1.上半身2のボーンを分割
PMXEditorを起動して対象のモデルを読み込んだら、上半身2と首ボーンを選択します。
PMDViewから編集>選択ボーン>中間ボーンの作成を選択して実行します。
上半身2が半分の位置で分割され、中心位置に新たなボーンが作成されます。
上半身2-首という名前で作成されますので、これを上半身3に名前を変更します。
2.上半身3の位置を変更する
位置を変更します。現在はちょうど上半身2と首を結ぶ線の5:5の位置に作成されていますので、この位置を肋骨の少し下あたりに移動させます。
移動させる位置はだいたいでも構いませんが、計算式で求めるのであれば、たとえば上半身2と首とを結ぶ線の2:8の割合の位置に移動させるなどと決めて、次の式で位置を求めます。
求まった数値は、精度的に少数桁の5,6桁は誤差なので丸めてしまっても問題ありません。
だいたいこの位置になります。
3.ウェイトを分配する
現在の上半身2に関連するウェイトの分布はこうなっています。これを作成した上半身3にも分配します。分け方としては、上半身3の位置より低い頂点は上半身2のウェイトのままとし、上半身3の位置より高い頂点は上半身3にウェイトを移動させることにします。
ただし、上半身3の高さ付近の頂点は上半身2と上半身3のウェイトが一定の割合で混ぜて、滑らかに曲がるようにする必要があります。
ウェイトの分配は計算式である程度自動的に求める事も出来ますが(準標準プラグインの上半身2作成の応用)、今回は覚えたてのPMXEditorのアンカー機能を使用します。
PMDViewで編集>ウェイト関連>ウェイトアンカー編集を選択し実行すると、アンカー編集ウィンドウが開きます。
このモデルでは初めてアンカー編集を行いますので、初期化を実行します。
次にウェイトからアンカーを作成します。
使いたいアンカーは上半身2だけなのですが、他も一緒に作成されてしまいました。
狙ったアンカーだけ作成する方法が判らないので、不要なアンカーは地道に非表示にしていきます。地味に面倒くさいです。非表示にするには、アンカー名についているチェックボックスのチェックを外していきます。最終的に上半身2ボーンに関連されたアンカーだけがチェック付いている状態にします。
上半身2のアンカーだけが表示されました。だいぶすっきりしました。
このアンカーはこの、箱に囲まれた頂点が上半身2のウェイトとして塗られますよということを指しています。今回の目的は上半身3にもウェイトを分配することですので、このアンカーを複製して上半身3に移動します。
上半身2のアンカーの上で右クリックをし、複製追加を選びます。
複製されたアンカーの対応ボーンを上半身2から上半身3に変更し、移動ボタンを押すと同じ領域を指したアンカーが上半身3にも作成されます。
それぞれのアンカーを変形させて、上半身3に関連づけられたアンカーは上半身3ボーンより上、上半身2に関連付けれれたアンカーは上半身3より下になるようにします。完全に分けるのではなく、上半身3のあたりで一部重なるようにします。
アンカーを変形させるときは、上半身2のアンカーは上面の4点を同時選択してそのまま下へ移動させ、上半身3のアンカーは底面の4点を同時選択して上へ移動させると、元のアンカーの形状からそう変わらずに変形させることができると思います。
色々な角度から見て、アンカーからはみ出ている頂点がないか、ちょうど良い感じで重なり合っているかなどが確認できたら、このアンカーの状態をウェイトに反映させます。
アンカー編集ウィンドウで、編集>ウェイト設定>表示アンカーを選択し実行します。
だいたいこんな感じでウェイトが再設定されました。うまく分配されているようにも見えますが、変形させたりしないと良くわかりません。
TransformViewで変形具合を確認します。上半身3を動かしても肩から下が追従しないことが判ります。これは肩が上半身2に接続されたままになっているためです。
親ボーンが上半身2となっているものを、上半身3に書き換えます。ざっと見たところ「左肩」「右肩」「タイ元」の親ボーンが上半身2となっていました。
今度は正しく変形しているようです……が、剛体を表示させてみると、上半身2の剛体が追従していない事がわかります。できれば上半身3の剛体を作成したいところですが、見たところそんなに影響はなさそうですので、そのまま上半身2の剛体の関連ボーンを上半身3に変更します。
若干はみ出していますが、気になればサイズを変更するなりして対処することにします。
一旦、上半身3の追加作業は終わりましたので、データの検証を行います。
ファイル>PMXデータの状態検証を実行します。表示枠の検証で、今回作成した上半身3が未登録だと指摘されています。
忘れないうちに表示枠へ登録しておきます。これを忘れると後々めんどうです。
他には異常がないことが確認できれば、一旦モデルデータを保存します。
VMDViewでダンスを躍らせてみて、ウェイトの破綻が無いかを確認します。私はwavefileか裏表ラバーズのダンスモーションを使用しています。上半身3を使ったモーションでないと意味はないのですが、とりあえずダンスを見てなごみます。
神子はかわいくてカッコイイですよね。ちょっとエッチな目的に使う気には今のところなれません。
上半身3の作成
MMDモデルでは上半身3ボーンを持つモデルは少ないようですが、私はカスタム少女3DのモデルからMMDを始めた事と、次に触ったモデルがモンテコア様の巡音ルカだったこともあり、以後は上半身3が無いモデルにも付けるようにしています。上半身3の作成方針は次の通りです。
1.上半身2のボーンを一定の比率で分割する
2.分割したボーンの根元側をそのまま上半身2とし、先側を上半身3とする
3.上半身2のボーンのウェイトを上半身3と分け合う
1.上半身2のボーンを分割
PMXEditorを起動して対象のモデルを読み込んだら、上半身2と首ボーンを選択します。
PMDViewから編集>選択ボーン>中間ボーンの作成を選択して実行します。
上半身2が半分の位置で分割され、中心位置に新たなボーンが作成されます。
上半身2-首という名前で作成されますので、これを上半身3に名前を変更します。
2.上半身3の位置を変更する
位置を変更します。現在はちょうど上半身2と首を結ぶ線の5:5の位置に作成されていますので、この位置を肋骨の少し下あたりに移動させます。
移動させる位置はだいたいでも構いませんが、計算式で求めるのであれば、たとえば上半身2と首とを結ぶ線の2:8の割合の位置に移動させるなどと決めて、次の式で位置を求めます。
上半身3の位置=(首の位置 - 上半身2の位置) × 0.2 + 上半身2の位置
求まった数値は、精度的に少数桁の5,6桁は誤差なので丸めてしまっても問題ありません。
だいたいこの位置になります。
3.ウェイトを分配する
現在の上半身2に関連するウェイトの分布はこうなっています。これを作成した上半身3にも分配します。分け方としては、上半身3の位置より低い頂点は上半身2のウェイトのままとし、上半身3の位置より高い頂点は上半身3にウェイトを移動させることにします。
ただし、上半身3の高さ付近の頂点は上半身2と上半身3のウェイトが一定の割合で混ぜて、滑らかに曲がるようにする必要があります。
ウェイトの分配は計算式である程度自動的に求める事も出来ますが(準標準プラグインの上半身2作成の応用)、今回は覚えたてのPMXEditorのアンカー機能を使用します。
PMDViewで編集>ウェイト関連>ウェイトアンカー編集を選択し実行すると、アンカー編集ウィンドウが開きます。
このモデルでは初めてアンカー編集を行いますので、初期化を実行します。
次にウェイトからアンカーを作成します。
使いたいアンカーは上半身2だけなのですが、他も一緒に作成されてしまいました。
狙ったアンカーだけ作成する方法が判らないので、不要なアンカーは地道に非表示にしていきます。地味に面倒くさいです。非表示にするには、アンカー名についているチェックボックスのチェックを外していきます。最終的に上半身2ボーンに関連されたアンカーだけがチェック付いている状態にします。
上半身2のアンカーだけが表示されました。だいぶすっきりしました。
このアンカーはこの、箱に囲まれた頂点が上半身2のウェイトとして塗られますよということを指しています。今回の目的は上半身3にもウェイトを分配することですので、このアンカーを複製して上半身3に移動します。
上半身2のアンカーの上で右クリックをし、複製追加を選びます。
複製されたアンカーの対応ボーンを上半身2から上半身3に変更し、移動ボタンを押すと同じ領域を指したアンカーが上半身3にも作成されます。
それぞれのアンカーを変形させて、上半身3に関連づけられたアンカーは上半身3ボーンより上、上半身2に関連付けれれたアンカーは上半身3より下になるようにします。完全に分けるのではなく、上半身3のあたりで一部重なるようにします。
アンカーを変形させるときは、上半身2のアンカーは上面の4点を同時選択してそのまま下へ移動させ、上半身3のアンカーは底面の4点を同時選択して上へ移動させると、元のアンカーの形状からそう変わらずに変形させることができると思います。
色々な角度から見て、アンカーからはみ出ている頂点がないか、ちょうど良い感じで重なり合っているかなどが確認できたら、このアンカーの状態をウェイトに反映させます。
アンカー編集ウィンドウで、編集>ウェイト設定>表示アンカーを選択し実行します。
だいたいこんな感じでウェイトが再設定されました。うまく分配されているようにも見えますが、変形させたりしないと良くわかりません。
TransformViewで変形具合を確認します。上半身3を動かしても肩から下が追従しないことが判ります。これは肩が上半身2に接続されたままになっているためです。
親ボーンが上半身2となっているものを、上半身3に書き換えます。ざっと見たところ「左肩」「右肩」「タイ元」の親ボーンが上半身2となっていました。
今度は正しく変形しているようです……が、剛体を表示させてみると、上半身2の剛体が追従していない事がわかります。できれば上半身3の剛体を作成したいところですが、見たところそんなに影響はなさそうですので、そのまま上半身2の剛体の関連ボーンを上半身3に変更します。
若干はみ出していますが、気になればサイズを変更するなりして対処することにします。
一旦、上半身3の追加作業は終わりましたので、データの検証を行います。
ファイル>PMXデータの状態検証を実行します。表示枠の検証で、今回作成した上半身3が未登録だと指摘されています。
忘れないうちに表示枠へ登録しておきます。これを忘れると後々めんどうです。
他には異常がないことが確認できれば、一旦モデルデータを保存します。
VMDViewでダンスを躍らせてみて、ウェイトの破綻が無いかを確認します。私はwavefileか裏表ラバーズのダンスモーションを使用しています。上半身3を使ったモーションでないと意味はないのですが、とりあえずダンスを見てなごみます。
神子はかわいくてカッコイイですよね。ちょっとエッチな目的に使う気には今のところなれません。