スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MMD基準モデルフォーマット、PMD/PMXについて

このエントリでは、MMD基準モデルフォーマットであるPMD、ならびにPMXについてとそれぞれの違いや対応状況などについて記します。
私個人が知りうる限りの情報ですので、正解であるとは限りません。ご了承下さい。
また、長文のエントリとなりますし、特に図解もないので退屈するかもしれません。お時間がある時にどうぞです。

■ MMD基準フォーマットについて
 現時点でもPMDフォーマットの詳細については原則公開されていません。
 MMD本体がVer2からVer3になった時、極北Pを始めとした有志の方々によって解析されたものは一部で公開されていますが、開発者である樋口氏より正式公開されたものは存在しません。
 基本、現時点で公開されているPMDフォーマットでも動作上は問題ないのでより正解に近いものかもしれませんが、厳密に一致しているという訳ではない事を、まず念頭に置く必要があります。
 また、一部のソースコードを除き、MMD本体のソースは非公開です。オープンソース化の予定もありません。
 データフォーマットが一致したとしても、必ずしもMMDと同じ表示・動作をするものではなく、MMDと完全一致させるのは動作部分・計算部分の詳細が必要となります。
 現在、複数のMMD互換ソフトが開発中ではありますが、そういった事情もあり、MMD完全互換という訳にもいかず、また互換ソフトに多くを求めるのも酷な話ではあります。
 プログラミングにおいて、頂点計算やら変形動作、シェーダーの組み込みなどは自らの試行錯誤をするプロセスも重要かもしれませんね。

 幸い、PMDフォーマットは有志で公開されてますし、PMXフォーマットはPMD Editorに付属しているドキュメントに詳細があります。また、基礎モーションデータとなるVMDフォーマットも解析が終了して公開されています。
 これらのフォーマットで、完全ではないにしろクロスプラットフォームとなるのでしょう。
 おそらく、フォーマットとしてはカオス化になっているプロジェクトファイルとなるPMMの互換は難しいかと思います。
 特に互換ソフトを開発するに辺り、追加要素などを含めてPMM化するのは恐らく無理でしょう。となると、互換ソフト側はそれぞれ別途プロジェクトファイルフォーマットを組む必要があります。

 話は初っ端から逸れてしまいましたが、ここに知る限りのモデルフォーマットの違いについてなどを整理して記述しておこうという感じです。


■ モデルフォーマットの歴史
 元々、MMD Ver1~2世代ではPMDという概念はなく、DirectXの形状フォーマットである「.x」をベースにして独自に拡張した、「.xx」というフォーマット(非公開)でした。
 ソフト立ち上げとともに、固定されたファイル(ミクまたはリン)の.xxファイルを読み込んで後はモーションなどを付けるといったシンプルなものです。
 当然この世代のベースとなっている描写エンジンはDirectX7となり、さらにできるだけ軽量・シンプル化させてノートパソコンでも余裕がある動きができるようになっているものです。
 MMD本体と共にこの世代ではDirextXの本領を全部使ってる訳ではなく、かなり基礎的な部分だけに抑える事で軽さと安定度を増していたともいえます。

 MMD Ver3では、今後あにまさ氏が作り、リリースするであろうモデルを簡易的に増やせるようにという切っ掛けだと思われるが、「.xx」を更新して「.pmd」フォーマットが生まれました。基本的には「.xx」をベースにし、拡張されたフォーマットです。
 モデルを別途読み込むシステムになった事で、ユーザーモデルも読み込めるようになるのではないか、という形でPMDフォーマットの解析が掲示板の片隅で始まりました。また同時にVMD・VPDフォーマットの解析も同時期となります。
 PMD Editor自体は最初、このPMDフォーマット解析補助ツール(または簡易ビューアー)として生まれ、編集機能などは後から加えられています。

 余談となり、また話は前後しますが、「.xx」自体の解析もMMD Ver3以前より進められており、ナクアダさんによるモデル改変ツールがおそらくMMD関連のモデル編集ツールとしては初出かと思われます。
 初出は2008年8月20日。MMD Ver3がリリースされる10日前となります。

プロジェクト 初音の未来
http://www.geocities.jp/hatsune_no_mirai/


 個人的にはこの頃、匿名での掲示板上のやりとりが多かったので把握しきてれませんが、MMD関連データ解析において、ナクアダ氏、Yumin氏、極北Pは忘れえぬ存在であります。

 MMD Ver3のリリースが2008年8月30日ですので、その3日後にはPMD対応バージョンの改変ツールがリリースされ、10日後の9月9日にはPMD EditorのVer0.0.0.1がリリースされました。
 さらに2日後にはバグフィックスと共に新モデルとしての鏡音レンのモデルリリースと、この時期はかなり忙しない月日でもありました。
 その後、10月後半にPMD Editorを使用したミク改変モデルとなるネル(m2gzb氏)がMMD同梱となってリリースされ、翌月11月辺りからユーザーモデルが別途リリースされていくという状況になっていきます。
 この頃はまだPMD Editorもバージョンアップは続けているものの、色合いの表示やIK問題など多くの難関がありながらも使われていった経緯があります。
 また当時、樋口氏はPMD Editorがリリースされても暫く後まで、独自のモデル編集(おそらく単純な数値エディタ)でボーン組み込みやウェイト情報編集を行っていたようです。

 PMD Editorの編集機能が安定しつつあるのは2008年11~12月頃、年を越えて2009年前半になると、PMDフォーマットの解析もほぼ終わりかけ、BlenderのImport/ExportやMetasequoiaのPMDインポータなどが開発されてきました。
 3月にはMMDもVer4になったり、5月にはARToolKitのリリースなど、PMDフォーマットを利用したツールも多く開発されてきました。

 その後、Ver4での24bit画像が扱えるようになったり(BMP以外の画像ファイルにも対応)、スフィアマップ対応をしたり、Ver5で物理演算機能が付いたりなどして、PMDフォーマットもその都度、下位互換をしつつも拡張されていきました。
 さらにその後のVer6~7で、セルフシャドウやエッジ描写変更などに伴う細かい仕様変更にともない、これもまたPMDフォーマットに反映されています。

 そういった流れもあり、Ver3世代でのPMDフォーマットと現時点(Ver7.39)でのPMDフォーマットは、基礎部分では同じものであるものの、拡張の繰り返しもあり、最終的には結構カオスなフォーマットとなっています。
 同時に要望などは増える一方であり、PMDフォーマットをこれ以上拡張するには限界点がかなり近づいてました(というよりはVer5の部分からPMD的には無理が生じつつあったようです。またプロジェクトファイルであるPMMにも無理が生じており、保存データが壊れるなどはこの世代からあります)。
 そこで機能を刷新しつつ、拡張要素を持たせ、かつMMDでの速度を出来る限り落とさないようにしつつ、上位互換が取れるフォーマットとして生まれたのがPMXフォーマットです。
 フォーマットの基礎部分はPMDを基準とし、特にボーン構造や変形機構などの追加要素を加えたものを極北Pが考案して作成しました。
 PMD Editor 0.1.0.0にPMX Ver1として仮運用し、MMD対応と同時にPMD Editor 0.1.0.1以降にてPMX Ver2フォーマットとして運用されています。

 残念ながら最終版となるMMD Ver7.39ではPMX対応が不完全であり、またPMXのフルスペックを発揮しているものではありません。詳しくは、よくある誤解的な部分も合わせて後述します。

 以上がPMDフォーマットからPMXフォーマットへの歴史的な流れとなります。


■ PMDフォーマットについて
 まず、データ構造については以下のサイトを参照してください。

PMD形式ファイルのデータ構造 - 私設研究所ネオテックラボ
http://www.neo-tech-lab.co.uk/MikuMikuDance/PMD1.htm#PMD%E5%BD%A2%E5%BC%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0


MMDのモデルデータ(PMD)形式 めも (まとめ) - 通りすがりの記憶
http://blog.goo.ne.jp/torisu_tetosuki/e/209ad341d3ece2b1b4df24abf619d6e4


基本的には.xフォーマットベースであり、またDirextX7ベース世代の制限が掛かっている状態となります。
 これはMMD本体がシェーダー2.0ベースでも表示できるようにという下位互換の為であり、MMD Ver7以降のDirextX9対応版でもPMDフォーマット自体には違いがないので変わりありません。
 (Ver7対応でのPMDモデルはMMD Ver5で読み込むと非対応部分は切り捨てられます)

PMDのネックとしては、DirextX7ベースであるが故に現時点でのPCではかなり古い技術あるのと、16bitベースなので様々な要素で限界点が低いという所です。
 特に顕著なのは、1モデルに含まれる頂点数が65535以内にしないとならない、という点でしょうか。
 最新のグラフィックボードでなくても、ここ5年前後で発売されているものであれば、これより多い頂点数も軽々と動くようになっていますし、人体モデルだけでなく広大な背景系モデルなどでは物足りない数字となります。
 また、ボーン構造と変形機構も必要最低限となっており、細やかな表現をするには向いてない部分もあったりします。

 もちろん、これら全ては軽量化と、初心者が取り掛かりやすい環境であるという部分に起因するものでもあり、極限までスリムアップされたフォーマットでもあります。
 現時点でもPMDフォーマットベースのモデルデータなどは多く配布が続けられており、また新規モデルもいまだPMDフォーマットのものが多いです。


■ PMXフォーマットについて
 PMXフォーマットの詳細は、PMD Editor 0.1.0.1以降に同梱されたドキュメントに記されています。
 PMDEditor.exeから見ると、
 Libフォルダ → PMX仕様フォルダ → PMX仕様.txt
 にあります。
 PMDとは別の使用条件などになりますので、利用する場合にはご注意ください。
 概要については、以下の動画をご覧ください。
 
 また、付属ドキュメントにはソースこそ付いてないものの、変形機構などについてのロジックは書かれていますので、ソフト側で対応する場合には必読となります。


■ MMD Ver7.39でのPMX対応について
 現時点でMMD側がPMXフォーマットにて非対応・不具合の部分を羅列していきます。

・IK変形において、PMDEditor側とMMD側で一部挙動が異なる場合がある。特に独自IKを組んだ場合は異なる場合がある。
・材質に対して存在しないtoon.bmpなどを指定すると壊れる
(従来のPMDにて、toonを指定したくない場合は、存在しないtoonを指定する方法をとっていた為、そのままPMX化する時に引き継いでしまうとMMD側で不具合となる)
・外部親の非対応(これは仕様自体がまだ固まっていません)
・MMDを経由したモデルデータからMMEへの引数渡しが一部非対応
・材質モーフ適用後、MMEへのテクスチャ引き渡しなどが非対応


※ただし、これらの問題は報告が上がってるだけで詳細な再現などがなされない場合もあり、また詳細に検証したものではありません。伝聞の部分もありますので、各自で検証していく必要はあります。大抵の問題はモデルデータ側にある場合もあるので何ともいえない場合もあります。

 また、PMD Editor上でもPMDからPMX化するにあたり、モード変更だけでそのままいける場合もあれば、一部手を加えないとならない場合もあります。
 特にIK・回転影響下のボーンや、ボーンのINDEX順で挙動が変わったりしますので、変換後もそのあたりの整理が必要となります。


■ PMXにおいての、よくある誤解など

●PMXフォーマットの所為で、樋口氏が開発を辞めたのではないか
 誤解だという事は断言できます。
 現状でのMMD自体に限度が見えてきたのと、PMXだけでなく諸々の要望に応える為にはフォーマットや内部刷新の必要性が出てきていました。さらに平行開発していた音声関係の開発にも注力したい為、など諸々の事情やモチベーション的なものも加わり、開発を終了したものと推測しています。
 樋口氏本人はいまだにMMD動画などを見られてますし、表立ってではありませんがMMD以外のソフトを開発しています。
 そもそも、PMXの所為であれば、フォーマット採用しなかった事でしょう。
 動画作ってソフトも開発して様々な所からの要望や対応などをして、さらに家庭を営んで仕事をして…と考えれば、器用な人でもそうそう複数の草鞋を履いていく事は難しいでしょう。
 時期的には唐突であり、また不具合も残ったままというのもありますが、ご本人がそこで区切りを付けたのであり、それを尊重すべきかと考えます。
 ただ個人的には、やはり戻ってきた時に、そこに席が無いのも悲しいのでいつでも戻ってこれるような環境は維持したいと考えています。

●PMXだと重い
 MMDでのPMX読み込み時は確かに重くなります。また、PMDから拡張されたデータなども多くあり、それの事前処理やらで重くなるのは当然ではあります。
 また動作や表示速度については、当然、頂点数やら材質数、剛体数などがPMDよりも多ければ当然重くなります。
 ですが、標準モデルのPMDを単純にPMX化してMMDに読み込んだ場合、読み込み時は重いですが、通常作業時の処理は変わりありません。
 単純に、PMDでも同じように、データ量や要素が増えれば重くなります。

 現在、MMD互換系ソフトのアルファ版などがリリースされていますが、MMDよりもよりダイレクトにグラフィックドライバとやりとりをしているものもあり、その場合は読み込みも動作もMMDよりも高速化されている場合もあります。
 MMDはその歴史上もあり、根底から変えない限りはボトルネックとなっている部分がありますが、これから開発される互換ソフトでは改善が期待できる部分もあるでしょう。

●MMD Ver7.30が安定しててVer7.39だと不具合が多い
 私の方でも厳密に検証を繰り返してる訳ではないので調査不足のまま記しますが…
 確かにPMX対応はVer7.31から始まっていますし、Ver7.30まではPMDのみとなります。
 特にPMMが壊れるといった現象は、幸いにも私の環境では起こった事はありません。
 恐らくですが、PMM自体が壊れるというよりは、PMM読み込み時に同時に読み込まれるPMXにおいて不具合がある可能性があります。
 前述のToon指定の部分もそうですが、特にボーン構造にて不具合がある場合
 PMD Editor側では内部で修正して稼働できてはいてもMMD側で同じ処理がなされている訳でもありませんので、何かしらで引っかかって落ちてしまうという事はあり得ます。
 PMMの読み込みが不可能になった場合、どのモデルが不具合を起こすかを調べたのち、PmmSpritter(PMD Editorのシステムプラグインに付属)などを使って救出する事は出来ます。

 また、通常操作をしていて突然固まったり、ある特定の操作などが出来ないといった不具合はVer7.31以降だけでなく、それ以前からもあり、再現不能なバグはあったりしますので、PMX対応特有に限った話ではありません。
(もちろん、PMX特有の操作で不具合が出る事もあるでしょう)

 現時点でPMXを使用しないのであれば、確かにVer7.30の方がいいかもしれません。
 ですが、PMXの多機能型モデルなどを使用する場合には当然ですがVer7.39が必須となります。

 また別の問題となりますが、メインメモリやグラフィックメモリの消費量にも気を付けてみてください。
 モデルなどを読み込んだり削除したりを繰り返して行ったり、操作量が多くなりアンドゥメモリを消費していったり、長時間の運用をすればするほどメモリは消費されていきます。
 かなり消費した時点でPMM保存を行うと、PMM自体がかなり大きなファイルとなってしまいます。
(PMMフォーマットでは、MMDで使用しているメモリ状態や作業状態をも含めて保存されています)
 ですので、小一時間や数時間毎に休憩をとりつつ、別名保存などをし、一度メモリを解放してから再立ち上げなどをすれば安定する事も多いです。
 Windows7/Vistaであればガジェット、XPであればフリーソフトなどを使ってメモリ・グラボ監視用の常駐ソフトなどで状態をみながらやるといいでしょう。
 グラフィックボードのメモリが256Mや512Mなどでは、大きなテクスチャやテクスチャを大量につかったモデルなどを使用すれば数体くらいでメモリが一杯になります。
 また、Metasequoia・PMD Editor(PMD View+Transform View)・MMDなど複数ソフトを同時起動させていればなおさらです。
 モデルも頂点数が少なくてもテクスチャが大きかったり材質数と共にテクスチャファイルが多かったりするとメモリ消費しますので、テクスチャ量やメモリ状態に留意しておくとよいでしょう。


■ MetasequoiaとKeynote、そしてPMD Editor。またはBlender
Metasequoia.net Blog
http://metaseq.sblo.jp/

 メタセコイアも現在次世代のアルファ版などが公開されており、上記ブログで進捗が見れます。
 編集機能が充実しつつありますし、法線マップ(MMEなどで重要)の編集などが出来るようになりそうな様子なので、Ver3は大きく期待できると思います。
 また、従来の銀行振り込みだけでなく、PayPalなどを使用したネット上での支払いにも対応したようなので、お買い求めやすくなっているのではないかと思います。
(もちろんクレカが必要ですし、安全面に不安があると思う方には朗報ではありませんが…)

 また、メタセコのプラグインもかなり充実しています。
私家版 メタセコイア用プラグインリンク集
http://www.siobi.info/program/mq-pluginlink.htm


 その中でもmqdlさんのプラグイン集は、MMDユーザーにとっては有用なものが多いでしょう。
mqdl
http://mqdl.jpn.org/

 特にKeynote、ExportPMDはPMD Editorとの親和性も強く、複数ボーンBDEF設定、SDEF設定はKeynote基準でPMD Editor側も設計されおり、PMD EditorのKeynoteでウェイト調整などを行った後に使用する前提が基準となっています。
 意外にもMetasequoia+Keynote+PMD Editorでの組み合わせでモデル作成している人は、そう多くはないようです。
 ですが親和性や作業効率などを考えると、かなり強力な組み合わせではあります。

 プラグインを始め、メタセコのフル機能を使用するには購入しなければなりませんが、UVテクスチャリングやブーリアン演算など、細かいものを作るときには必須、とはいいませんが便利で効率があがるものも多いので、1回飲みに行くのを我慢して購入を考えるのも一つの手かもしれません。

 また、最近ではBlenderもバージョンアップしています。
Blender.jp
http://blender.jp/

 Blenderは相変わらずUIが難解ではあるものの、こちらもモデリングツールなどは強力であり、スカルプトモデリングに対応しているなど、面白い機能もあります。
 ただし、現時点での最新版では.xエクスポートが出来ないようなので注意が必要ですが…。
 モデリングはBlenderで、動画はMMDでというユーザーも増えているようなので、ブログなどを見回ってみると良いかもしれません。

 余談ですが、モデリングツールのサブデビやスカルプトモデルでは当然頂点数などが爆増しますので、PMDフォーマットでは抱えきれないでしょう。材質量は押さえないとならないですが、PMXフォーマットを使用すれば大幅な削減をせずになめらかな形状を表現できるかもしれません。


■ 最後に
 もちろん、従来のPMDで満足していればそれに越した事はありませんし、安定板と言われているVer7.30を使う選択も問題ないでしょう。
 PMXフォーマットはあくまでも拡張版であり、それを使用しなければ「ならない」状況ではありません。
 PMD/PMX、Ver7.30/7.39、それぞれどちらを使うかはユーザー次第です。
 MMDの開発が停止したからといって環境の発展が止まった訳ではなく、関連ソフトや連動ツールなども開発は続いてますし、MME本体の開発も密かに続いていたり、新しいFxがリリースされたりとまだまだ勢いは止まっていません。
 また、何度か前述しているように、それぞれ特徴のある互換ソフトも開発されています。
 思い切ってMMDを卒業して、商用ソフトにチャレンジするという手もあるでしょう。今まで通りフリーソフトで頑張るのも良いでしょう。
 選択の余地はまだまだ多くあります。
 ツール、モデル/アクセデータ、モーションデータ…諸々、提供して頂ける方々に感謝しつつ、私は私の選択した道を歩んでいこうかと思います。

 ここまで呼んで頂いた方は、かなり奇特な方かと思われますので、今回のここまで読んだは「桃尻を維持したまま変形させるにはBDEF4が最適か否か」をお答えくださいw
関連記事
スポンサーサイト

コメント

非公開コメント

No title

否sdefに決まっておろうw

まとめ乙ですよう

No title

真面目なコトを語っているかんなさんに違和感があるw

No title

試してないけど、SDEFに可能性がある予感w

No title

物理演算でお尻を揺らすなら、SDEF‥かな?

No title

PMD/PMXについて調べており、参考になりました。ありがとうございまう。

Blender には .x のエクスポータは付属しています。ただしデフォルトでは無効になっており、メニューに表示されません。インポータはたぶん存在しません。.x はもう DirectX で廃止されたフォーマットなので仕方ないのでしょう。
プロフィール

かんな

Author:かんな
ニコニコ動画などでMMD動画をうpしてるしがないユーザーの一人。
ブロマガ版みくだん
連絡先:mikudan3939葱gmail.com
(葱を半角@に脳内変換してください)
【FaceBook】上記アドレスか、ID「kanna3939」で検索を

カレンダー
03 | 2017/03 | 04
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
Ask.fm
MMD関連の質問や生放送で読んでほしいお便りとか、ネタとか色々受け付けているかもしれません。
Twitter
MMD関連物
カテゴリー
最近の記事
ブログ内検索
リンク
RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。