blenderでMMDモデルを作ろう|第2-4回:ウェイト(ウェイトペイント、補足)
前記事の自動ウェイトである程度うごくようになりましたが、
- ひじがない
- 上半身が肩にひっぱられすぎ
- 上半身服が下半身服を貫通
という問題があったのでそれを解消していこうと思います。
まずひじですが、Tda式アペンドミクさんを参考にひじ補助ボーンを使ってみます。
動かす用のアーマチュアのひじボーンの付け根に、ひじ補助.L、+ひじ補助.Lという2本のボーンを作成します。
2本のボーンは全く同じ位置にあります。
[親]->[子]の関係は、[腕捩]->[ひじ補助]->[+ひじ補助]となるようにします。
次にポーズモードでひじ補助.Lボーンを選択し、MMD Bone Toolsタブを開き、MMDで言うところの回転付与を設定します。
Rotate + ボタンを押し、Influence: 0.6、その下のボーンをひじ.Lにします。
(ついでに、エクスポート時のためのボーン名も左ひじ補助にしておきます。)
するとひじ.Lを回転させるとひじ補助.L(とその子である+ひじ補助.L)が60%の割合(たぶん)で追従して動くようになります。
ボーンの制約(コンストレイント)も自動で追加されます。
真上から見た図がこちらです。
同様に、ひじ補助.R、+ひじ補助.Rも作成します。
+ひじ補助のほうを変形に使用するので、自動ウェイト用のアーマチュアにも+ひじ補助というボーンを作成します。
だいたいひじ部分に来るように設置します。
この状態で再度自動ウェイトを行い、ひじを曲げてみます。
ひじのところに+ひじ補助ボーンのウェイトが割り当てられ、ひじの変形がましになった気がします。
躍らせてみると
ビフォー
アフター
でましになった気がします。
次に、上半身が肩にひっぱられすぎる問題を解消します。
ウェイトを見てみると、腕ボーンのウェイトが動いてほしくないところにまでのっていることが分かります。
そこで、自動ウェイト用のアーマチュアに、上半身2ボーンを補足するようなボーンを追加します。
試行錯誤の末、4つのボーンをこの位置に配置しました。
この状態で再度自動ウェイトを行い、上記4つのボーンの頂点グループと上半身2の頂点グループが合算されるようにモディファイアを設定します。
Vertex Weight Mixというモディファイアを選択し、
- Vertex Group A: 上半身2
- Vertex Group B: 上半身2.001.L
- Mix Mode: Add
- Mix Set: All
とします。
これを先ほどの4つのボーンに対して繰り返し、最後に動かす用のアーマチュアモディファイアをもってきます。
すると、先ほどのこんな感じだった上半身2ボーンのウェイトが、
こうなりました。
肩と腕を上げてみるとこんな感じです。上半身があまり肩/腕に引っ張られなくなりました。
上半身と同様に、ウェイトを補足したい部分(今回は下半身と首)にも補足ボーンおよびvertex weight mix モディファイアを追加していきます。
首と下半身にも2本ずつ補足用ボーンを追加しました。
Vertex Weight Mixモディファイアは合計8つに。
おどらせてみると、全体的にだいぶ良くなった気がします。
あとは、自分が気に入るまで、
を行ったり来たり、繰り返すのみです。大変です。
でも動くと嬉しいからがんばるよね。
ただ、手動でウェイトを調整したあと、再度自動ウェイトを行うとそれまでの手動調整が消えてしまうので要注意です。
上半身服が下半身服を貫通する問題も今回は上記の流れで解決しましたが、うまくいかない場合は、上半身のオブジェクトと下半身のオブジェクトを統合 (Ctrl + J key) し、メッシュをつなげてから自動ペイントを行うとうまくいったりします。
また、自動ペイントは細かいパーツが苦手だったりするので、細かいパーツは手動でウェイトペイントするか、ウェイト転送がいいと思います。
ウェイト転送する際は、ウェイトのもとになるオブジェクトを選択後、Shift keyを押しながらウェイトを転送したいオブジェクトを選択し、ウェイトペイントモードに入り、Transfer Weightsを押し、 以下のような設定でうまくいくことが多いです。
たとえば、こういう体にそったものはウェイト転送でうまくいったりします。
------ 追記ここから -----
自動ウェイトでウェイトを設定したズボンのベルト穴部分がポーズによって浮くことに気づいたので、ウェイト転送を試してみます。
編集モードに入りベルト穴部分を選択し、P key -> Selectionで選択した面をズボンから分離します。
ズボンからベルト穴にウェイトを転送するので、ズボン -> ベルト穴の順でShift keyを押しながら選択し、ウェイトペイントモードに入ります。
画面左側のTransfer Weightsをポチ、以下のように設定を変更します。
オブジェクトモードに戻り、先ほどと同じポーズにしてみたところ、ベルト穴は浮かなくなりました。
ウェイト転送が終わったら、再度ベルト穴とズボンをCtrl + J keyでオブジェクト統合してもOKです。
------ 追記ここまで -----
そんなこんなで動くようになりましたー。
次はUV展開です。
と、そのまえにpmxにおためしエクスポートしてみてもいいかも。
blenderでMMDモデルを作ろう|第2-3回:ウェイト(ウェイトペイント、体)
前記事で紹介した3つのウェイトペイントの方法
- 自動ウェイト
- 編集モードで頂点グループの指定
- ウェイトペイントモードでぬりぬり
のうちの自動ウェイトをつかった方法について紹介します。
体でやってみようと思います。
自動ウェイトの基本的なやり方は、まずオブジェクト(今回は上半身)を選択し、Shift keyを押しながらアーマチュアを選択、Ctrl + P keyでSet Parent To -> With Automatic Weightsを選択します。
すると、自動でそれっぽい箇所に頂点グループがわりあてられ、アーマチュアモディファイアも作成されます。
ウェイトペイントモードでボーンを動かしてみます。
一応うごいてますね...。でもまだらになっているのがわかるでしょうか?
(なんとなく動けばいいということであれば、この時点でウェイト完了です。)
参考にTda式アペンドミクさんを見てみると、
こんな感じで美しいグラデーション、かつ上から下への頂点グループの流れがあります。
下半身でも同様に自動ペイントを行うと、こんな感じになりました。
変形に関与しないボーン(全ての親やセンターなど)にもウェイトが割り当てられてしまっているためです。
このように、自動ペイントはうまくいったりいかなかったりします。
特に、動かすために使うアーマチュア(インポートしたやつ)を使って自動ウェイトを行った場合です。
そこで、自動ペイントのためだけのアーマチュアを作ります(ドジャ~~~ん)。
MMDモデルの変形に必要なボーンを調べ、それがいい感じの位置に来るように作ったものがこれです。
(「いい感じの位置」の基準はTda式アペンドミクさんなど、ほかのモデルさんを参考にしたものです。)
これを作る際は、親子の関係は気にしなくて大丈夫です。
ただ、名前は変形に必要なボーン名と同じにしておかなくてはいけません。
腕やひじのボーンの向きが他と違うのは試行錯誤の結果です。
(これも地味に時間がかかりますが、一度作っておくと使いまわせるので...。)
今度はこちらのアーマチュアを使って自動ウェイトしてみます。
モディファイアの順番は、自動ウェイト用のアーマチュア後に、動かす用のアーマチュアが来るようにします。
ウェイトペイントモードでウェイトを見てみると、さきほどはまだらでしたが、今回はまぁまぁいい感じの位置にウェイトが塗られています。
下半身でも自動ウェイトを行いました。
うまく変形してくれています。
これでざっくりとしたウェイトペイントはできたはずなので、さっそくモーションを流し込んでみます。
mmd_toolsのMotionのImportを押し、ダウンロード済みのモーションを選択します。
(今回はyurieさんのクラブ=マジェスティにしました。)
Scaleのところの数値は、モデルのおおきさによって変更する必要があります。
今回、標準的な体型の大きさでモデルを作成したためScale: 1.0としましたが、標準の1/10のおおきさの場合はScale: 0.1とする必要があります。
音楽は、Video Sequence EditorでShift + A key -> Soundで追加することができます。
AV-syncにしておくと、モデルを動かした際の描画の計算が間に合わない場合でも音楽に合わせてくれます。
また、先ほどモーションをインポートする際にMarginを5としていたので、音楽のStart Frameも1+5で6にします。
(Marginは物理シミュレーションのためのものなので、物理シミュレーションをしない今回のような場合は0でも1でも構いません。)
Alt + A keyでアニメーションをstart/stopさせられます。
さっそく踊ってもらいました。
動いてると嬉しくなりますね。
でもまだおかしなところが多々あるので、次記事でそれを解消していこうと思います。
blenderでMMDモデルを作ろう|第2-2回:ウェイト(ウェイトペイント、顔と指)
ウェイト(ポリゴンがボーンに追従する度合い)の設定には主に3種類の方法があると思います。
- 自動ウェイト
- 編集モードで頂点グループの指定
- ウェイトペイントモードでぬりぬり
私は、
- 体: 自動ウェイト
- 指: 編集モードで頂点グループの指定
- 頭: ウェイトペイントモードでぬりぬり
のような感じで場合によって使い分けています。
本記事では後者2つを使った方法を紹介し、次の記事で自動ウェイトを使った方法を紹介します。
ためしに、「編集モードで頂点グループの指定」を使って目を動かしてみます。
目のオブジェクトを選択後、目.L、目.Rという頂点グループを作成します。
編集モードに入り、すべての頂点を選択後、目.Lの頂点グループにweight: 1.0でAssignします。
(ミラーモディファイアを適用後の場合は左目の頂点に目.Lを割り当て、右目の頂点に目.Rを割り当てることになります。)
モディファイアタブを開き、アーマチュアを選択し、オブジェクトのところにインポートしたアーマチュアを指定します。
アーマチュアを選択し、ポーズモードに入り、両目ボーンを回してみます。
動きました(わーい)。
次に、ウェイトペイントモードを使ってウェイトを指定してみます。
このとき、ワイヤーフレームモードにしておくこと(色が見やすくなる)と、Show Zero WeightsをActiveにしておくこと(ウェイトが乗っていないところが青から黒になりわかりやすい)がおすすめです。
アーマチュアを選択後、ポーズモードに入り、ウェイトを指定したいボーン(今回はまず頭ボーンからやってみます)を選択、次に、ウェイトを塗りたいオブジェクトを選択し、ウェイトペイントモードに入ると、先ほど選択したボーンのウェイトが塗れると思います。(若干手間ですがこの順番でやらなければできないと思います)
(えっと、いつもは、というか普通は上記のやり方でウェイトペイントができるはずなのですが、なぜか今はうまくいかないため、もう一つの方法でやります。)
頭のオブジェクトを選択後、頭、首、という頂点グループをまず作成します。
そのままウェイトペイントモードに入り、頭の頂点グループを選択した状態でウェイトを塗っていきます。
とりあえずこんな形で塗ってみました。
目のときと同様にモディファイアタブからアーマチュアモディファイアを選択し、インポートしたアーマチュアを指定します。
アーマチュアを選択後、ポーズモードに入りボーンを動かしてみます(ホラー注意)。
とりあえず動いてますね。
満足のいく結果になるまでは、ボーンを動かしつつウェイトをぬりつつ、いったりきたりする必要があります。大変です。私は苦手です。
髪にも頭のウェイトを割り当てました。
指は、「編集モードで頂点グループの指定」の方法で、ほかのモデルさんを参考にしながらウェイトを指定しました。(ウェイト、根気がいります。)
指ボーン以外のボーンもそうですが、うまいこと変形させるにはウェイト+ボーン位置が重要です。
アーマチュアの編集モードでボーン位置を調整しつつ、ウェイトぬりつつ、ボーン動かしつつ...行ったり来たりです。
次は体のウェイトペイントです。
blenderでMMDモデルを作ろう|第2-1回:ウェイト(アーマチュア作成)
私がアーマチュア(モデルを動かすためのボーンの集合体)を作る流れは、
まず、MMDに同梱されている標準ミクさんと同じ構造のアーマチュアを作る
→ アーマチュアのみ.pmxにエクスポート
→ pmxエディタで準標準ボーンを追加
→ blenderにインポート
という感じです。
配布されているモーションでモデルを動かす為にはボーンの名前(センター、グルーブなど)が標準的なものと一致していなければいけません。
また、親子の関係(親ボーンが動くと子ボーンも動く)も一致していなければいけません。
なので標準ミクさんのボーン構造と全く同じものをまずは作ります。
結構大変です。
File -> import -> MikuMikuDance Modelからミクさんをblenderにインポートします。
メッシュ(モデルを構成するポリゴン)を削除し、髪や服などに関する不要なボーンも削除します。全部で60本のボーンになりました。
これと同じものを、自分のモデルの体型にあわせて作っていきます。
ボーンやアーマチュアに関する基礎知識はこのあたりが参考になります。
【Blender】アーマチュア(ボーン)とは?簡単な使い方(1/3)【骨格を作ってポーズを取る】
blenderでMMDのボーンリギング | soramame works
(あと自分のメモ。)
気を付けるのは、
- mmd_toolsのCreate modelから最初のボーンを作ること(このあとすんなりエクスポートできるように)
- blender内のボーン名は、〇〇.L/Rにすること(左右対称で編集できるように)
- pmxへエクスポートされるときのためのボーン名は、左/右〇〇にすること(このあとpmxエディタでプラグインが使えるように)
ボーンタブの一番下、MMD Bone Toolsというところで名前を指定できます。
です。
親子関係に気を付けつつ、ボーンをリネームしながら作るというのが地味に時間がかかるのですが、一度このアーマチュアを作っておくと使いまわすことができます。
標準ミクさんをインポートしたときに自動で生成される、_shadowや_dummyなどがついたボーンもすべてまねて作ります。
ボーンにもレイヤーというものがあり、最初は可視になっていないレイヤーにもボーンがあったりするので要注意です。
ボーンの制約(コンストレイント)、IKなどの設定もすべて同じにします。
60本すべて設置し終わりました。(最初に作られた全ての親ボーンはこのあとpmxエディタで追加するため削除しました。)
このアーマチュアを.pmxにエクスポートします。
mmd_toolsのCreate Modelでアーマチュアを作った際、シーンの中心にモデル名(今回はBasic_armという名前にしました)のエンプティ(十字みたいな形のやつ)が作られたと思います。
それがアーマチュアの親になってると思います。
このエンプティを選択してエクスポートします。
エクスポートしたpmxファイルをpmxエディタで開きます。
編集 -> プラグイン -> User -> 準標準ボーン追加 (PMX) を選択し、必要な準標準ボーン追加します。(ほとんどのものにチェックを入れておきました。)
そして、モデルを別名で保存し(今回はExtended_arm.pmxという名前にしました)、blenderにインポートします。
インポートされたアーマチュアを見るとぱっと見あまり変化がありませんが、編集モードに入るとボーン数が増えており、準標準ボーンが追加されていることが分かります。
これでモデルを動かすためのアーマチュアの準備ができたので、次は本格的にウェイトペイントです。
blenderでMMDモデルを作ろう|第1回:造形
基本的な操作方法や、下絵を準備して面を張って~…というモデリングの流れは、すでに多くのブログやyoutube、ニコニコなどで解説されているため、このブログでは割愛します(バッサリ)。
このブログを書こうと思ったのも、造形に関する解説は多いのに、その後どうやってMMDにもっていけるのか、というものは少なくて自分が困ったからです。
造形に関して参考になったものをいくつかご紹介すると、
という感じです。
最初から人物(キャラクター)は難しすぎるからやらないほうがいいという意見や、静物なんてモチベがあがらない=続かない!という意見もあります。
自分の興味がある、一番やる気がでそうなものから始めるのが個人的にはいいかと思います。
このブログで今後MMDモデルにしていく予定の、造形がすんだものが、こちらです。
(今まで作ったモデルのパーツを組み合わせてシンプルな謎人物を作りました。)
ちなみにこのチョコレート色のようなものは、N keyで表示される画面右横にあるタブ内の、Matcapをオンにするとみられます。
また、そのすぐ下にあるAmbient Occlusion(疑似的な影)をオンにしておくと、顔にできた不要なしわなどを発見しやすいです。
なので、私がモデリングする際はいろいろな種類のMatcapを使ってみたり、Ambient Occlusionをオンにしたりオフにしたりしながら、変なところがないかチェックしています。
モディファイアはオブジェクトごとに設定されるため、使いたいモディファイアごとに/または自分が分かりやすいように、複数のオブジェクトで1つのモデルを構成しています。
基本的にすべてのオブジェクトでミラーモディファイアを使用しています。
また、顔と髪にはサブディビジョンサーフェースモディファイア(以下、サブサーフと書きます)を使用しています。
そして、材質/マテリアルも簡易的に設定しています。
マテリアルの設定方法について簡単に説明します。
まずマテリアルビューにし、
Shift + A keyでライトを追加します。
私はいつもヘミライトを使います。ヘミライトの位置はどこにあっても関係ありません。
ライトを追加したそのままの向きだとモデルの顔が怖くなるので、いつもx軸ですこし傾けています。
そして、マテリアルを設定したいオブジェクトを選択し、マテリアルタブのNewを押してマテリアルを設定していきます。
試しにズボン(靴と一体型になっている)でやってみると、
選択したオブジェクト(ズボン)全体の色が変わります。
1つのオブジェクトで複数のマテリアルを設定したい場合は、まずマテリアルの右上にある+を押して新たなマテリアルを作ります。
次に編集モードに入り、マテリアルを変更したい面を選択します(今回はベルトと靴底)。
そしてAssignボタンを押せば、材質が割り当てられます。
これと同様のやり方で肌の色や目の色を指定できます。
マテリアルの設定はこの段階で行う必要はないのですが、この後ウェイトを設定する際に色がついていたほうが服の貫通などにも気づきやすいと思います。
UV展開やテクスチャについてはのちのちやっていくのですが、髪に関してはすでにUV展開しテクスチャを張っています。
なぜかというと、造形後にテクスチャを張ってまっすぐな髪の流れにするのは難しいためです。
なので、UV展開し、テクスチャを張ったものを髪のような形に変形させています。
今回の髪では、こちらのブログを参考にしました。
モデルを構成するすべてのオブジェクトにマテリアルを設定し、こんな感じになりました(シンプル!)。
初めてモデリングをやってみてここまで来た方は本当にすごい!えらい!素晴らしい!
ウェイトに続きます。
MMD動画制作日記|ジョルノでフィクサー(3作目)
モデリングではなく動画制作の思い出みたいなものをつらつら書きます。
日記みたいなもので誰得でもありません。
MMD動画制作日記と書いてますが使ったツールはMikuMikuDanceだったりblenderだったりします。
2体目のモデル、ジョルノを作ってからの動画は3作目。
ジョルノのカラーは歴代ジョジョ集合絵のうちの1つからとってきました。
フィクサーは曲もダンスもかっこよくていいですよね~。
5部に出てくるネアポリス駅でおどってたらかっこいいな~と思って駅も作りました。
霧が濃くでている深夜4時のイメージです。
ローポリ;▽;
シーンが重くなりすぎるのが嫌だったので全体的にローポリで作りました。
ネアポリス駅はゲーム、アイズオブヘブンにもでてくるのでそちらも大いに参考にしました。
漫画にでてくるのはデジタルの時計なんですけど、雰囲気重視でアナログにしました。
ここ!水飲み場のポリゴンが重なっててちらついてるんですよね;
気づかなかった;
モデルについても少し触れると、15歳ということを意識しすぎて頭身低くしすぎたことと、肩の位置が異様に高いことが反省点かな(笑)
このときから、cyclesからblender internalのほうに移行したのでレンダリング速度はあがった。
それでも駅の頂点数が多い分時間はかかって、2,3日位だったと思う。
この次の作品でジョルノの頭身をたかくするんですけど、高くしてからはこの動画見て「ちんちくりんすぎやろ...;;」となってしまいまともに動画を見られなくなりました。