PmxEditorで編集、MMDで.vmdを読み込む


はじめに

BlenderでMMDモデルを制作しています。趣味です。

前回はモデルのデフォルトポーズをTポーズからAポーズへ変更しました。

今回はエクスポートしたモデルをPmxEditorで編集、MMDで.vmdを読み込みモデルの動きを確認します。


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

以下の環境でモデルの制作を行っています。

ソフト、アドオン
Blender3.35LTS
mmd_tools2.8.0
PmxEditor0.2.5.7
制作環境

今回の成果

自作モデルで『ねこみみスイッチ』~スカートは今後の課題です~

PmxEditorで編集後、MMDで.pmx、.vmdを読み込み、Ray-MMDでシェーダーを整えました。オーディオ(.wav)の読み込みは動画編集時に行いました。

windowsのアプリ『フォト』は動画編集機能がなくなったようなので、編集作業は新たに『Microsoft Clipchamp』の無料版をDLして行いました。

作品名製作者様URL
ねこみみスイッチdeniwellhttps://piapro.jp/daniwell
ねこみみスイッチモーションhinohttps://bowlroll.net/file/421
Ray-MMDRuihttps://github.com/ray-cast/ray-mmd
お借りした作品

次章ではPmxEditor上での.pmxの編集作業について記します。


PmxEditorで編集

行った編集作業です。

ボーンタブ上の作業です。

  • ボーン順序の整理
  • 変形階層の指定
  • IKの角度制限
  • 日本語名の編集

表示枠タブ上の作業です。

  • 表示枠の編集(ボーン)
  • 表示枠の編集(モーフ)

モーフタブ上の作業です。

  • パネルの編集

材質タブ上の作業です。

  • Texの指定
  • 材質色、エッジの指定

ボーン順序の整理

Blenderのmmd_tools上でもこの作業は可能です。

ただ、私の試した限りでは、Blenderではリスト上のボーンの複数同時選択ができないため、少々作業量が増えてしまうように思います。
ですので、私の場合、ボーン順序の並び替えの作業はPmxEditor上で行うことにしています。

PmxEditorの場合、ボーンタブ上で作業を行います。

リスト下の各ボタンでボーンの順序を入れ替えることが出来ます。

ボタンの名称役割
選択中のボーンをリストの先頭に移動させる
選択中のボーンをひとつ上に移動させる
選択中のボーンをひとつ下に移動させる
選択中のボーンをリストの最後に移動させる

Shfit、Ctrlキーと左クリックの組合せでリスト内のボーンを複数選択することができるので、ボーンをまとめて移動させることも可能です。

ボーンの順序に誤りがないか、PmxEditorの機能で確認ができます。

  1. 【ファイル(F)】をクリック
  2. 【PMXデータの状態検証(F)】をクリック

上記の手順でPMXデータの状態検証を開き、エラー(✖)が出なくなるまで整頓を続けます。

Before
After

左がエクスポート直後、右が編集後の.pmxの状態です。
この例の場合、付与系列順序確認でエラーが出ていますが、回転付与の付与先のボーンが付与親のそれより高い位置に配置されていたことに問題がありました。

この例では生じませんでしたが、親子関係の順序が誤っていると系列順序確認でエラーが起こります。
分かりやすい例では、『全ての親』がリストの先頭に配置されていない場合、このエラーが出ます。

  • 親ボーンは子ボーンより上位に配置する
  • 付与親は付与先より上位に配置する

上記の点に注意して作業を行いました。

変形階層の指定

Blenderのmmd_tools上でもこの作業は可能です。

Blender、PmxEditor、どちらでも作業効率は変らないと思います。

PmxEditorの場合、ボーンタブ上で作業を行います。

ボーンを複数選択時、変形階層の値を変更すると、選択中の全てのボーンの変形階層の値をまとめて変更可能です。

各ボーンの変形階層の値は、IKボーン及びDボーンの値を1に、それ以外を0に設定すると概ね問題はないように思います。

IKの角度制限

以前の投稿で扱ったので、詳細は割愛します。

https://pingpongfrog.com/archives/2707

PmxEditorの場合、ボーンタブ上で作業を行います。

  1. ボーンリストから任意のIKボーンを選択
  2. 【Link】から制限を設けるボーンを選択
  3. 【角度制限】をクリックし青色で点灯表示させる
  4. 各軸の数値を指定する

画像は『左足IK』の『左ひざ』に対する角度制限の様子です。膝関節の可動域が不自然にならないよう各値を指定しています。

PmxEditorでは+方向の回転量の値に負の値が入力可能です。この例ではX軸の+方向の入力欄に「-0.5」を指定しています。
(膝が逆方向に反らないよう制限を設けています)

日本語名の編集

Blenderのmmd_tools上でもこの作業は可能です。

.vmdが対象とするモデルの各ボーン名に合わせる必要があります。

私の場合、『.L』『.R』をひたすらに『左』『右』に置き換える作業でした。
ほぼ全てのボーンに対して作業が必要なので、単純ですが、仕事量がかなり多くなります。

この作業を簡略化する方法を模索中です。

また『IK』の全角、半角の違いに注意が必要です。

モデル名製作者様URL
Tda式初音ミク・アペンド Ver1.10Tdahttps://3d.nicovideo.jp/works/td1586
YYB Hatsune Miku_NT三目YYBhttps://www.nicovideo.jp/watch/sm41007053
Sour式鏡音リンVer.2.01Sour暄https://bowlroll.net/file/155105
お借りした作品

上記の皆様のモデルを参考にさせて頂くと、次のような特徴が見つかりました。

  • IKボーンの『IK』は全角で入力されている(例:左足IK)
  • IK親ボーンの『IK』は半角で入力されている(例:左足IK親)

尚、この投稿の文章では、画像以外、文字『IK』は半角入力で統一しています。

文字『IK』が全て全角で入力されている例

画像のボーン名:『左つま先IK』は全角入力された文字です。
他方、リスト内のIK親の『IK』を見ると、こちらも全角で入力されていますが、これは私の誤りです。

実を言うと、IK親の『IK』を半角で指定する必要があることについては、この投稿の編集中に気が付きました。
ですので、お借りした「ねこみみスイッチモーション」に『左足IK親』『右足IK親』を操作しているキーがあった場合、私が作成しているモデルでは正しく動作していない、と思います。

私自身は作成した動画を見ていてもモデルの動作に違和感を覚えませんでした。
しかし、事実に気付いた今振り返ってみれば、あの部分は怪しいかも…?という疑惑もやはり浮かんできます。

ただ、今回は現状のまま進めていこうと思います。
ボーンの名称のみならず、他にもいくつか気になる点が出てきているので、それらも含めて、次回以降に問題の解決を目指します。

最後に、正しいと思われる『IK』の文字入力をしたボーンリストを提示しておきます。

IK親の『IK』の入力を半角に修正
全角入力半角入力
左足IK、右足IK
左つま先IK、右つま先IK
左足IK親、右足IK親
文字『IK』の入力指定

表示枠の編集

私は経験がありませんが、Blenderのmmd_tools【表示パネル】でもこの作業は可能なようです。

PmxEditorの場合、【表示枠】タブ上で作業を行います。

【共通表示枠】の各ボタン(黄色の枠内)の役割です。

ボタンの名称役割
選択中の表示枠をリストの先頭に移動させる
選択中の表示枠をひとつ上に移動させる
選択中の表示枠をひとつ下に移動させる
選択中の表示枠をリストの最後に移動させる
新規で表示枠を追加する
選択中の表示枠を削除する

初期状態では【0:[Root]】に『全ての親』が所属しているので、まずこれを枠内から削除しました。

作業手順です。

  1. 【共通表示枠】で新規表示枠を追加
  2. 【枠内要素】で追加した表示枠の枠名を編集
  3. 【ボーン】で追加した表示枠にボーンを追加

【ボーン】(水色の枠内)の【+追加】を実行することで【共通表示枠】で選択中の表示枠にボーンを納めます。

  1. 【共通表示枠】でボーンを納める表示枠を選択
  2. 【ボーン】ドロップダウンリストを開き納めるボーンを選択
  3. 【+追加】を実行し表示枠にボーンを所属させる

表示枠に収めたボーンはドロップダウンリストから削除されます。
また【+追加】実行後、リストから選択されるボーンは自動的に更新されます。
(ボーン順序が整理されていれば【+追加】連打可能な場合が多いです)

作業終了後、表示枠及び収めたボーンは以下のようになりました。

枠名所属するボーン
センター全ての親、センター、グルーブ、腰
IK各IKボーン
体(上)上半身、上半身2、首、頭、両目、左目、右目
左肩P~左手首、右肩P~右手首
各指ボーン
体(下)下半身
左腰キャンセル~左つま先EX、左足D~左足首D
右腰キャンセル~右つま先EX、右足D~右足首D

髪、衣服のボーンは表示枠に収めず、そのまま放置してあります。

表示枠に未登録のボーンがあるとPMXデータの状態検証で△判定が出ますが、そのことが原因でMMDで正しく動作しない、ということはないと思います。

各モーフを表示枠に収めることも可能です。

作業手順です。

  1. 【共通表示枠】でモーフを納める表示枠を選択
  2. 【モーフ】ドロップダウンリストを開き納めるモーフを選択
  3. 【+追加】を実行し表示枠にモーフを所属させる

私の場合、初期状態から存在する【1:[表情]】に全てのモーフを納めました。

モーフのパネルを編集

この作業はBlenderのmmd_tools上でも可能です。
mmd_tools【モーフツール】については以前の投稿で扱いました。

https://pingpongfrog.com/archives/3020

初期状態では全てのモーフは「右下(その他)」に割り当てられていると思いますが、これを変更します。

  1. 【パネル】(水色の枠内)のドロップダウンリストを開く
  2. 適切なパネルを選択する

Texの指定

PmxEditorの材質タブで作業を行います。

以下の作業を行います。

  1. テクスチャ画像を.pmxと同じディレクトリにコピペ
  2. 各マテリアルにTex:を指定

PmxEditorで確認するだけであれば、画像のコピペは必要なく、パスを指定すれば問題はありません。
しかし、.pmxと同じディレクトリに画像が配置されていない場合、MMDではテクスチャを読み込むことができないようです。

MMDで動かすためのモデルですから、全てのテクスチャ画像を同ディレクトリにコピペしておいて間違いはない、と思います。

画像はTex:を指定を済ませた後の様子です。
私の場合、.pmxと同じディレクトリにtextureというフォルダを作り、その中に全てのテクスチャ画像を配置しています。

余談ですが、エクスポートの際、【テクスチャをコピー】という項目にデフォルトで✓が入っていると思います。これはおそらく、モデルのテクスチャ画像をエクスポート先にコピーする機能、だと推測しています。

私の経験では、過去に一度だけテクスチャ画像を含めてエクスポートできたことがありました。しかし、未だにその条件を見つけることができていません。

材質色、エッジの指定

この項目は私個人の好みで各値を決定しました。

Ray-MMDを使用する際、色を明るく見せることを難しく感じていました。
では編集時から明るめに設定してみてはどうか?と考え、髪と肌の材質色の各値を1に近づけて調整しました。

また、少しアニメ調に見せられたら、という気持ちもあったので、各マテリアルにエッジを指定しました。

肌の部分にはToonを指定してあります。デフォルトで用意されている中から選びました。

また、瞳にハイライトを作るため、顔のパーツの部分に自作のスフィアを指定しています。
眉や睫毛に光沢を持たせるつもりはなかったので、やはり瞳のオブジェクトは他と切り離して単体で扱えるようにすべきかな、と感じました。

画像は調整後の様子です。
ここでの調整が功を奏したのか、それともただの偶然なのか、それは分かりませんが、私個人としては、Ray-MMD使用時にこれまで表現できなかった色味が出てきたように感じています。

剛体、Jointの編集

髪やスカートの動きをより自然に見せるためには剛体の物理演算パラメータ、Jointの制限、ばねの値を調整する必要があると思います。
しかし、私の勉強不足でどのようにパラメータを調整すれば良いのか全然理解できていないのが現状です。

それ以前に、そもそも剛体とJointが適切に作成されていなければ、ここで値を調整してもうまくはいかない、と考えています。
今回、モデルにモーションも読み込んで動きを確認した結果、もっと剛体の配置を細かく行う等の改善が必要だと感じました。

上記の理由により、今回こちらの記事は割愛します。
(私なりに各パラメータの調整は行いました)

今後、学ぶべき編集作業は以下を考えています。

  • 剛体
    • 物理演算パラメータ
      (質量、移動減衰、回転減衰、反発力、摩擦力)
  • Joint
    • 制限/パラメータ(移動、回転)
    • ばね(移動、回転)

終わりに

今後の課題です。

  • 文字入力『IK』の修正
  • スカートの剛体(足の貫通を抑える)
  • 床の模様の修正

文字入力については前述の通りです。

スカートの剛体の配置がだいぶ甘かったようです。
もっと細かく配置する必要がありそうですし、ボーンタイプ剛体の位置を調整して、揺れ始める場所をより高く変更した方が良いかも?という気がしています。

床の模様が荒いです。
ノードに直に画像を読み込んで作ったような覚えがあるので、ブラシで塗る手間をかければ解決しそうではあります。
(ブラシで塗ったスカーフは格子柄がちゃんと出ているため)

今回は以上です。読んで下さった方、ありがとうございました。

サイト名、作品名URL参考にした日付
Blenderhttps://www.blender.org/2022/12/11
Blender Manualhttps://docs.blender.org/manual/ja/3.3/index.html2023/6/1
3Dミクを躍らせるツールを自作してみた(説明前編)https://www.nicovideo.jp/watch/sm24200252023/6/19
UuuNyaa/blender_mmd_toolshttps://github.com/UuuNyaa/blender_mmd_tools2022/12/11
とある工房https://kkhk22.seesaa.net/2022/12/11
Tda式初音ミク・アペンドhttps://3d.nicovideo.jp/works/td15862023/6/19
【MMD】Primary Star【モデル配布】https://www.nicovideo.jp/watch/sm410070532023/6/19
Sour式鏡音リン・レンVer.2.01https://bowlroll.net/file/1551052023/6/19
【MikuMikuDance】
エフェクトファイルを読めるようにしてみた
https://www.nicovideo.jp/watch/sm121498152023/6/19
Ray-MMDhttps://github.com/ray-cast/ray-mmd2023/9/27
ねこみみスイッチhttps://piapro.jp/daniwell2023/1/17
ねこみみスイッチモーションhttps://bowlroll.net/file/4212023/1/17
参考URL

comment