blenderでMMDモデル作るとき用の備忘録(2.ポリゴン用意編)

Blenderの3.0アップデートが来ちゃったという話

 前回の記事を投稿してからの間にBlender3.0が公開されました。
自分は何も考えずに3.0にバージョンアップして使ってたんですが、このシリーズの続きを書こうかと思ってからようやく気づいたんですよね。
 前回までの記事2.93で説明してるや。あと自分の書いた文読みにくいな
 バージョンが違うと中身は別物になるので以降の説明を2.93で続けるか3.0版にするかどうしようか…と思いましたが、とりあえず2.93のまま続けようと思います。
 3.0の一番の目玉であるレンダリング系はこのシリーズでは取り扱わないしアセットブラウザやジオメトリノードも同上!アドオン更新も出揃ってないし!という判断です。なので3.0の人は参考程度にお読みください。

 2.93はLTS(長期サポートあり:2023年6月まで)のバージョンなので、しばらくはBlender公式▶Longterm SupportのページからDLできると思います。ただBlender公式サイトの目立つところには最新のバージョンしか表示されてないので、探すのめんどくさいし下記にリンク置いときます。
https://www.blender.org/download/lts/2-93/

補足:2.9と3.0どっちも使いたいが詳しいことはわからん!って人向けの記事を見つけたので勝手に紹介しますね。まとまっててわかりやすい。
https://note.com/454101/n/n2d1ac5926fd3

前回のあらすじ

さて本題。前回はモデルの骨であるボーンを生成し、アドオン出力の準備をしたりIKを設定したりボーンの名前サイズを設定しました。
今回は肉となる材質を準備し、MMDモデルとして出力しようと思います。

******************

体用のオブジェクトを用意する

 簡易的にポリゴンをボーンに合わせて追加します。
 ボーンが重なっていると作業がしづらくなる場合はボーンの表示方法を「スティック」に変更してください。(変更方法は前回の記事にて)
 Blenderのデータを新しい名前を付けて保存し直したら(別名保存大事!)ポリゴン配置をはじめましょう。

 全部オブジェクトモードで可能な作業です。別に編集モードで行っても問題ありません。手足はミラーモディファイア使った方が楽かも。

 UV球を追加shift+Aして頭の位置まで移動G+Zし、次に立方体を追加shift+Aして胴体、手足の位置に合わせます。
 拡縮座標軸のキー+Sを使ってオブジェクトを長方形にし、組み合わてロボットのようなラフモデルを作ってください。

1ボーンにつき一つのオブジェクトで配置した例
頭身や手足の太さなどバランスを見るだけなので簡素

 オブジェクトの数が増えてきたこの段階でデータ整理もしておきます。

今回は①追加したオブジェクトを全選択
→②「コレクションに移動」のメニュー▶移動先を決める
→③新しく作ったコレクションにオブジェクトが移動する

 本格的にモデル製作を始めるときは、制作時間を考えると未来の自分のためにオブジェクトの名前部品ごとに変えておいた方が良いです。

ウェイト設定をBlenderにやってもらう

 とりあえず直方体や球を置き終わったら、次はウェイトを塗ります。
 ウェイトを設定するとボーンに頂点が連動して動くようになるので、一気に「モデル作ってる感」が出る作業工程です。
 しかしラフモデリングなんて楽をしてなんぼなので、ひとまず今回はBlenderの自動ウェイトを使ってみましょう。

 下準備として、ウェイトを塗られたくないボーンを選んで変形のチェックを外しておきます。
 IKやセンター、全ての親、今回は部品のない両目右目左目など。
 前回のボーン準備で既に設定を済ませている方は次に進んでください。

 今追加した直方体と球を複数shift+クリックで全選択し、最後にボーンを選択してペアレントctrl+Pします。
 ペアレントメニューは「自動のウェイトで」を選びます。

自動でのウェイトの付け方
①ウェイトを付けたいものを全選択
②ウェイトをつけるボーンを選択
③ctrl+Pでペアレントメニューを開いて「自動のウェイトで」を選択
④ウェイトでボーンとオブジェクトが結びついたのでポーズモードで動きがつけられる

 ボーンが親、立方体たちが子としてペアレントされたでしょうか。
 ボーンを動かして、ウェイトが正しく乗っているかを確認します。
 自動ウェイトがうまく乗らなかった場合は次に紹介する方法で手作業でウェイトを付けてしまいましょう。

ウェイトはポリゴンとボーンの結びつき具合のようなものなので、
ボーンを動かしてもついてこない頂点はウェイトが乗っていない確率が高い。

 おかしな頂点を見つけたら、頂点のウェイトを編集するためにオブジェクトを選んで編集モードに切り替えます。
 しかし編集モードに切り替えるとポーズが全て元に戻りますね。これはモディファイアの設定によるものなので、ついでに書き換えておきます。

編集モードでもポーズを取らせるための設定

 該当オブジェクト(今回は)のモディファイアを確認すると、アーマチュアモディファイアが追加されているはずです。
 これはメッシュをボーンで変形可能にするモディファイアですが、自動ウェイトペイントをしたときにblender側が自動でつけてくれたものです。

 自動ウェイトペイントを行ったのにオブジェクトへアーマチュアモディファイアがついていなければ、ウェイトペイントの実行に失敗し、ウェイト設定がされていない可能性が高いです。
 再挑戦するか、ボーンで動かしたいオブジェクトにモディファイアを追加してオブジェクト欄に「〇〇_Arm」を入れておいてください。

 モディファイアの4つのモードのうち左2つが選択されていないので、全てONにします。
 すると編集画面モードにしてもポーズを保つようになるはずです。

頂点ごとのウェイトの編集

 ウェイト設定には方法がいくつかあるのですが、手軽な方法を2パターンご紹介します。好きな方法を使ってください。
 ウェイトを感覚的につけたいときのウェイトペイントと、範囲を限定して数値で設定する頂点グループからの設定です。

ウェイトペイント

 いちど編集モードで編集したい頂点を選んでから、ウェイトペイントモードに切り替えます。
 「頂点グループ」でウェイトを付けたいボーンの名前がついた頂点グループを選ぶとウェイトの付き具合が表示されます。

赤:ウェイト1.0(100%選んだボーンに追従)~青:0.0(そのボーンには追従しない)
半分塗った図。
ウェイトが設定されると飛び出ている(唯一動いていないのでそのように見える)頂点がボーンに追従する

 赤い丸でウェイトを塗るブラシが表示されます。

 ①ブラシでどのくらいのウェイトをどれくらいの範囲(半径)で一回にどれだけ塗るのか(強さ)を確認
→②ウェイトの塗り方を変えたい(例:グラデーションにしたい!)場合はツールバーTキーでツール変更する
→③ウェイトを塗り終わったらウェイトメニュー▶全てを正規化を選択して終了

 今回は頭ボーンに100%でついてきて欲しいので真っ赤(ウェイト1.0)になるまで塗りました。
 「正規化」とはこれはウェイトの合計が適正になるようBlenderが設定してくれるものです。設定ウェイトの合計が1を超えると動かしたときにエラーが起こる現象を防ぐためにあります。
 (今回は頭パーツに対して頭ボーン1本しかないのでウェイトに不具合が出る可能性は低いですが、ウェイトを設定した後は合計値の確認をするか正規化をしておいた方がよいため、今回も手順に含めてあります。)

ウェイトペイントの注意点

完全に塗ったつもりでもウェイトが塗りたりてないところが現れてしまった図

 ウェイトがきちんと設定出来ていないところを可視化するために、いくつか初期設定から変更しておいた方が良い箇所があります。

 ①ビューポートを表示
→②ウェイト0の表記を「アクティブ」、ワイヤの等高線表示をオン
・ウェイト0=ウェイトが全く塗られていない箇所
(少しでもウェイトのある場所と区別されるようになる)
・等高線がある=隣の頂点とウェイトの値が違う
塗り足りていないところが分かりやすい)
 最下部の「ワイヤを表示」はお好みでどうぞ。

 それから今気づいたので参考画像はソリッド表示のままですが、ウェイトペイント時表示方法をワイヤフレームにするとウェイトが見やすくなっておすすめです。

頂点のウェイトを直接いじる

 ①編集モードに切り替え、頂点を選択してアイテムタブを開く。
(「頂点ウェイト」の項目にその頂点へ割り当てられているウェイトが並んでいます。)
→②オブジェクトデータプロパティを開く。
→③頂点グループで割り当てたい部分どのくらいウェイトを割り当てるかを選んで「割り当て」を押す。
 頂点グループから割り当てられたウェイトは正規化されていないので合計すると1を超えます。
 ので不要なウェイトを右の×削除します。

 2つ以上のウェイトを同時に割り当てる際はNormalize(ウェイトペイントの「正規化」と同じ)を押して1を超えないようにしてください。

 また、Normalizeの隣りにあるCopyは「複数頂点選択時に最後に選択した頂点のウェイトをコピーして選択した全頂点に貼り付ける」機能です。
今回のように広い範囲で同じウェイトを指定するときは便利ですね。

 今回は頭の頂点を全選択したあと、「頭」が1.0になっている頂点を最後に選び直してCopyをかけました。
 他に動きのおかしいオブジェクトは見当たらなかったので、これでウェイト作業の終了です。

では一度作業を別名保存して、PMX出力して様子を見てみましょう。

ラフモデルの出力

 出力方法は今までと対して変わりません。
 エンプティを選択してからメニューバーのファイル▶エクスポート▶MikuMikuDance Model(.PMX)で出力するだけです。

 これまでと変わったところといえば、ポリゴンメッシュが追加されたので、モデルの構造がエンプティ>アーマチュア>ボーン>メッシュにになったことぐらいでしょうか。

 PMX出力が終わったらMMDにモデルを放り込んで踊らせてみてください。うまく踊ってもらえましたでしょうか?
 このとき踊らせるモーションは準標準ボーンを使用していないモーションがおすすめです。
 なぜならアドオンで生成したボーンのうち、準標準ボーンに含まれているのは「すべての親」「上半身2」「親指0」のみだからです。
 その他の準標準ボーンは含まれていないため、標準ボーン(と全ての親・上半身2)以外のボーンを使うモーションは正しく動いてくれません。

準標準ボーンの扱いについて

 アドオンでの生成時に含まれていない準標準ボーンは
・腕捩・手捩・腰*・グルーブ*・足IK親*・足先EX・手持ちダミー*
・右肩P*・親指0(*付きはウェイトが乗らない)
です。
 個人的にはウェイトが乗らないボーンは自動ペイントの対象外にしておけばそんなに悪さをしないと思うので、最初のボーン生成の後に追加しておいても良いのかなという感じがあります。
 この記事では比較的モーションへの使用率が高く感じる「捩ボーン」と「グルーブボーン」を後ほど追加で組み込む予定です。

グルーブボーンの追加

 準標準ボーンの中でもグルーブボーンはモーション使用率が高く、追加が簡単で、使用すると見た目に大きな影響を与えてくれるボーンです。
 ついでに追加してしまいましょう。

 センターボーンを複製し、名前を「グルーブ」に書き換えます。
このとき、プロパティのMMDボーンツールの欄も名前を書き換えておいてください。
 次に、グルーブボーンのペアレントをセンターボーンに・上半身ボーンのペアレントをグルーブボーンに書き換えます。
 センター▶グルーブ▶上半身の構成になっていればOKです。このときグルーブと同じ階層には下半身ボーンがあります。
 これでグルーブボーンの追加が完了しました。忘れずに「変形」を外してウェイトが乗らないようにしておきましょう。

 これでラフモデリング回の記事は終了です。
 次回はマテリアル設定とテクスチャについてお話出来ればと思いますがまだ一文字も書いていないのでどうなることやら。
 ではまた。




******************

mmd_toolsの機能とか自動ウェイトとか諸々で詰まったときに助けてくれるかもしれない参考サイトのリンクをいくつか。

MMD_toolsの公式ドキュメント(取説的なやつ)
https://github.com/powroupi/blender_mmd_tools/wiki/Documentation

mmd_toolsの使い方|blender
……リンク先はMMDtoolsのドキュメントを翻訳してくれているページ。
 しかしそれ以外にも参考になる記事がいっぱいあるのでサイト自体がおすすめのかたまり。
https://usausakokoko.hatenablog.com/entry/2018/07/21/212242

うさこ

Blender質問室まとめ2020
……Blenderでありがちな「なんで?/何これ?」をまとめてくれている。
トラブルシューティング的に大変便利。
https://qiita.com/yukimituki11/items/c7a8f1c5de60d2ac9881


@yukimituki11

ウェイトペイントについて特集してくれている記事。
ウェイトって何?から初めてくれるので大変親切。
https://note.com/info_/n/n1be63d5be55e


yugaki