BlenderでMMDモデルを作成 #5【PmxEditor】


はじめに

『BlenderでMMDをモデル作成 #4』の続きです。

前回でモデルのエクスポートを済ませました。
今回は作成したモデルをPmxEditorで修正・編集します。

尚、記事の内容については正確性を保証致しません。「解説」ではなく、個人のメモ、備忘録のような情報としてお読みください。
また、以下の環境でモデルの作成を行っています。

ソフト、アドオン
Blnender2.83LTS
MMD Tools2.4.0
PmxEditor0.2.5.7

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

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

PmxEditor①
概観

エクスポートしたモデルの.pmxファイルをPmxEditorで開きます。

初期状態の確認

Blnderの編集内容によって、エクスポートされた初期状態には違いがあると思います。
下記はわたしが経験した例であり、常にこのような状態でエクスポートされる訳ではないと思います。

ボーン

Pmx編集ウィンドウで「ボーン」タブを選択し、ボーンの状態を確認します。

画像はエクスポートしたファイルを開き、未編集の状態です。

A:エクスポートしたそのままの状態
ボーン名

Blenderの「ボーンプロパティ」「MMDボーンツール」の「名前」でPmxEditor上のボーン名を設定できます。

ここで設定した日本語名は反映されています。『センター』や『上半身』等がそうです。

日本語名を未入力でエクスポートしたボーンは、Blender上のボーン名が表示されています。
エクスポート前に日本語名の入力が必須、ということではないようです。

Index

Blenderでの「MMDボーンツール」「情報:ID」が、PmxEditorでの「Index」に相当する、わけではないようです。

画像はPmxEditorでボーンの順序を整えた後、Blenderで「インポート」した状態です。
PmxEditor上でIndexは「17」ですが、Blender上ではID「-1」なので一致していないですね。

MMDボーンツール」「情報:ID」が何を表しているのかは、現時点で不明のままです。


PmxEditorのIndexについて言えば、エクスポートしたままでもほぼ親子関係の順序で並んでいるようです。

所々おかしい箇所もあります。
画像Aを見ると、例えば『waist(腰)』は『グルーブ』の次に並ぶはずですが、『下半身』より下位になっています。

IK

「IK」であるはずのボーンが「IK」でなくなっている場合もあります。
例えば、Index9番の『IK.spine』は「IK」として作成しましたが、反映されていません。

多くの場合、正しく反映されます。
例えば、Index78番の『IK.hand.L』は正しく設定されています。

「性能:IK」が点灯し「IK」として設定されていると、Indexの左のアイコンがオレンジ色になります。


表示枠

「表示枠」タブを選択し、確認します。

概要

画像はエクスポートしたファイルを開き、未編集の状態です。

「Root」という枠に『全ての親』が入っています。

いずれかの枠に入っていないボーンは、MMDで開いた際に「ボーン・フレーム操作」欄に表示されません。

エクスポートしたままの.pmxを開いた

ボーンの操作ができない訳ではないようですが、不便ですね。
ボーンの位置が重なる場合等、ボーンの名前から選択できた方が楽な場合は多いのではないか、と思います。

また、「IK」や「D」等、ボーンの名前がその役割を表していることも多いと思いますので、操作できるボーンは枠に入れて表示させるべきではないか、と思います。

表情

今回作成したモデルではありませんが、Blenderで「シェイプキー」を登録してあれば、「1:[表情]」枠に組み込まれるようです。

MMDでは「表情操作」に表示されます。

今回は「モーフ」「表情操作」は扱いません。


PmxEditor②
編集

このままではMMDでの操作に不都合があるので、修正します。

状態検証

修正すべき問題点を確認します。「ファイル」「PMXデータの状態検証」を開きます。

全ての項目に「〇」が付くまで修正していきます。


系列順序確認

Indexで3、7、64、71番でエラーが出ていましたので、それぞれ解決していきます。

『3:上半身』と『7:下半身』

親ボーンが赤色で表示される

親の変形順序が子より後になります(ボーン順と変形順序を確認してください).

PMXデータの状態検証

問題となるボーンの「変形階層」の値は「0」で全て同じなので、この場合はボーン順が間違っている、ということでしょう。

『8:waist(腰)』は『3:上半身』と『7:下半身』の親に当たりますから、順序はこれらのボーンよりも上位になります。

『8:waist(腰)』のIndexを修正します。

親ボーンの表示から赤色が消える

「親ボーン」から警告表示が消えました。画像は『上半身』ですが、『下半身』も同様です。

『64:左足』と『71:右足』

『右足(leg1.R)』を例に挙げます。

この場合もボーン順の間違いですね。親である『右腰キャンセル(hip.cancel.R)』が子より後ろにあるのはおかしい、ということでしょう。
警告表示が出ている「親ボーン」の『hip.cancel.R』はIndex85番ですから、子である『leg1.R』より下位に配置されてしまっています。

左右ともに修正します。

警告表示が消えました。

修正した結果を確認

再度「PMXデータの状態検証」を開きます。

「系列順序確認」からは問題がなくなったようです。


付与親参照不正

Index27番のエラーを解決します。

『27:左中指2』

ボーンは付与親ボーン設定が正しくありません.

PMXデータの状態検証

『左中指2(c.002.L)』に「回転付与」が設定されています。しかし、その付与親もまた『左中指2(c.002.L)』です。

これは単なるイージーミスです。
回転付与」は『左中指D2(c.D.002.L)』に設定するはずが、Blenderで設定する際ボーンの位置が重なっているので、選択を間違えたのだと思います。

他の指の「Dボーン」はアイコンが青色です。
この青は「回転付与」が設定されていることを示していると思うのですが、アイコンが緑色の『左中指D2(c.D.002.L)』はやはり「回転付与」が設定されていません。

ここを修正します。
『左中指2(c.002.L)』の「回転付与」を消去し、『左中指D2(c.D.002.L)』に『左中指2(c.002.L)』を付与親とした「回転付与」を設定します。

一応、付与親は「-1」を設定
同じ色でわかりにくいが、アイコンは青色に

修正した結果を確認

再度「PMXデータの状態検証」を開きます。

「付与親参照不正」からは問題がなくなったようです。


未登録ボーン

MMDの「ボーン・フレーム操作」欄にボーンを表示できるように作業を進めます。

必要な表示枠

既存のMMDモデルを参考にさせていただき、今回のモデルに必要な表示枠をリストアップします。
尚、参考にさせていただいたモデルは記事の末尾に記載いたします。

  • センター
  • IK
  • 体(上)
  • 体(下)

これらをPmxEditorの「表示枠」タブで作成します。

表示枠を作成

①「共通表示枠」の「+」ボタンをクリックし、新規の表示枠を追加

②枠名の欄を選択し、名称を変更

後は同じ作業の繰り返しです。

必要な表示枠を作成しました。

表示枠にボーンを追加

作成した表示枠に該当するボーンを追加します。

①任意の表示枠を選択し、「∨」をクリック

②展開されたリストからボーンを選択し、「+追加」をクリック

この手順で任意の表示枠に任意のボーンを追加できます。

「+追加」をクリックした後は、ボーンのリストから次のIDのボーンが選択された状態なので、「+追加」連打でどんどんボーンを追加できます。
ボーン順の整頓ができていれば、同じ表示枠に登録すべきボーンは概ね順に並んでいるはずなので、楽に追加できると思います。

後は同じ作業の繰り返しです。
ボーンのリストが空になるまで表示枠へ該当のボーンの追加を続けます。

全てのボーンを表示枠に追加しました。

表示枠からボーンを外す

尚、エクスポート後初期の状態では、表示枠「Root」に『全ての親』が配置されていたので、事前に「Root」枠からは外しておきました。

下記の手順で行いました。

①「共通表示枠」から任意の表示枠を選択
②「枠内要素」から外したいボーンを選択
③「枠内要素」の「×」ボタンをクリック

間違った枠にボーンを追加してしまった場合等も、こちらの手順でボーンの登録を外すことができます。

修正した結果を確認

再度「PMXデータの状態検証」を開きます。

「未登録ボーン」からは問題がなくなったようです。

これで「PMXデータの状態検証」で確認される問題は全てなくなりました。


ボーン属性を確認

「PMXデータの状態検証」で確認される問題は全てなくなりました。

ここからはそれぞれのボーンについて、「IK」の「Link」、「変形階層」、「回転付与」の「付与率」等、細かく確認をします。

アイコンの色・役割

ボーン属性がアイコンの色を分けて表示されているようです。

役割備考
IK性能で「IK」が選択されている
Link「IK」の「Link」で指定されている
回転付与
回転付与
性能で「非表示」が選択されている

その色が表す役割までは正直よくわかりませんでした。
表は私の予測に過ぎません。また、他の色も存在するかもしれません。

今回の場合、以下の点に注意しました。

  • 「IK」に設定したボーンのアイコンは「」か
  • 「Dボーン」のアイコンは「」か

IK

Blender上で「IK」として設定しましたが、PmxEditor上では「IK」が反映されていないボーンがいくつか存在しました。

修正例

試しに作成してみた『IK.b.L(左人指IK)』を例に挙げます。

「性能」で「IK」が選択されていませんし、Blender上で「チェーンの長さ」を指定しましたが「Link」に反映されていません。

ここを修正します。

①「性能:IK」をクリック
②「Target」を指定
③「Loop」の値を設定
④「Link」を指定
⑤「変形階層」を確認

修正した結果です。

  • ①について

「性能:IK」を青色で点灯させ、アイコンを色にします。

  • ②について

『b.002.L』は末端のボーンであり、先にボーンが存在しないので「Target」には『b.002.L』を指定しました。
指の先端に「Target」用のボーンを作成するべきかもしれません。

  • ③について

「Loop」の値が「0」だと「IKボーン」を移動させても「Link」ボーンは移動しないので、値の設定が必要です。
ここでは他の「IKボーン」に合わせて「500」に設定しました。

  • ④について

Blender上で「チェーンの長さ」に相当するボーンをIndexコピーで指定します。

  • ⑤について

「Dボーン」との関係に注意します。前々回の投稿で実験をしたところです。


修正後、「TransformView」で「IKボーン」を動かしてみました。

他の指IKボーンも修正済み
余談

この指の「IK」は操作性の点で難があり、実際には使用することはありませんでした。
あくまで修正の例としてお考えください。

Dボーン

「Dボーン」の「変形階層」に注目します。

修正例

『arm1.D.L(左腕D)』を例に挙げます。

前々回の実験から、「IKボーン」の「変形階層」が値「1」である時、「Dボーン」のそれが「0」だと「Dボーン」は移動しませんでした。

ここを修正します。

アイコンの色がからに変化しました。

同様に他の「Dボーン」についても「変形階層」の値を確認し、問題があれば修正します。

余談
  • 回転付与」が設定され「変形階層」が「0」だとアイコンは色に
  • 回転付与」が設定され「変形階層」が「1」以上だとそれは色に

このような関係が見られます。
これは、今回の場合で言えば下記の関係に言い換えられます。

  • 「Cボーン」の負の「回転付与」であればアイコンは色に
  • 「Dボーン」の正の「回転付与」であればアイコンは色に

偶然なのか、意図されたものなのかはわかりませんが、個人的には区別がつきやすいので良いと思っています。


ボーン名の入力

.vmdに対応した日本語名を「ボーン名」に入力します。

半角文字と全角文字

全角アルファベットに注意して入力します。

例えば『IK』は要注意です。

「IK」の違いがわかりますでしょうか?正直「I」は全くわかりませんが、「K」はやや大きさが違いますよね。

16番は全角文字、22番は半角文字です。
半角と全角が違うだけでも、それは別の文字ですので、使用する.vmdに合わせる必要があります。

今回の場合、足・つま先の「IK」は使用されるので、全角文字で入力しました。

その他の「IK」については半角文字のままです。
振り付けのモーションに使用されることはないので修正する必要がなく、個人で動作確認するにはそれで問題ないからです。

日本語名にしなくてよいボーン

モーションで直接操作されることがないボーンは英語名のままで問題ないようです。

今回、試しに「IK」を腕に作成してみましたが、.vmdを読み込む際、この「IK」はOFFにします。
ですが、「IK」をOFFにしても、付与親に指定されていたボーンから「回転付与」されて「Dボーン」が動きメッシュが変形する、という仕組みに変わりはない、と思います。

回転付与」の付与親Dボーン
左腕arm1.D.L
左腕捩arm1.twist.D.L
左ひじarm2.D.L
左手捩arm2.twist.D.L
今回作成したモデルのボーン名

このような「回転付与」された「Dボーン」がメッシュを変形させる、という構造がないモデルであれば、そもそも「Dボーン」を直接操作すること自体が在り得ないはずです。
『左腕』『左ひじ』等の、直接操作されるボーンが正しい日本語名であれば、間接的に操作される「Dボーン」の名称は英語であっても影響はないようです。

今回作成したモデルは、腕・手・指系統の「IKボーン」とそれに関係する「Dボーン」の名前は日本語名に変更していませんが、問題なく動作していると思います。


終わりに

次回はいよいよ.vmdを読み込んで作成したモデルをMMDで躍らせてみます。

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

サイト名ページタイトルURL参考にした日付
Blenderhttps://www.blender.org/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モデル

comment