はじめに
初心者がBlenderでMMDモデルを自作する記事を連載で投稿します。
投稿の目的
最終的な目標です。
- MikuMikuDanceで自作のモデルを動作させる
以前、Blenderで猫耳少女のウォーキングアニメーションを作成しました。
この猫耳少女モデルを「MMD Tools」で.pmxに変換してみましたが、知識、経験不足でうまくできませんでした。
この連載では、以下のような知識についてわたしなりに学んだことを記事にしていきたい、と考えています。
- 「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/
こんなソフトが無料で使えてしまうなんて、すごいですよね。
MMD Tools
Blenderで作成した3Dモデルを.pmx形式に変換してエクスポートするアドオンです。試していませんが、.pmd、.pmxをインポートしてBlender上で編集もできるようです。
GitHubでUuuNyaaaさんのblender _mmd_toolsリポジトリからDLができます。
https://github.com/UuuNyaa/blender_mmd_tools
こちらのページから Release ボタンをクリックして、最新版をDLするのが良いかと思います。最新版は、2022/12/5時点で2.8.0、日付が10/17ですから更新が続いていますね。
わたしが使用しているのは2.4.0版なので、落ち着いたら最新版に更新しようと思います。
PmxEditor
.pmd、.pmxファイルの編集ができるアプリケーションです。
わたしは以下のような使い方で活用させていただいております。
- 既存のMMDモデルの構造を参照する(readmeを読んでから)
- 自作のMMDモデルを確認・調整する
下記の『とある工房』さんのページからダウンロードページへ移動し、DLできます。
MikuMikuDance
MMDモデルを躍らせるアプリケーションです。
このアプリで操作できるようにモデル及びそのアーマチュアを作成する、というのが今回の目標です。
https://sites.google.com/view/vpvp/%E3%83%9B%E3%83%BC%E3%83%A0
こちらのサイト『VPVP』からダウンロードできます。おそらく、ほとんどの方が64bit版になるのではないでしょうか?
2021年2月末にインストールしましたが、私の環境ではエラーが出て、配布されているランタイムの導入がになりました。
「Microsoft Visual C++ 2008 再頒布可能パッケージ(x64)」
わたしの環境の場合、上記パッケージの「vcredist_x64_vc2008.exe」を実行するだけでMikuMikuDanceは動作しました。現時点でも、そのまま問題なく動いています。
ハードウェア(開発環境の確認)
Blenderのハードウェア要件
以下、Blenderのハードウェア要件です。
https://www.blender.org/download/requirements/
Recommended
CPU | 64-bit eight core CPU |
メモリ | 32 GB RAM |
ディスプレイ | 2560×1440 display |
マウス | Three button mouse or pen+tablet |
GPU | Graphics card with 8 GB RAM |
Minimum
CPU | 64-bit quad core CPU with SSE2 support |
メモリ | 8 GB RAM |
ディスプレイ | Full HD display |
マウス | Mouse, trackpad or pen+tablet |
GPU | Graphics card with 2 GB RAM, OpenGL 4.3 |
わたしの開発環境
- メモリ:16GB
- ディスプレイ:Full HD
個人の感想に過ぎませんが、今回の作業の場合、16GBだと処理が重い、と感じたことはないです。
モニターで不都合を感じたことはないですが、WQHDで21.5インチ程度のものがあれば試してみたいです。
メッシュ作成
ソフト、ハード面で確認ができましたので、モデル作成を進めていきます。
まずはメッシュを作成します。
参考資料
mmCGチャンネルさんの「Low Poly」シリーズ動画を参考にして作成しました。
シリーズ中で参考にさせていただいた各動画については記事の最後にまとめて記載してあります。
動画で使用されているBlenderは2.91であり、わたしは2.83LTSを使用していますが、仕様や操作に違いを感じることはなかったです。
成果物
作成過程は割愛します。作成したメッシュがこちらです。
頂点数は3110です。
MMD Toolsについて
「MMD Tools」の機能ついて確認します。
MMD Toolsの機能
「MMD Tools」を導入すると以下の項目に新たな機能が追加されます。その機能を確認します。
サイドバー「MMD」
概要
モデルのインポート・エクスポート、アニメーションの設定、作成するモデルの設定等、多くの機能があります。試していませんが、リジッドボディやジョイントの追加もここでできるようです。
今回、主に使用した機能は以下の機能です。
- モデル製作「モデルを作成」
- モデル製作「モデルを変換」
- モデル設定「すべて」
- モデル設定「ボーン」
- モデル設定「プロパティ」
追記:2023/3/2
ある程度モデルを作ってみて、よくアクセスする機能は以下です。
- モデル製作:「モデルを作成」
- 「組み立て」の各項目
- シーン設定:モデル「エクスポート」
- リジッドボディ:
- ジョイント:
こちらで作成したリジッドボディとジョイントは、PmxEditorでそれぞれ「剛体」、「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で各パラメータの名称が異なるようです。以下はその一部の対応表です。
Blender | PmxEditor |
---|---|
デフューズ色 | 拡散色 |
スペキュラーカラー | 反射色 |
周囲光の色 | 環境色 |
アルファ | 非透過度 |
反射 | 反射強度 |
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』内、プリメロ工房さんのページからご確認ください。
https://booth.pm/ja/items/3422558
MMD向けに作成するに当たり、各ボーンの日本語名称、標準ボーン・準標準ボーンの役割等、事前に知っておかないといけない知識について分かりやすく説明されています。
ボーン構成
作成するボーン構成
今回は以下の親子関係でボーンを作成します。
- 全ての親
- センター
- グルーブ
- 腰
- 上半身 – 上半身2
- 肩P – 肩 – 肩C
- 腕 – 腕捩 – 肘 – 手捩 – 手首
- 親指・人差指・中指・薬指・小指
- 腕 – 腕捩 – 肘 – 手捩 – 手首
- 首 – 頭 – 目
- 肩P – 肩 – 肩C
- 下半身
- 腰C
- 足 – 膝 – 足首 – つま先
- 足D – 膝D – 足首D
- 腰C
- 上半身 – 上半身2
- 腰
- グルーブ
- 足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で行うのが良いのではないか、と思います。
今回、日本語名の編集はエクスポート後、PmxEditorで行いました。
追記:2023/7/10
日本語入力をして変換する際、先頭の小文字が残ってしまうという問題ですが、Blender3.35LTSでは解消されていました。
Armature作成
作成を始めます。
作成手順
参考資料
mmCGチャンネルさんの「リギング解説 #1」を参考にして作成しました。
また、上記のプリメロ工房さん『MMD用ボーンの作り方【技術書】』も参考にしています。
『New MMD Model』を作成
まずはMMD Toolsの機能を用いてアーマチュアを追加します。
サイドバーのMMD Toolsから「モデル制作」の「モデルを作成」を選択すると、『New MMD Model』という名前のエンプティが作成されます。
そのエンプティ内に『New MMD Model_arm』というアーマチュアが含まれています。『全ての親』というボーンが作成されており、これを元に子のボーンを伸ばしていきます。
作成過程は割愛します。
成果物
作成したボーンがこちらです。
追記:2023/7/18
各ボーンの位置、向き、親子関係、IK、回転付与の設定について、肩部、腕部、足部等に分けて、私なりに調べたことを新たに記しました。
Blender機能の活用
以下、個人的に便利と感じたBlenderの機能についてです。
ボーンの複製とレイヤー
各「Dボーン」は同じ位置にあるボーンを「複製」して作成した後、レイヤーを分けました。
複製しレイヤー分ける
簡単な例を挙げます。
①【Shift + D】で複製
②【M】で「ボーンレイヤーを変更」を表示
③任意のレイヤーを選択し、複製したボーンのレイヤーを移す
④表示するレイヤーを変更してみる
レイヤーを分ける理由
「複製元」と「Dボーン」でレイヤーを分けた方が余計なミスを防げるかもしれません。
当初レイヤーを分けないで作業していましたが、「回転付与」の設定先を間違える、というミスをやってしまった後、改めました。
ボーンの複製と接続
「捩ボーン」を作成する際に、Blenderの機能「複製」が活きると思います。
「腕ボーン」の「捩ボーン」を例に挙げます。
①「腕ボーン」(緑色)を複製し、複製されたボーン(黄色)を細分化
②「捩ボーン」にするボーン(「腕」のテール寄りの方)の設定を変更
③必要ないボーンを消去する
④「腕ボーン」のテールに合わせて「捩ボーン」が残る
⑤「捩ボーン」で「軸制限」にチェック、読み込み、適応
別々に作成したボーンの位置を手動で合わせるのは無理がありますよね。
ボーン間のスナップ機能なんてあるのでしょうか?
3Dカーソルを移動させて合わせることもできそうですが、「複製」を使う方がもっと楽で正確ではないか、と思います。
疑問に思うのは、腕と腕捩、ひじと手捩等、親子関係があるのだから、こういうボーンが重なり合うような配置にする必要があるのだろうか?という点です。
ひとつのボーンを細分化して捩親と捩を作ってしまえばいいのではないか?と思うのですが。要勉強ですね。
対称化
体の中心部分と左半身のボーンを作成し、その後、Blenderのアーマチュア機能「自動ネーム(左右)」と「対称化」を使用して右半身のボーンも作成しました。
対称化の方法
簡単な例を挙げます。
①左側のボーンを全て選択して「自動ネーム(左右)」
②選択していたボーンの名称に「.L」が追加される
③「対称化」
④右側にボーンが作成される
対称化の注意点
Blenderの「ボーンコンストレイント」「IK」は「対称化」に対応しているようです。「対称化」する前に「IK」を設定しておけば、ターゲットも左右反転して選択されます。
MMD Toolsの機能「回転付与・移動付与」はMMD Tools2.4.0版では「対称化」には対応していないようです。ボーンの「対称化」を行う前に「回転付与・移動付与」の設定は行わない方が無難だと思います。
Weight Painting
アーマチュアでメッシュを変形させるため、以下の作業を行います。
- 頂点グループの作成
- ウェイトペイント
頂点グループ作成
作成したメッシュとアーマチュア(New MMD Model_arm)を選択し、頂点グループを作成します。
『New MMD Model_arm』を元に頂点グループを作成すると、メッシュが『New MMD Model』に関連付けされるようです。
作成した頂点グループは「オブジェクトデータプロパティ」で確認できます。
ウェイトペイント
上記③の頂点グループ作成時、「自動のウェイトで」を選択してウェイトペイントは済ませました。
ウェイトを乗せないボーンは、事前にBlenderの「ボーンプロパティ」「変形」のチェックを外してあります。
「Dボーン」とその複製元のボーンは同じ位置に存在しますが、ウェイトは「Dボーン」に乗せておきました。
腕に「IK」を設定したため、このようなウェイトペイントになっています。
『左腕』は頂点グループが存在しませんし、全くウェイトを乗せていません。
『左腕D(arm1.D.L)』にウェイトが乗り過ぎですね。『左腕捩(arm1.twist.D.L)』の範囲まで乗っています。
調整は必要になると思いますが、まずは動けばOK、ということで、このままにしておきます。
モデル動作確認
メッシュ・アーマチュアを作成しました。ポーズモードで動きを確認します。
動作確認
『左手IK』を移動させてみました。『左腕』の動きに上半身が引っ張られ過ぎていますが、とりあえずはこれで良しとします。
『左足IK』『左つま先IK』は概ね良さそうです。あまり大きく動かすとおかしな変形をしてしまいますが。
「回転付与」や「IK」の設定を先に済ませてありますが、これらについては次回以降の投稿で扱う予定です。
余談(今後の課題)
操作する前に手首や指の「IK」を切っています。切っておかないと手先のメッシュに不自然な捩れができてしまうからです。
Blender上であれば、手首・指の「IKボーン」の親をそれぞれ『左手捩』『左手首』にすれば解決できるようです。
PmxEditorやMMDでは腕・手首・指の「IK」をうまく動作させることはできませんでした。ここは今後の課題です。
最終的に「MMDで動作確認する」際には、操作可能なボーンに腕系統の「IK」が存在しないモデルを元にした.vmdを読み込む予定です。
ここでの『左手IK』での動作確認は、メッシュとアーマチュアの関係付けの作業の結果確認のためのもの、と受け取っていただけると幸いです。
終わりに
基本情報の確認、メッシュ・アーマチュア作成が主な内容でした。
次回は「回転付与」に必要な知識の確認を行い、「回転付与」を各ボーンに設定していきたいと思います。
読んでくださった方、ありがとうございました。
著者名 | 書籍名 | 出版 | 発行年月日 | 参照頁 |
---|---|---|---|---|
緋子 | Blenderで作るキャラクターモデリング入門実践ガイド | マイナビ出版 | 初版:2021/5/24 | 1~360p |
サイト名 | ページタイトル | URL | 参考にした日付 |
---|---|---|---|
mmCGチャンネル animetic | https://www.youtube.com/channel/UCvC55dRRUwzHgkj1oiylDpg | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭のつくり方 #1 | https://www.youtube.com/watch?v=h4mSPn5ALyk | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭部 #2 | https://www.youtube.com/watch?v=b9CsI5vnHr8 | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 頭部 #3 | https://www.youtube.com/watch?v=dwIoPTOvzG8 | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Poly キャラクターモデリング解説 上半身 | https://www.youtube.com/watch?v=PYAgI2p_fPI | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Polyキャラクターモデリング解説 下半身 | https://www.youtube.com/watch?v=6NBRMayyziI | 2022/12/12 | |
【Blender 2.91 Tutorial】Low Polyキャラクターモデリング解説 手 | https://www.youtube.com/watch?v=w5Atj2IQBQg | 2022/12/12 | |
【Blender 2.91 Tutorial】顔のパーツの作り方【Low Poly】 | https://www.youtube.com/watch?v=GrNB3EZYImg | 2022/12/12 | |
【Blender 2.9 Tutorial】キャラクターリギング解説 #1 | https://www.youtube.com/watch?v=G2orwhrl4VU&t | 2022/12/12 | |
Blender | https://www.blender.org/ | 2022/12/11 | |
Requirements | https://www.blender.org/download/requirements/ | 2022/12/11 | |
UuuNyaa/blender_mmd_tools | https://github.com/UuuNyaa/blender_mmd_tools | 2022/12/11 | |
とある工房 | https://kkhk22.seesaa.net/ | 2022/12/11 | |
Vocaloid Promotion Video Project | https://sites.google.com/view/vpvp/%E3%83%9B%E3%83%BC%E3%83%A0 | 2022/12/11 | |
MMD用ボーンの作り方【技術書】 | https://booth.pm/ja/items/3422558 | 2022/12/11 |
参考にさせていただいたモデルについて
readme等を読み、禁止事項に当たらないよう注意し、今回の投稿をしております。
モデル制作者の皆様には、この場を借りてお礼を申し上げます。
制作者の皆様、素晴らしいモデルを使用させていただき、ありがとうございます。
モデル名 | 製作者様 | URL |
---|---|---|
Tda式初音ミク・アペンド_ver1.10 | Tda | https://bowlroll.net/file/4576 |
YYB Hatsune Miku_10th_v1.02 | YYB | https://bowlroll.net/file/146083 |
つみ式ミクさんv4 | つみだんご | https://3d.nicovideo.jp/works/td56081 |
追記 2023/1/16
訂正 | 4.1.4.1章「MMDSHADERDEV」ノード 一部の記事を修正し、画像を差し替えました。 |
理由 | 以前に書いた内容を再現できなかったため |
追記 2023/2/28
記事を更新:読みにくいと感じた箇所を修正しました。
追記 2023/3/1
記事を更新:一部加筆、読みにくいと感じた箇所を修正しました。
追記 2023/3/2
記事を更新:一部加筆、読みにくいと感じた箇所を修正しました。