VPVP wiki

PMXの概要

最終更新:

pianika

- view
だれでも歓迎! 編集

PMX

PMXとは、PMDモデルをベースとした機能拡張モデルフォーマットです。
仕様は公開されており、フォーマットの利用については制限があります。

PMX形式は、2.0と2.1があり、2.0はMMD ver.7.31以降で対応しています。
(MMD ver.7.31以降でもPMDモデルは使用できます。)


PMXの対応状況

各ソフトウェアでのモデルデータの対応表(2012/08/06現在)

Ver  PMD  PMX 2.0 PMX 2.1
MikuMikuDance 3.0~7.30 × ×
7.31~ ×
PMDエディタ ~0.1.0.0 × 未調査
0.1.0.1~ ※1 未調査
PMXエディタ 未調査
※1 (極北P談)
PMDエディタ内部ではPMDはPMXとして取り扱いますが、入力/出力ともにPMDで問題ありません
ただし、PMDモデルもそのまま編集/保存することができますが、PMXとしてのエミュレート編集
なので一部仕様の差異により構造を変更してしまう場合があります。

※例えば同じIKボーンをIKリストから複数参照している構造(かにひらさんのレア様が該当)の場合、
読み込み時にIKリストの重複分だけボーンが増えます(PMXのIK変形はボーンに直結しているので)。
構造によっては変形順序が不正になるかもしれません。

レア様のひざに関しては、追加IK分のIKボーンを複製して追加、追加分と元のIKを親子結合すれば、
そのままPMDとして保存しても問題ない動作になります(操作に関しても元の親IKで行うので変化なし)

また、PMXエディタに同梱のPMX仕様に「□PMDとの互換性」という項目があります。


PMDとPMXとの変換について

ファイル変換の可否
PMD → PMX

(一部のボーン/IK構造で不具合が発生する可能性あり)
PMX → PMD
仕様の違いにより多くのデータが欠落します
PMD保存時は編集内容がPMDに格納可能かどうか確認してください。
【例】テキストデータ、モーフ(UV/ボーン/材質/グループ)、移動付与ボーン、SDEF、BDEF4他

詳細な注意点

PMXへの対応に伴う諸注意(0.1.0.1以降)

(以下、PMDエディタのreadmeより一部引用)
内部処理をPMX基準へ変更したので、PMDモデルは一旦PMXへ変換され各処理に渡されます。
PMD出力時はPMXからPMDへ再度変換され保存されます。
用語変更
  • 表情→(頂点)モーフ/その他のモーフ種類が大幅に増加しました。
PMDのIK編集方法変更
  • IKリストからの直接編集はできません。
  • ボーン種類をIKにすると自動的にIKリストへ取り込まれます。
  • IKに対して各設定、リンクボーンの追加を行ってください(選択時IKリンク種類による絞込みはできません)
PMD⇔PMX変換での問題点
<同じボーンに対してのIK設定が複数ある場合>
  • PMXでは原則1ボーンに対して1つのIKのみ設定可能なので、複数のIKに対応して不足分のボーンが追加されます。
  • 追加されたIKは元のIKボーンに対して親子連結され、PMD運用時は問題が出ないよう自動対応されますが、
  • モデルの構造によっては不具合が発生するかもしれません。
    尚、この状態でPMDへ保存した場合、複数のIKボーンが追加された状態で保存されます(元の状態には復元されません)
ボーンの変形構造変換
  • PMDのボーン変形は基本的にIndex順に順次変形が行われ、例外的に回転影響下/IK変形が全変形後に再度行われる仕組みになっています。
  • PMXの変形はボーン種類(属性)に関わらずIndex/変形階層/物理演算後の各設定により順次変形する仕組みなので、
  • PMXへの変換時はボーン順をそのまま変更せず変形階層の設定による方法での対応を試みます。
  • その際PMD側のボーン構造によっては変形構造がうまく変換できない可能性があります。
  • またPMDインターフェイスからの編集時も内部のPMX構造とは同期しない設定になる可能性があります。
PMDへの変換
  • PMX→PMDでは仕様上多くのデータが欠落します。
  • テキスト系のデータバッファはPMXではほぼ制限がないのに比べ、PMDでは20byte程度の容量しか用意されていない場合もあります。
  • PMD保存時は編集内容がPMDに格納可能かどうか確認してください。
(詳細はPMDエディタ同梱のreadmeへ)

PMDとPMXの詳細

動画PMX概要(極北P)の内容を表形式にまとめたもの。動画に記述がない事項は加筆しました。

PMXとは、PMDモデル(MMD Ver.3 以降の3Dモデルフォーマット)をベースとした機能拡張モデルフォーマットです
※PMX:PMd eXtend(Xファイルとは関係ありません)
※MMD、PMDエディタ(及び周辺ツール)専用のデータフォーマットとなります
 一般的なモデルフォーマットのような汎用性/拡張性はありません
※MMD ver.7.31 以降及び PMDエディタ 0.1.2.0 以降で使用されるのは PMX2.0 仕様です

PMD PMX 2.0
テキ
スト
関連
データサイズ 固定サイズ 可変サイズ(最大2G程度)
エンコード シフトJIS ユニコード(UTF16/UFT8選択)
頂点 最大頂点数 65536(16bit) 約40億(32bit)
※運用上10~50マン程度が上限目安
搭載メモリ量により編集/描画可能なサイズが変わります。
追加UV 最大4つまで4Dベクトル(x,y,z,w)を追加配置可能
主にエフェクトを介しての利用を想定
エッジ(輪郭) 非エッジフラグ(表示/非表示) 頂点毎のエッジ倍率(0~1)
ウェイトのボーン対象数 2ボーン 4ボーン
ウェイト値 整数(0~100) 実数(単精度)
変形 BDEF BDEF/SDEF
※SDEF変形はボーン数2まで
描画方式 三角形リストのみ
最大面(ポリゴン)数 (20億(31bit)/3)*材質数
※運用上1材質中の最大面数はもっと少なくなります
材質 材質名 なし 記録可能
描画方式 両面描画:α<1
地面影:エッジとの共用フラグ
セルフシャドウ:α=0.98で描画OFF
セルフシャドウマップへの描画
各項目の個別設定が可能
エッジ(輪郭) なし(MMD上で一括指定) エッジサイズ/エッジ色(RGB)
テクスチャ/スフィア ファイルパスデータは固定
(テクスチャ名の長さが19文字まで※2)
ファイルパスデータの可変サイズ化
(長いファイルパスでも対応可能)
スフィア SPH、SPA SPH/SPAに加えBMP/PNG/JPGが追加
サブテクスチャモードの追加
Toon
個数制限(10個)
直接設定へ変更
個数の自由化
メモ なし 追加(自由欄、エフェクト側との連絡用他)


変形種類 ボーン種類(10種) 個別パラメータ化:
回転/移動/IK/表示/操作/回転付与/移動付与
~先ボーン 設定が必要 座標オフセットで指定可能
変形順序の厳密化/自由化 IKの下に通常変形ボーンを配置することなども可能
IKボーンへIKパラメータの取り込み 別途のIKリスト設定が必要 別途のIKリスト設定は不要
IK変形での制限角度 "ひざ"関連のみ内部で自動設定 任意設定が可能


表情 表情(表情変形) 頂点モーフとして再定義
モーフ方式 頂点モーフ 頂点モーフ:頂点位置にオフセット加算
UVモーフ頂点UV値にオフセット加算
(追加UVも個別設定可能)
ボーンモーフ:ボーンに回転/移動量をオフセット
材質モーフ:RGBAの4値をモーフ変更
グループモーフ:頂点/UV/ボーン/材質の各モーフを同時に実行可能なモーフ
共通
表示枠
表示枠 表情枠とボーン枠は別個 モーフ(表情)/ボーンを任意に格納可能
PMD互換として標準でRoot枠(センター用)やPMD用の表情枠も作成されます
物理
演算
関連
剛体/Joint 剛体の最大数はワールド内モデルの総計が16384±α
(MMD及び物理演算エンジンの仕様)

※2 テクスチャ名・スフィア名の合計が半角英数で18文字以内。
内部では「xxxxx.png*xxxxx.sph」となるらしいので*も含めて19文字以内


関連動画


関連動画


既存の不具合・注意点


サイト「みくだん」より引用:MMD基準モデルフォーマット、PMD/PMXについて
現時点でMMD側がPMXフォーマットにて非対応・不具合の部分
  • IK変形において、PMDEditor側とMMD側で一部挙動が異なる場合がある。特に独自IKを組んだ場合は異なる場合がある。
  • 材質に対して存在しないtoon.bmpなどを指定すると壊れる
(従来のPMDにて、toonを指定したくない場合は、存在しないtoonを指定する方法をとっていた為、そのままPMX化する時に引き継いでしまうとMMD側で不具合となる)
  • 外部親の非対応(これは仕様自体がまだ固まっていません)
  • MMDを経由したモデルデータからMMEへの引数渡しが一部非対応
  • 材質モーフ適用後、MMEへのテクスチャ引き渡しなどが非対応
※ただし、これらの問題は報告が上がってるだけで詳細な再現などがなされない場合もあり、また詳細に検証したものではありません。伝聞の部分もありますので、各自で検証していく必要はあります。大抵の問題はモデルデータ側にある場合もあるので何ともいえない場合もあります。

PMD → PMX変換でfpsが落ちる際の回避方法

Q.MMD ver.7.39でpmdモデルとpmxモデル混在して使うとやたらfps落ちるのは仕様?
A.Ver7.38以降でIKのLoop回数の計算の変更があり、IKの単位角は1以上に設定してください。
(動かないIKを作りたい場合は、単位角は1にして、IKの角度制限をx,y,z共0に設定して下さい )

+ 回答全文を読む 【MMD】MikuMikuDance動画制作/鑑賞スレ part137【初音ミク】 【MMD】MikuMikuDance動画制作/鑑賞スレ part137【初音ミク】

105 名前: 名無しさん@お腹いっぱい。 投稿日: 2011/10/22(土) 20:15:50.92 ID:p4BDYcQw0
>>25
>>MMD7.39でpmdモデルとpmxモデル混在して使うとやたらfps落ちるのは仕様?
>>それともなんか使ってる特定のモデルに問題があるんだろうか

その実際にfpsが落ちるpmdとpmxモデルのペア2体をどこかにアップロードして
もらえないでしょうか?

111 名前: 名無しさん@お腹いっぱい。 投稿日: 2011/10/22(土) 20:58:21.22 ID:p4BDYcQw0
MMD7.39はPMDはPMDのシーケンスで、PMXはPMXのシーケンスで動きます。
なので両方読み込んでもそれぞれ別のシーケンスで動くだけなので、原理的には
両方混ぜたことによって異変が起こるというのはないはずです。

ただし意としないバグでそういう状況になる可能性もあるのですが、ソースを
見渡しただけではそんな兆候は見つからないので、実際にその状況を起こした
状態でデバッグしないと修正は不可能です。

>>107
そのKaitoモデルをDLできるurl教えてくれませんか?

123 名前: 名無しさん@お腹いっぱい。 投稿日: 2011/10/22(土) 22:38:32.40 ID:p4BDYcQw0
GUMIモデル確認しました。
MMD上のPMXでは、角度制限付きIKを正確に計算するためにターゲットボーン方向を向くまで
Loop回数以上ループする場合があります(Ver7.38以降)。
ここでLoop回数を1に設定し、1回のループで回転する角度である『単位角(PMDEditorのVerに
よっては単位制限角)』の値が異常に小さいと、PMDではほぼ動かないで終了する計算をPMXでは
複数回計算してしまうため、計算時間が非常に長くなります。

Ver7.37以前やPMDEditorのようにLoop回数で計算をやめる仕様にしても良いのですが、
そうすると今度は角度制限をつけたIKの動作でガックガクの動きになる場合がでてくるので、
MMDでは現在の仕様を採用します。

そもそも、単位角に異常に小さい値を設定することはPMD,PMXに関わらず動作上意味がありません。
PMXを使用して動作が遅くなるモデルがある場合には、IKの単位角が異常に小さい値になって
いる箇所がないか確認し、あったら値を1以上に書き換えるようにして下さい。

それとよくPMDとPMXを併用すると動作が遅くなったり頻繁にバグるという話を聞きますが、
どなたかそのような現象が起きる場合は当該PMXとPMDモデルの組を教えて下さい。

126 名前: 名無しさん@お腹いっぱい。 投稿日: 2011/10/22(土) 22:47:10.25 ID:p4BDYcQw0
3行にまとめると、「MMDを使う場合はIKの単位角は1以上に設定してください」ということです

132 名前: 名無しさん@お腹いっぱい。 投稿日: 2011/10/22(土) 22:56:49.63 ID:p4BDYcQw0
動かないIKを作りたい場合、単位角を異常に小さい値に設定する事もありそうですね
その場合は単位角は1にして、IKの角度制限をx,y,z共0に設定して下さい


関連リンク



MikuMikuDance >

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
目安箱バナー