MMDモデル(.pmd, .pmx)インポーター/エクスポーター
●概要
Blender2.5~2.7でMMDモデルフォーマットを入出力するスクリプトです。
※各バージョンによってお使いいただくスクリプトが異なります。
Windows XP・7、Ubuntu、Mac OS Xで動作確認済みです。
| バージョン | PMX読込 | PMD出力 | PMX出力 | 補足 |
| Blender2.62以前 | × | × | × | 材質はオブジェクト毎に16個まで |
| Blender2.63~2.67 | ◯※1 | ◯※2 | × |
頂点モーフに対応 材質数の制限を解除 |
| Blender2.68~ | ◯※1 | ◯※2 | ◯※2 | MMDパネルを追加 |
※1
剛体は読み込んでますがBlenderへの反映はしていません。
また、頂点モーフ以外の表情データは破棄されます。
※2
IK、剛体情報は出力されません。
●ダウンロード
●導入方法
①
スクリプトファイルをダウンロードする(解凍する必要はないです)。
②
「File」→「User Preferences」を開いてAdd-Onsを選択します。
③
画面下の「Install an addon」をクリックして、ダウンロードした圧縮スクリプトフォルダを選択します。
「Import-Export: Import-Export MikuMikuDance Model Format(.pmd/.pmx)」
という項目が出てくるのでチェックを入れます。
※Blenderのバージョンによっては名前が違っている場合があります。
インストールが完了すると「インポート」と「エクスポート」に新たなメニューが追加されます。
エクスポート側はPMD・PMXフォーマット毎にそれぞれメニューが追加されます。
●インポーター
※スクリプトのバージョンによって内容が異なります。下図は最新版のものです。
[ Scale / 拡大縮小] : 拡大率を0.1~100の範囲で変更が可能です。初期値は「0.5」です。
[ Up Axis / 上方の軸] : 上軸を設定します。初期値はBlenderの上軸「Z軸」です。
軸を変更したくない場合は「Default」を選択してください。
[ World / ワールド] : 座標系を設定します。初期値はBlenderの座標系「右」です。
[ IK] : MMDのIK設定を反映します。仕様の違いにより動作が破綻する場合があります。
[ Smooth/スムーズ ] : 読み込んだ面にスムージングをかけます。
[ Shadeless/陰影なし ] : マテリアルの陰影処理を無効化します。
インポート結果はこのようになります。
●エクスポーター
※スクリプトのバージョンによって内容が異なります。下図は最新版のものです。
[ Scale / 拡大縮小] : 拡大率を0.1~100の範囲で変更が可能です。初期値は「2.0」です。
[ Up Axis / 上方の軸] : 上軸を設定します。初期値はMMDの上軸「Y軸」です。
軸を変更したくない場合は「Default」を選択してください。
[ World / ワールド] : 座標系を設定します。初期値はMMDの座標系「左」です。
[ Encoding / エンコーディング ] : ファイルのエンコード方式を設定します。
「Unicode(UTF-16LE)」と「UTF-8」を選択出来ます。
※pmxだけのメニューです。pmdは「Shift-Jis」でエンコードします。
エクスポート結果はこのようになります。
●MMDパネル
メッシュパネルとマテリアルパネルにMMDの項目を追加しています。
※Blender2.68対応スクリプトからの機能です。
・メッシュパネル(オブジェクトモード)
表情の表示枠を作成します。
各表情の枠にShapeKeyを追加・削除が出来ます。
・メッシュパネル(エディットモード)
頂点のMMDエッジが設定出来ます。選択中の頂点に有効です。
[ New / 新規 ]
全ての頂点にエッジデータを追加します。
メッシュの頂点エッジが設定されてない場合のみ押せます。
[ Enabled ]
選択中の頂点のエッジ倍率を1.0に設定します。
[ Disabled ]
選択中の頂点のエッジ倍率を0.0に設定します。
・マテリアルパネル
MMD固有の材質パラメータを設定出来ます。
[ Load / 読み込み ]
材質名リスト(.txt)を読み込みます。
[ Save / 保存 ]
材質名リスト(.txt)を作成します。
[ Ambient Color / 周囲光の色 ]
MMDマテリアルのAmbient値
[ Specular / スペキュラー ]
MMDマテリアルの反射強度
チェックを外すと硬さ(specular_hardness)、チェックを入れるとコチラのパワー(power)を反射強度と認識します。
MMDでは反射強度0.0が設定可能なのに対し、Blenderでは0.0は扱えなかったのでその為だけに新たに用意しました。
[ Display / 表示 ]
MMDマテリアルの表示フラグ
[ Edge / 辺 ]
MMDマテリアルのエッジ
[ Texture / テクスチャ ]
MMDマテリアルのトゥーン&スフィア
デフォルトにチェックすると既存のtoon1~toon10、外すと独自トゥーンが設定できます。
・ボーン表示枠
ボーングループに設定された内容をMMDのボーン表示枠として反映するようにしています。
●拡散色の取扱い
材質にテクスチャが設定されている場合、ディフューズとアルファ値はテクスチャ側のものを優先するようにしました。
Diffuse RGB
Diffuse Alpha
●UVマッピングの取扱い
MMDモデルを読み込むとYの値を「-1」に、出力時にはScale値を反映させてUV座標を算出します。
●更新履歴
2014/05/29
・出力時のPMD->PMX再変換処理に文字コードやトゥーンの再設定が抜けてたので追加。
・出力時に独自トゥーン画像やスフィア画像も出力先にコピーするよう修正。
・PMD出力でテクスチャ名が20文字を越えたらリネームするよう修正。
・材質名リストのファイル入出力に文字コードを指定するよう修正。
・MMD材質パネルに「材質名リスト保存」ボタンを追加。
・PMDとPMXの出力メニューをそれぞれ独立化。
・出力時のUV座標算出の計算ミスを修正。
2013/12/12
・MMD材質パラメータを設定できるようMMD材質パネルを追加。
・頂点エッジや表情の種類を設定できるようMMDメッシュパネルを追加。
・PMDモデルの材質名リストの取り扱いに対応。
・ボーングループを表示枠として認識して入出力するよう設定。
・PMXモデルの頂点ウェイト出力でミスがあったので修正。
・PMXモデルの入出力で、各データサイズの有効範囲の判定ミスを修正。
(頂点・面・材質・テクスチャ・骨・モーフ・剛体・ジョイント)
2013/12/02
・ポリゴンの影響材質がBlender上の設定と異なる材質で出力される不具合を修正。
2013/10/03
・PMX出力を追加。
2013/07/21
・頂点出力の修正。
・ShapeKeyに影響が出るため重複頂点削除機能を廃止。
・剛体とジョイントの読み込み処理を追加(ボーンには影響を与えない)。
2013/07/21
・Blender2.68のリリースを確認。RC版の修正処理は不要になり削除。
・重複頂点削除機能を再導入。
2013/07/18
・Blender2.68RCの頂点グループの仕様変更に伴いスクリプトを修正。
2012/11/17
・バイナリ→int型変換の処理をlong型変換していた不具合を修正。
・pmd出力で、65,536以上の面データがあるモデルは出力を中断するよう修正。
・pmd出力で、多角形ポリゴンを3角形ポリゴン変換するように対応。
・pmd出力で、Armature・MeshオブジェクトのMatrix情報を反映するように修正。
2012/10/05
・Blender2.64が公式リリース。Blender2.63版スクリプトの動作を確認。
2012/06/04
・pmdの表情(ShapeKey)出力に対応。
2012/06/02
・表情読み込みに対応(pmxは頂点モーフのみ)。
・Blender2.63版の「重複頂点削除機能」でメモリリークが発生するので機能を削除。
2012/05/30
・拡大縮小値変動によりゼロボーンが生じる不具合を修正。
2012/05/28
・出力モデルの頂点ブレンディングの崩壊を修正。
2012/05/27
・IK読み込み設定を追加。
・MMDの法線データを反映するように修正。
・Blender2.63版PMXインポーターを登録。
2012/05/13
・Blender2.63版エクスポーターを登録。
2012/05/11
・Blender2.63(2.63aにも対応)版登録。
2012/02/15
・材質の陰影無効化を任意設定できるように修正。
2012/01/04
・前バージョンがBlender2.61で動作することを確認。
・概要ページの内容を修正。
・2.6版のスクリプトで膝ボーンが認識されない不具合を修正。
2011/10/25
・ゼロボーンの場合Head座標に0.000001を足した値をTail座標にするよう修正。
・子骨が無ければHead座標に0.000001を足した値をTail座標にするよう修正。
・膝ボーンの回転制限追加。
・特定ボーンの平行移動・拡大ロック追加
2011/10/24
・Blender2.59、2.60版登録。
・Blender2.54~2.58を更新。
・ボーンウェイトが反映されるように修正。
2011/06/24
・Blender2.58版登録。
2011/04/15
・RC2版を消してBlender2.57版を登録。2.54~2.56版の開発を打ち切る方針。
2011/04/07
・Blender2.57 RC2版を登録。
2011/01/27
・オブジェクトとマテリアルを「1対1」から「1対16」の関係に修正。
2011/01/13
・pmd_import_254が動作しない不具合を修正。
2011/01/09
・インポート時にエッジを作成する処理を追加。
2011/01/04
・2.56用のスクリプトをリリース。
2010/12/20
・左右が反転することが発覚。左手座標系から右手座標系への修正処理を追加。
2010/11/05
・Blender2.55での動作を確認。
2010/10/31
・データを登録。