BlenderでMMDモデルを作成 #1【Meshes&Armature】


はじめに

初心者がBlenderでMMDモデルを自作する記事を連載で投稿します。

投稿の目的

最終的な目標です。

  • MikuMikuDanceで自作のモデルを動作させる

以前、Blenderで猫耳少女のウォーキングアニメーションを作成しました。

この猫耳少女モデルを「MMD Tools」で.pmxに変換してみましたが、知識、経験不足でうまくできませんでした。

左手IKの移動で伸びる左手

この連載では、以下のような知識についてわたしなりに学んだことを記事にしていきたい、と考えています。

  • New MMD Model
  • 回転付与」「移動付与
  • 「IK」
  • 変形階層
  • エクスポート

今回の目的

第1回目、今回の目的です。

  • 簡単なメッシュとアーマチュアを作成する

メッシュの作成はBlenderの機能で行いますが、アーマチュアはMMD Toolsの機能で作成します。
また、ボーン構成については標準的なMMDモデルを参考にして作成します。

今回の学習テーマです。

  • MMDモデルのボーン構成
  • MMD Toolsで「New MMD Model」作成

その他

記事の内容については正確性を保証致しません。
「解説」ではなく、個人のメモ、備忘録のような情報としてお読みください。

各機能や設定についてハイライトで色を分けています。

  • Blenderの機能・設定
  • MMD Toolsの機能・設定
  • MMD Toolsの機能で作成されたもの

モデル制作者の皆様の作品からその設定等を参考にさせていただきました。参考にさせていただいた制作者様、モデル名は末尾に記載いたします。


準備

使用するソフト及びハードウェア要件を確認します。

ソフトウェア

今回使用するアプリケーション及びアドオンです。

Blender

3DCGコンテンツを作成できるフリーソフトです。

こちらのページからDownloadページへ移動し、DLができます。
2022/12/5時点で3.3.1 LTS版がリリースされていますね。

Blender is Free and Open Source software, forever.

https://www.blender.org/about/

こんなソフトが無料で使えてしまうなんて、すごいですよね。

Blender「Layout」画面

MMD Tools

Blenderで作成した3Dモデルを.pmx形式に変換してエクスポートするアドオンです。試していませんが、.pmd、.pmxをインポートしてBlender上で編集もできるようです。

GitHubでUuuNyaaaさんのblender _mmd_toolsリポジトリからDLができます。

こちらのページから Release ボタンをクリックして、最新版をDLするのが良いかと思います。最新版は、2022/12/5時点で2.8.0、日付が10/17ですから更新が続いていますね。
わたしが使用しているのは2.4.0版なので、落ち着いたら最新版に更新しようと思います。

MMD Toolsがインストールされた状態

PmxEditor

.pmd、.pmxファイルの編集ができるアプリケーションです。
わたしは以下のような使い方で活用させていただいております。

  • 既存のMMDモデルの構造を参照する(readmeを読んでから)
  • 自作のMMDモデルを確認・調整する

下記の『とある工房』さんのページからダウンロードページへ移動し、DLできます。

PmxEditorを起動すると「編集」と「View」ウィンドウが開かれる。こちらは「View」

MikuMikuDance

MMDモデルを躍らせるアプリケーションです。
このアプリで操作できるようにモデル及びそのアーマチュアを作成する、というのが今回の目標です。

こちらのサイト『VPVP』からダウンロードできます。おそらく、ほとんどの方が64bit版になるのではないでしょうか?

2021年2月末にインストールしましたが、私の環境ではエラーが出て、配布されているランタイムの導入がになりました。

「Microsoft Visual C++ 2008 再頒布可能パッケージ(x64)」

わたしの環境の場合、上記パッケージの「vcredist_x64_vc2008.exe」を実行するだけでMikuMikuDanceは動作しました。現時点でも、そのまま問題なく動いています。

MMDで今回作成したモデルを読み込んだ

ハードウェア(開発環境の確認)

Blenderのハードウェア要件

Recommended

CPU64-bit eight core CPU
メモリ32 GB RAM
ディスプレイ2560×1440 display
マウスThree button mouse or pen+tablet
GPUGraphics card with 8 GB RAM
https://www.blender.org/download/requirements/より抜粋

Minimum

CPU64-bit quad core CPU with SSE2 support
メモリ8 GB RAM
ディスプレイFull HD display
マウスMouse, trackpad or pen+tablet
GPUGraphics card with 2 GB RAM, OpenGL 4.3
https://www.blender.org/download/requirements/より抜粋

わたしの開発環境

  • メモリ:16GB
  • ディスプレイ:Full HD

個人の感想に過ぎませんが、今回の作業の場合、16GBだと処理が重い、と感じたことはないです。
モニターで不都合を感じたことはないですが、WQHDで21.5インチ程度のものがあれば試してみたいです。


メッシュ作成

ソフト、ハード面で確認ができましたので、モデル作成を進めていきます。

まずはメッシュを作成します。

参考資料

シリーズ中で参考にさせていただいた各動画については記事の最後にまとめて記載してあります。
動画で使用されているBlenderは2.91であり、わたしは2.83LTSを使用していますが、仕様や操作に違いを感じることはなかったです。

成果物

作成過程は割愛します。作成したメッシュがこちらです。

色はBlenderの「照明・MatCap・スタジオライティング設定metal_carpaint.exr」によるもの

頂点数は3110です。


MMD Toolsについて

「MMD Tools」の機能ついて確認します。

MMD Toolsの機能

「MMD Tools」を導入すると以下の項目に新たな機能が追加されます。その機能を確認します。

サイドバー「MMD」

黄色の枠線内が追加される
概要

モデルのインポート・エクスポート、アニメーションの設定、作成するモデルの設定等、多くの機能があります。試していませんが、リジッドボディやジョイントの追加もここでできるようです。

今回、主に使用した機能は以下の機能です。

  • モデル製作「モデルを作成
  • モデル製作「モデルを変換
  • モデル設定「すべて
  • モデル設定「ボーン
  • モデル設定「プロパティ
追記:2023/3/2

ある程度モデルを作ってみて、よくアクセスする機能は以下です。

  • モデル製作:「モデルを作成
  • 「組み立て」の各項目
  • シーン設定:モデル「エクスポート
  • リジッドボディ:
  • ジョイント:

こちらで作成したリジッドボディとジョイントは、PmxEditorでそれぞれ「剛体」、「Joint」タブに反映されます。

MMD Toolsで剛体とジョイントを作成した状態
「剛体」タブ
「Joint」タブ

リジッドボディとジョイントについて投稿をしました。

MMDモデル情報

プロパティエディター「オブジェクトプロパティ」にあります。

コメントの編集ができるようです。他にも「MMD IK反復係数を変更」、「ボーンロールを再計算」という機能がありますが、内容は不明です。

今回はこちらの機能は使用していません。

MMDボーンツール

概要

プロパティエディター「ボーンプロパティ」にあります。
アーマチュアを選択時、今回の場合後述の『New MMD Model_arm』を選択時に「ボーンプロパティ」は表示されます。

.pmx上でのボーンの設定ができます。

  • ID
  • 名前
  • 変形階層
  • 軸制限
  • ローカル軸
  • 回転付与、移動付与

ここで設定しなくてはならない、という訳ではなく、PmxEditorで改めて設定できます。
今回の場合、ほとんどのボーンの「ID」が値「-1」のままでしたが、エクスポートは可能でした。

追記:2023/3/2

こちらはPmxEditorの「ボーン」タブに相当する項目です。

MMDマテリアル、MMDテクスチャ

黄色の枠線内部が追加される

プロパティエディター「マテリアルプロパティ」にあります。

今回、メッシュに色は付けないのでこちらの機能は使用しません。

追記:2023/3/2

PmxEditorであれば「材質」タブに相当する項目です。

BlenderとPmxEditorで各パラメータの名称が異なるようです。以下はその一部の対応表です。

BlenderPmxEditor
デフューズ色拡散色
スペキュラーカラー反射色
周囲光の色環境色
アルファ非透過度
反射反射強度

MMDテクスチャで各項目を指定すれば、PmxEditor上のモデルの見た目を再現してくれるようです。個人の感想に過ぎませんが、Blenderの方がかなり明るめに表現されるようです。
UV展開図に対応したテクスチャ、自作のスフィア画像を指定し、共有のトゥーン画像を選択した状態です。

スフィア、トゥーンについて投稿をしました。

MMDShaderDev」ノード

猫耳を「モデルを変換」した際にわかったことを備忘録として記しておきます。

猫耳少女はBlenderの「UV Editing」、「Texture Paint」、「Shading」機能で色を付けました。
このモデルを「モデルを変換」すると、Blenderでのマテリアル設定が反映されない箇所があります。下の画像を比較すると、首と頭の紐飾の色が変換前後で違っています。

モデルを変換」前
モデルを変換」後

紐飾にBlenderのマテリアル設定が反映されていないですね。「モデルを変換」すると、「サーフェス」が「MMDShaderDev」ノードに変更されることが原因のようです。

よく見ると、マテリアルがエラーを示す明るい紫色で表示されています。

「放射」ノードからは設定した色を「MMDShaderDev」に接続することができないため、「MMDShaderDev」の「ベーステクスチャ」が反映されているようです。

次に肩のフリルの「Shading」を見てみます。

マテリアルにエラーは出ていないですね。
「画像テクスチャ」ノードの「カラー」端子から「MMDShaderDev」の「ベーステクスチャ」及び「ベースアルファ」に接続されています。

このようなノードの接続がされれば、Blenderのマテリアル設定が反映されるようです。

マテリアルを含むノードが「MMDShaderDev」に接続できるノードでないと、マテリアルを反映させることができない、ということだと思います。

不明な点
  • MMDTexUV

MMDTexUV」というノードも「モデルを変換」時に作成されていますが、詳細は不明です。他のノードに接続しなくても問題はないようですので、今回は扱いません。

  • 艶々になる

モデルを変換」すると艶々になります。上の画像で比べてもかなりの差を感じますよね。
トゥーンテクスチャ」、「スフィアテクスチャ」を切り替えても変化がないので、また別の設定になるのだと思います。要勉強です。


MMDモデルのボーン構成

次にアーマチュアのボーン構成について確認します。

ボーン構成の確認

参考資料

プリメロ工房さんの『MMD用ボーンの作り方【技術書】』を参考にさせていただきました。
詳細は下記の『BOOTH』内、プリメロ工房さんのページからご確認ください。

MMD向けに作成するに当たり、各ボーンの日本語名称、標準ボーン・準標準ボーンの役割等、事前に知っておかないといけない知識について分かりやすく説明されています。

ボーン構成

作成するボーン構成

今回は以下の親子関係でボーンを作成します。

  • 全ての親
    • センタ
      • グルーブ
          • 上半身 – 上半身2
            • 肩P – – 肩C
              • – 腕捩 – – 手捩 – 手首
                • 親指・人差指・中指・薬指・小指
            • 首 – 頭 – 目
          • 下半身
            • 腰C
              • 足 – 膝 – 足首 – つま先
              • 足D – 膝D – 足首D
    • 足IK – つま先IK

太字は「標準ボーン」とされているものです。
一般的に必要とされるボーンは用意されていると思います。

作成しなかったボーン
  • 『両目』
  • 『舌』『歯』

まず動作確認が目的、ということで作成していません。
『舌』『歯』については「モーフ」で扱うようなので、ボーンは必要ないかもしれません。

作成してみたボーン
  • 腕の「IKボーン」及び「Dボーン」
  • 指の「IKボーン」及び「Dボーン」
  • 上半身の「IKボーン」

勉強のため作成してみました。結果としてはうまく作成できませんでした。


ボーンの名称

ボーンの名前について確認します。

日本語が必須?

今回作成したボーンは全て英語の名称であり、「自動ネーム(左右)」で名付けたままです。例えば、以下のような名前です。

  • 『arm1.L』(左腕)
  • 『a.001.L』(親指)

BlenderでMMD Tools使用時や、PmxEditor、MikuMikuDance上においても、ボーンの名前は日本語でなくても動作します。
「IK」や「回転付与」等の設定が正しければ、各アプリでボーンの移動・回転に伴うメッシュの変形は確認が可能です。

問題となるのは、.vmd(モーションデータ)等を読み込む際に、データのボーンの名称と合っていないと正しく動作しない、ということだと思います。
モーションデータをお借りする予定であれば、予めそのデータが対象にしたモデルのボーン構成を確認しておく必要がある、と思います。

ボーンの名称についてまとめると、以下のようになると思います。

  • 個人で扱うなら日本語でなくても構わない
  • データを配布、お借りする場合、日本語が必要

全角文字と半角文字

「IK」を含む名称で、半角文字と全角文字を間違えたら、その「IKボーン」が動作しない、という経験をしました。

Blenderと日本語入力

MMDボーンツール」機能を用いれば、Blender上で日本語の名前を付けることもできます。
しかし、ちょっとした面倒があるので、この作業はPmxEditorで行うのが良いのではないか、と思います。

『leg1.L』の名前を「MMDボーンツール」で『左足』に変えようとした

今回、日本語名の編集はエクスポート後、PmxEditorで行いました。

追記:2023/7/10
日本語入力をして変換する際、先頭の小文字が残ってしまうという問題ですが、Blender3.35LTSでは解消されていました。


Armature作成

作成を始めます。

作成手順

参考資料

また、上記のプリメロ工房さん『MMD用ボーンの作り方【技術書】』も参考にしています。

New MMD Model』を作成

まずはMMD Toolsの機能を用いてアーマチュアを追加します。

サイドバーのMMD Toolsから「モデル制作」の「モデルを作成」を選択すると、『New MMD Model』という名前のエンプティが作成されます。

全ての親』が作成されている

そのエンプティ内に『New MMD Model_arm』というアーマチュアが含まれています。『全ての親』というボーンが作成されており、これを元に子のボーンを伸ばしていきます。

作成過程は割愛します。

成果物

作成したボーンがこちらです。

追記:2023/7/18
各ボーンの位置、向き、親子関係、IK、回転付与の設定について、肩部、腕部、足部等に分けて、私なりに調べたことを新たに記しました。


Blender機能の活用

以下、個人的に便利と感じたBlenderの機能についてです。

ボーンの複製とレイヤー

各「Dボーン」は同じ位置にあるボーンを「複製」して作成した後、レイヤーを分けました。

複製しレイヤー分ける

簡単な例を挙げます。

新規『New MMD Model』の『全ての親』からボーンを伸ばす

①【Shift + D】で複製

わかりやすく移動させているが、実際はそのまま決定

②【M】で「ボーンレイヤーを変更」を表示

この時点ではボーンは全て同じレイヤーに存在している

③任意のレイヤーを選択し、複製したボーンのレイヤーを移す

表示中のレイヤーに選択中の複製したボーンは存在しないため、表示されていない

④表示するレイヤーを変更してみる

選択中の複製したボーンが表示される。『全ての親』はレイヤーが違うので非表示
レイヤーを分ける理由

「複製元」と「Dボーン」でレイヤーを分けた方が余計なミスを防げるかもしれません。

当初レイヤーを分けないで作業していましたが、「回転付与」の設定先を間違える、というミスをやってしまった後、改めました。

複製元のレイヤー
Dボーンのレイヤー

ボーンの複製と接続

「捩ボーン」を作成する際に、Blenderの機能「複製」が活きると思います。
「腕ボーン」の「捩ボーン」を例に挙げます。

①「腕ボーン」(緑色)を複製し、複製されたボーン(黄色)を細分化

複製されたボーンを細分化してふたつに分けた

②「捩ボーン」にするボーン(「腕」のテール寄りの方)の設定を変更

接続を切って親を「腕(緑)」に変更する

③必要ないボーンを消去する

「腕」とヘッドの位置が重なる方のボーンを削除

④「腕ボーン」のテールに合わせて「捩ボーン」が残る

⑤「捩ボーン」で「軸制限」にチェック、読み込み、適応

関節のない位置で腕が曲がらないようにするため

別々に作成したボーンの位置を手動で合わせるのは無理がありますよね。

ボーン間のスナップ機能なんてあるのでしょうか?
3Dカーソルを移動させて合わせることもできそうですが、「複製」を使う方がもっと楽で正確ではないか、と思います。

疑問に思うのは、腕と腕捩、ひじと手捩等、親子関係があるのだから、こういうボーンが重なり合うような配置にする必要があるのだろうか?という点です。
ひとつのボーンを細分化して捩親と捩を作ってしまえばいいのではないか?と思うのですが。要勉強ですね。

対称化

体の中心部分と左半身のボーンを作成し、その後、Blenderのアーマチュア機能「自動ネーム(左右)」と「対称化」を使用して右半身のボーンも作成しました。

対称化の方法

簡単な例を挙げます。

①左側のボーンを全て選択して「自動ネーム(左右)

自動ネーム(左右)」選択前の名称に注目

②選択していたボーンの名称に「.L」が追加される

③「対称化

④右側にボーンが作成される

名称に自動で「.R」が付く
対称化の注意点

Blenderの「ボーンコンストレイント」「IK」は「対称化」に対応しているようです。「対称化」する前に「IK」を設定しておけば、ターゲットも左右反転して選択されます。

MMD Toolsの機能「回転付与移動付与」はMMD Tools2.4.0版では「対称化」には対応していないようです。ボーンの「対称化」を行う前に「回転付与移動付与」の設定は行わない方が無難だと思います。


Weight Painting

アーマチュアでメッシュを変形させるため、以下の作業を行います。

  • 頂点グループの作成
  • ウェイトペイント

頂点グループ作成

作成したメッシュとアーマチュア(New MMD Model_arm)を選択し、頂点グループを作成します。
New MMD Model_arm』を元に頂点グループを作成すると、メッシュが『New MMD Model』に関連付けされるようです。

作成した頂点グループは「オブジェクトデータプロパティ」で確認できます。

メッシュのオブジェクトが薄く『New MMD Model』下に表示される

ウェイトペイント

上記③の頂点グループ作成時、「自動のウェイトで」を選択してウェイトペイントは済ませました。

ウェイトを乗せないボーンは、事前にBlenderの「ボーンプロパティ」「変形」のチェックを外してあります。

「変形」を外したボーンの頂点グループは作成されない

「Dボーン」とその複製元のボーンは同じ位置に存在しますが、ウェイトは「Dボーン」に乗せておきました。

『左肩(shoulder.L)』のウェイト
『左腕D(arm1.D.L)』のウェイト

腕に「IK」を設定したため、このようなウェイトペイントになっています。
『左腕』は頂点グループが存在しませんし、全くウェイトを乗せていません。

『左腕D(arm1.D.L)』にウェイトが乗り過ぎですね。『左腕捩(arm1.twist.D.L)』の範囲まで乗っています。
調整は必要になると思いますが、まずは動けばOK、ということで、このままにしておきます。


モデル動作確認

メッシュ・アーマチュアを作成しました。ポーズモードで動きを確認します。

動作確認

『左手IK』を移動させてみました。『左腕』の動きに上半身が引っ張られ過ぎていますが、とりあえずはこれで良しとします。

『左足IK』『左つま先IK』は概ね良さそうです。あまり大きく動かすとおかしな変形をしてしまいますが。

回転付与」や「IK」の設定を先に済ませてありますが、これらについては次回以降の投稿で扱う予定です。

余談(今後の課題)

操作する前に手首や指の「IK」を切っています。切っておかないと手先のメッシュに不自然な捩れができてしまうからです。

手首と指の「IK」をONで『左手IK』を操作

Blender上であれば、手首・指の「IKボーン」の親をそれぞれ『左手捩』『左手首』にすれば解決できるようです。

PmxEditorやMMDでは腕・手首・指の「IK」をうまく動作させることはできませんでした。ここは今後の課題です。

最終的に「MMDで動作確認する」際には、操作可能なボーンに腕系統の「IK」が存在しないモデルを元にした.vmdを読み込む予定です。
ここでの『左手IK』での動作確認は、メッシュとアーマチュアの関係付けの作業の結果確認のためのもの、と受け取っていただけると幸いです。


終わりに

基本情報の確認、メッシュ・アーマチュア作成が主な内容でした。

次回は「回転付与」に必要な知識の確認を行い、「回転付与」を各ボーンに設定していきたいと思います。

読んでくださった方、ありがとうございました。

著者名書籍名出版発行年月日参照頁
緋子Blenderで作るキャラクターモデリング入門実践ガイドマイナビ出版初版:2021/5/241~360p
参考文献
サイト名ページタイトルURL参考にした日付
mmCGチャンネル animetichttps://www.youtube.com/channel/UCvC55dRRUwzHgkj1oiylDpg2022/12/12
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭のつくり方 #1 https://www.youtube.com/watch?v=h4mSPn5ALyk2022/12/12
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭部 #2https://www.youtube.com/watch?v=b9CsI5vnHr82022/12/12
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭部 #3https://www.youtube.com/watch?v=dwIoPTOvzG82022/12/12
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 上半身https://www.youtube.com/watch?v=PYAgI2p_fPI2022/12/12
【Blender 2.91 Tutorial】Low Polyキャラクターモデリング解説 下半身https://www.youtube.com/watch?v=6NBRMayyziI2022/12/12
【Blender 2.91 Tutorial】Low Polyキャラクターモデリング解説 手https://www.youtube.com/watch?v=w5Atj2IQBQg2022/12/12
【Blender 2.91 Tutorial】顔のパーツの作り方【Low Poly】https://www.youtube.com/watch?v=GrNB3EZYImg2022/12/12
【Blender 2.9 Tutorial】キャラクターリギング解説 #1https://www.youtube.com/watch?v=G2orwhrl4VU&t2022/12/12
Blenderhttps://www.blender.org/2022/12/11
Requirementshttps://www.blender.org/download/requirements/2022/12/11
UuuNyaa/blender_mmd_toolshttps://github.com/UuuNyaa/blender_mmd_tools2022/12/11
とある工房https://kkhk22.seesaa.net/2022/12/11
Vocaloid Promotion Video Projecthttps://sites.google.com/view/vpvp/%E3%83%9B%E3%83%BC%E3%83%A02022/12/11
MMD用ボーンの作り方【技術書】https://booth.pm/ja/items/34225582022/12/11
参考URL

参考にさせていただいたモデルについて

readme等を読み、禁止事項に当たらないよう注意し、今回の投稿をしております。

モデル制作者の皆様には、この場を借りてお礼を申し上げます。
制作者の皆様、素晴らしいモデルを使用させていただき、ありがとうございます。

モデル名製作者様URL
Tda式初音ミク・アペンド_ver1.10Tdahttps://bowlroll.net/file/4576
YYB Hatsune Miku_10th_v1.02YYBhttps://bowlroll.net/file/146083
つみ式ミクさんv4つみだんごhttps://3d.nicovideo.jp/works/td56081
参考MMDモデル

追記 2023/1/16

訂正4.1.4.1章「MMDSHADERDEV」ノード
 一部の記事を修正し、画像を差し替えました。
理由 以前に書いた内容を再現できなかったため

追記 2023/2/28

記事を更新:読みにくいと感じた箇所を修正しました。

追記 2023/3/1

記事を更新:一部加筆、読みにくいと感じた箇所を修正しました。

追記 2023/3/2

記事を更新:一部加筆、読みにくいと感じた箇所を修正しました。


comment