主にMMDやBlenderの個人的なメモ用です。一部に成人向けの内容を含みます!未成年の方はご覧にならないでください!

Blenderでは標準で.pmxなどを読み込むことができないので、有志が開発したアドオンを導入する必要があります。
それが、mmd_toolsです。

元々は更新の止まったこちらの方が公開配布していたmmd_toolsを別の方がforkしたものです。
つまり、同名のアドオンが二つある、というわけです。
誤って古い本家を導入しないように気をつけましょう。

こちらにgithubのwiki(日本語訳)がありますので目を通しておきましょう。


Blenderへのインストール

githubのblender_mmd_toolsからアドオンをダウンロードします。


blender_mmd_toolsの右上Clone or downloadをクリックし、Download ZIPからZIPファイルをダウンロードします。

または、https://github.com/powroupi/blender_mmd_tools/arch...からダウンロードします。


ダウンロードしたZIPファイルを解凍し、中のmmd_toolsフォルダを''blender-[ver]-windows64\[ver]\scripts\addons''以下にコピーします。
Blenderを起動し、メニューバーの編集プリファレンス...アドオンから検索バーに"mmd"と入力してmmd_toolsのチェックをオンにします。


設定:Shared Toon Texture FolderにMikMikuDance_[version]/Dataを指定します。

これでmmd_toolsのインストールは完了です。

モデルのインポート/エクスポート

インポート前にPmxEditorからファイル(F)PMXデータの状態検証(F)でモデルのエラーの修正をしておきます。

インポート


[N]キーを押してプロパティシェルフを出し、MMDタブを選択してModel:下のInportボタンをクリックします。
または、トップバーからファイルインポートMikuMikuDance Model(.pmd, .pmx)を選択します。


左から場所を選び、中央でファイルの選択、右側にインポートする際のオプションです。

オプション:
  • Typesからメッシュ(材質)、アーマチュア(ボーン)、物理演算(剛体とJoint)、表示(表示枠)、Morphs(モーフ)とあり、インポートする物を選べます。
デフォルトですべて読み込みます。
ここの設定で例えばメッシュ(材質)、アーマチュア(ボーン)、表示(表示枠)、Morphs(モーフ)だけ読み込む(物理は読み込まない)という事ができます。

  • 拡大縮小
デフォルトで1.0です。
モデルを読み込んだ際の大きさを指定できます。

BlenderとMMDで身長を合わせるにはインポート時の拡大縮小に0.08を指定し、エクスポート時に12.5を指定します。

  • Clean Model
デフォルトでチェックONです。
チェックを入れると不正な面や頂点をインポート前に修復します。
ただし、一部の頂点モーフや材質などに悪い影響(意図しない頂点や面が削除される)があるようです。
このため、インポート前にPmxEditorで修正しておいて、このオプションはOFFにする方が確実です。

  • Remove Doulbles
デフォルトでOFFです。
インポート時に重複頂点を削除します。
これも意図しない頂点が削除され、別材質で頂点が重なる場合に削除されてしまうなど、悪影響があるので必要な時のみチェックを入れます。
ただし、モーフに使用されている頂点はモーフが壊れないように対象外になるそうです。

  • Fix IK Links
デフォルトでOFFです。
IKリンクのボーンのテールが修正されます。
  • Apply Bone Fixed Axis
デフォルトでOFFです。
Blenderに適するようにボーンの固定軸を適用します。
ボーン固定軸を適用するそうですが、詳細はわかりませんでした。

  • Rename Bones-L/R Suffix
デフォルトでONです。
ボーン名をMMD標準の右/左の命名規約からBlenderで認識可能な形式(.L/.R)にリネームします。適切なミラーリングが可能になり、モディファイアーなどで利用できます。
エクスポート時には保存された名称に自動で戻ります。

  • Rename Bones-User Underscore
デフォルトでOFFです。
ボーン名を.L/.Rの代わりに_L/_Rにします。

  • Rename Bone To English
デフォルトで無効です。
選択した辞書を使用して日本語から英語にボーンの名前を翻訳します。

  • Use MIP maps for UV textures
デフォルトでONです。
チェックすると、mmd_toolsはモデルのメインテクスチャのミップマップを生成します。
ミップマップを生成する方法では、アーティファクトが発生する可能性があるため、無効にしたい場合があるでしょう。
  • Influence of .sph textures
  • Influence of .spa textures
デフォルトで1です。
スフィアテクスチャの影響を減らします。
影響を減らすと、除算スフィアを明るくし、加算スフィアを暗くします。
これはプロパティウィンドウの指定テクスチャの影響サブセクションでディフューズ色を減らすのと同じです。
インポートされたモデルのエクスポートには影響しません。
  • Log level
  • Create log file
デフォルトでOFFです。
チェックを入れるとログファイルがインポートされるモデルと同じディレクトリに [model file name].mmd_tools.import.log の形式で書き出されます。

エクスポート


[N]キーを押してプロパティシェルフを出し、MMDタブを選択してModel:下のエクスポートボタンをクリックします。
または、トップバーからファイルエクスポートMikuMikuDance Model(.pmx)を選択します。

NOTE:
モディファイアーなどがある場合、Blender上で適用しなくてもエクスポート時に自動的に適用されるようです。
(例えばミラーモディファイアーなど)


右側にエクスポート時のオプションがあります。

オプション:
  • 拡大縮小
デフォルトで1.0です。
モデルのエクスポート時の大きさを指定できます。

インポート時に0.08を指定した場合、エクスポート時に12.5を指定します。

  • Copy textures
デフォルトでチェックONです。
モデルから参照されるテクスチャ画像がエクスポートされたモデルに関連付けられて適切なディレクトリに書き込まれます。
すでに存在するファイルは上書きされます。 Base Texture Folderが指定されていてもテクスチャはそのフォルダには書き込まれません。
エクスポートパスに基づいてモデルの適切なディレクトリにのみ書き込まれます。

  • Sort Materials
デフォルトでチェックOFFです。
mmd_toolsは透過の問題を起こしにくい方法でマテリアルの並べ替えを試みます。
これは、頂点モーフや材質モーフを考慮してないので、Material Sorterで手動で順序を指定するよりも信頼性が低くなります。

  • Disable SPH/SPA
デフォルトでOFFです。
すべてのスペキュラマップテクスチャを無効にします。一部のMMEシェーダーに必要です。

  • Visible Meshes Only
デフォルトでOFFです。
チェックを入れると非表示のメッシュはエクスポートされません。

  • Sort Vertices
デフォルトでなしです。
デフォルトでは、mmd_toolsは、頂点の順序に注意を払わず、適当な順で頂点をエクスポートすることがあります。これは、MMEで使用される一部のエフェクトに影響することがあります。
インポートしたファイルからの元の順序で頂点を書き出すには、カスタムを、Blenderによってソートされた順で頂点を書き出すにはBlenderを選択します。

  • Log level
  • Create a log file
デフォルトでOFFです。
チェックを入れるとログファイルがインポートされるモデルと同じディレクトリに [model file name].mmd_tools.export.log の形式で書き出されます。

モーション(ポーズ)のインポート/エクスポート

先にMMDモデルをインポートしてから読み込ませます。
モーション(.vmd)、ポーズ(.vpd)のインポート/エクスポートに対応していますが、いくつかの制約があります。

インポート


ボーンモーション、表情モーフ共に読み込みたい場合はモデルの親エンプティを選択してからモーションを読み込ませます。

ボーンモーションのみ読み込ませたい場合は、モデルのアーマチュア(ボーン)を選択した状態でモーションをインポートします。
同様にモーフ(シェイプキー)のみ読み込ませたい場合はモデルのメッシュを選択した状態でインポートします。

表情がボーンモーフで作られている場合は、Morph Tool→▼→Bindでドライバを作ってからインポートします。

画像



[N]キーを押してプロパティシェルフを出し、MMDタブを選択して運動:下のInportボタンをクリックします。
または、トップバーからファイルインポートMikuMikuDance Motion(.vmd)を選択します。


左から場所を選び、中央でファイルの選択、右側にインポートする際のオプションです。

オプション:
  • 拡大縮小
デフォルトで1.0です。
モーションの倍率です。
モデル/カメラモーションの修正ボーン位置角度補正のような物です。
通常はモデルのインポート時の倍率と同じ値が推奨されます

  • 余白
デフォルトで5です。
余白を指定した場合、その分インポートしたモーションの前に空のフレームが追加されます。
例えば物理演算は余白を含めてベイクし、レンダリング時は余白を含めずに出力することで服などの物理演算が最初に暴れるのを抑えます。

  • Bone Map
デフォルトでPMXです。
インポートするモーションのボーン名をどうマッピングするかの設定です。
Blenderでは、モーションのボーン名は、Blender上での実際のボーンの名称と照合します。
PMXでは、モーションのボーン名は、Blender上のボーン名ではなく、モデルに保存されているボーン名と照合されます。
Renamed Bonesでは、モーションのボーン名はRename Bonesを指定してモデルをインポートしたときと同じ方法でリネームされ、Blender上でのボーン名に基づいて適用されます。

  • Treat Current Pose as Rest Pose
デフォルトでOFFです。
現在のポーズをレストポーズとして扱うかどうかです。
チェックをONにした場合、現在のポーズがレストポーズとして扱われます。
TスタンスのモーションをAスタンスのモデルにインポートするのに使用します。

  • Mirror Motion
デフォルトでOFFです。
有効にすると、モーションはX軸で反転されます。

  • Update Scene Settings
デフォルトでONです。
有効にした場合、Blenderに30FPSを使うように指示します。フレーム範囲もインポートするすべてのモーションを含むのに必要なだけ拡張されます。

エクスポート

ボーンアニメーション、シェイプキー(モーフ)アニメーション、カメラアニメーションをエクスポートできます。

ボーンアニメーション、シェイプキー(モーフ)アニメーション共に出力したい場合はモデルの親エンプティを選択してエクスポートします。
同様に、カメラアニメーションをエクスポートする場合はMMD Cameraオブジェクトを選択してエクスポートします。

ボーンアニメーションのみ出力したい場合はアーマチュアを、シェイプキー(モーフ)アニメーションのみを出力したい場合はモデルのメッシュを選択してエクスポートします。

ただし、下記の点に注意が必要です。
  • ボーン名は15バイト(Unicode文字で約7文字)の制限がありますが、これに引っかかってもエラーメッセージはありません。
  • ボーンの回転の補完とカメラの回転は正しくないかもしれません。MMDはすべての回転成分(x, y, z, w)に対して同じ補完を使用するためです。
  • Fカーブ(MMDで言う補完曲線)は一部、キーフレームに置き換えらる事があります。このためBlender上では打っていないキーが出力された.vmdには登録されることもあります。
  • ドライバやNLAトラックはサポートされていません。完成したアニメーションを書き出したい場合は、新規アクションにベイクできます。

ベイク方法



エクスポート画面

オプション:
  • 拡大縮小
デフォルトで1.0です。
モーションの倍率です。
モデル(とモーション)を0.08でインポートした場合は12.5に指定する必要があります。(モデルのインポート/エクスポートと同じ)

  • Treat Current Pose as Rest Pose
デフォルトでOFFです。
おそらく、インポート時のオプション同様、モデルのモーションをTスタンスかAスタンスとして扱うかのオプションです。たぶん。

  • Use Frame Range
デフォルトでOFFです。
Export frames only in the frame range of context scene

UI(プロパティシェルフ)


3Dビュー上にマウスカーソルを持っていき[N]キーを押すとプロパティシェルフが表示されます。
正常にインストールできていればプロパティシェルフにMMDタブがあるはずです。

こちらからもモデルのインポート/エクスポートなどが行えますし、剛体やJointの設定などここからしかアクセスできない項目もあります。

MMDタブ


  • Create MMD Mode
MMDとして出力するのに必要な構造や階層(親エンプティとその子になっている全ての親ボーン)を作成します。
作成したメッシュを関連付けするにはAttach Meshes to Modelをクリックする必要があります。

  • Convert Model
既存のBlenderモデルをmmd_toolsで扱える形式に変換します。
ただし、実験的なオプションです。

  • Convert Materials for Cycles
選択中のMMD形式モデルの材質設定をCyclesで扱える形式に変換します。
レンダリングエンジンも自動的にCyclesに切り替わります。
Blender2.8以前のverの内部レンダリングエンジンから切り替える場合に使います。

クリックした後に3Dビューの左下に表示されるオプションでConvert to Principled BSDFを選択するとデフォルトのMMDShaderDevノードからプリンシプルBSDFノードに変換されますが、表情モーフ(材質モーフ)をbindしても材質モーフが機能しなくなります!ご注意ください!

  • Separate By Materials
インポート直後のモデルは一つのオブジェクトになっています。
Separate By Materialsで材質ごとにオブジェクトを分割できます。

  • Join Meshes
Separate By Materialsの逆の動作です。
モデルに属するどれかのオブジェクトを選択してJoin Meshesをクリックすると一つのオブジェクトに結合されます。

  • Attach Meshes to Model
MMD_toolsの形式でMMDモデルに属していないメッシュオブジェクトを選択中のモデルへ取り付けます。

  • Bone Constraints
MMDとBlenderは異なる方法でボーンによる動きを処理します。
これらの相互変換を行うために、適用でBlenderで扱えるようにボーンコンストレントを付加、またはCleanでMMDで扱えるように付加されたボーンコンストレントを解除します。エクスポート時には、自動で解除されます。

  • Physics
ボーンと同様に、物理演算もMMDとBlenderで異なります。
物理演算の情報をBlenderで扱える形式に変換するにはBuildを使用します。
またMMDで扱える形式に変換するにはCleanを使用します。剛体を構築して物理演算が行われるようになるとパフォーマンスはかなり低下します。
このため、剛体は必要な場合だけ構築することを推奨します。一般的には、レンダリングの直前に行います。

  • Edge Preview
ソリッド化モディファイアーを利用してモデルのtoonエッジをプレビューします。
モデル作成時にエッジの設定をプレビューするのに使います。
Display Panel
MMDの表示枠を設定できます。
上部ウインドウからカテゴリを、下部ウインドウからカテゴリ内のボーンやモーフを、右側の+ボタンから追加、削除などを行えます。
Morph Tools
Blenderではシェイプキー(頂点モーフ)しかサポートしていませんが、この項目の右側のからbindを選択する事で材質モーフやUVモーフ、ボーンモーフ、グループモーフを操作できます。
マテリアルUVボーン頂点グループと別れており、それぞれ右側の+ボタンから新規モーフを作成できます。(-でモーフの削除)
Rigid Bodies
剛体リストを表示します。
右側の+ボタンから新規剛体を作成できます。
Joints
Jointリストを表示します。
接続したい2つの剛体を選択した状態で、右側の+ボタンをクリックすると新規Jointを作成できます。
Material Sorter
材質の順序を設定できます。
これはひとつのオブジェクト内の材質をソートするので、モデルを材質ごとに分割(Separate By Material)した場合は使用できなくなります。
Meshes Sorter
メッシュの並び方を設定できます。
モデルを材質ごとに分割(Separate by Material)したあとのMMDモデルのサブオブジェクトを素早く選択できます。 メッシュ順序の変更は、エクスポートやメッシュ統合(Join Meshes)を通して維持されます。
透過材質を含むオブジェクトは下にする、といった場合に使います。
Bone Order
ボーンリストです。
物理後に動くボーンの指定や、変形階層の指定ができます。

その他タブ


MMD display
メッシュやアーマチュア、リジッドボディ(剛体)、Jointの表示、非表示をここで切り替える事ができます。
  • Property Drivers
setup drivers for MMD property animation (Visibility and IK toggles)
MMDプロパティアニメーション用のセットアップドライバー(可視性とIKトグル)
  • IK
IKのon/offを切り替えれます。
MMD Shading
MMD Shadingでは、MMDモデルにふたつの代替シェーディングスタイルを選択できます。
GLSLは、BlenderのGLSLシェーディングと同じシステムを使用し、デフォルトのMMDライティングと近くなるように、半球状のライトをシーンに追加します。

Shadelessは、陰影を無視するスタイルで、Toonテクスチャでのみシェーディングされます。

ResetはシェーディングをデフォルトのBlenderシェーディングにリセットし、3D Viewのシェーディングをソリッドに戻します。

注意として、これらのシェーディングモードともに、テクスチャ画像がBlenderシェーディング下でも見つからない場合は、ピンク(紫)の警告になります。
MMD SDEF Driver
SDEF変形を行うドライバが追加されます。
SDEFが設定されたモデルをアニメーションさせる際に必要です。

物理演算周り

Blenderへ剛体とJointのあるモデルをインポートし、エクスポートすると物理演算周りが変になる(剛体やJointの位置が微妙に変わるなど)ケースがあるようです。
実際、ボーンとメッシュ(材質)のみのモデルをインポート/エクスポートした場合はハッシュ値は変わりませんが、物理込みのモデルはBlenderで編集などしなくてもインポート/エクスポートするだけでハッシュ値が変わります。
モデルの改造などで物理周りはそのままでメッシュだけを編集したい場合、編集前(Blenderへ読み込ませる前)のモデルをPmxEditorで開いて材質のみすべて削除し、ボーンと剛体、Jointだけのファイルを作っておき、Blenderへのインポート時のオプションをメッシュとボーンだけにしてエクスポート後に先ほど作ったファイルをPmxEditorで開いてBlenderで編集したファイルを追加してマージする、という方法があります。
タグ

Menu

モデル/アクセサリ/素材など

エンコード

コーデック エンコードソフトウェア

その他

波形編集ソフト


【メニュー編集】

管理人/副管理人のみ編集できます