Pmd2XML

→ MikuToga ポータルサイトへ戻る


Pmd2XMLとは?

Pmd2XMLは、MMDで用いられるPMDモデルファイルをXML形式ファイルに変換したり、XML形式ファイルからPMDモデルファイルの復元を行うために開発されたJava製のツールです。

Pmd2XMLはJARファイルで提供されます。このツールを動かすためにVer1.6以降のJava実行環境(JRE)が必要です。→ java.com

Pmd2XMLはコマンドプロンプトなどでのコマンドライン実行を想定して作られています。1.201.2版の時点では、グラフィカルなGUIフロントエンドを持ちません。

Pmd2XMLはMikuTogaプロジェクトの一部として開発され、その一部にTogaGemライブラリが用いられています。

想定される利用形態

XML文書型情報

Pmd2XMLが読み書きするXML文書の形式は以下のファイルで定義されています。まだ変わる可能性はあります。

PMDモデルファイルに含まれない若干冗長な情報も記述可能となっています。(PMDEditor独自の「素材名」など)

metaタグの使い途などはこれからみんなで考えていきましょう。

文書型定義の改造はもちろん自由ですが、スキーマURLやXML名前空間はちゃんと自前で用意してね。

ダウンロード

以下のダウンロードサイト(SourceForge.JP)から拡張子が*.jarのファイルをダウンロードして適当な場所へ置いてください。

プログラミングに興味のない方は、拡張が*.zipのファイルをダウンロードする必要はありません。

⇒ Pmd2XML (1.201.2B)

Pmd2XMLの実行に際して、これ以外のJarファイルを他所からダウンロードしてくる必要は一切ありません。

オプション一覧

1.201.2版のオプション

-i <filename>
入力ファイル名を指定
-o <filename>
出力ファイル名を指定
-f
出力ファイルを強制上書き
-iform <format>
入力ファイル形式を明示的に指定
-oform <format>
出力ファイル形式を明示的に指定
-nl <newline>
XML改行コードを指定
-genout <bool>
XML生成アプリ名出力を制御
-h
ヘルプ出力

bool : "on" or "off"

newline : "lf" or "crlf"

format : "pmd" or "xml" or "xml101009" or "xml130128"

実行例

※ JARファイル名はダウンロードしてきたJARファイル名に適当に置き換えてね。

↓PMDモデルファイルをXMLに変換する場合。

D:\Temp> java -jar pmd2xml-1.201.2.jar -i test.pmd -o test.xml

↓XMLファイルからPMDモデルファイルを復元する場合。

D:\Temp> java -jar pmd2xml-1.201.2.jar -i test.xml -o test.pmd

※ 1.201.2版から、ファイル名からある程度ファイル種別を推測するようになりました。

出力例

テスト用PMDデータ&XMLファイルの管理リポジトリ

元データ:初音ミクVer2.pmd(あにまさ氏) (12354頂点、695KB)

変換後のXMLファイル:5.6MB 117382行
※ gzipで圧縮すれば633KBになる。

素材設定周辺

........
<materialList>

  <material showEdge="true" surfaceGroupIdRef="sg0">
    <diffuse r="0.133" g="0.616" b="0.71" alpha="1.0" />
    <specular r="0.0" g="0.0" b="0.0" shininess="5.0" />
    <ambient r="0.0665" g="0.308" b="0.355" />>
    <toon toonFileIdRef="tf0" /> <!-- toon01.bmp -->
  </material>
........

ボーン設定周辺

........
  <!-- 首 --><!-- 回転 -->
  <bone name="&#x9996;" boneId="bn2" type="ROTATE">
    <i18nName lang="en" name="neck" />
    <position x="0.0" y="16.418097" z="0.0" />
    <boneChain prevBoneIdRef="bn1" nextBoneIdRef="bn3" />
    <!-- [上半身]=> # =>[] -->
  </bone>
........

頂点定義部周辺

........
  <vertex vtxId="vtx7976" showEdge="true">
    <position x="-3.6478999" y="6.3499" z="1.24" />
    <normal x="0.92408043" y="0.34644318" z="0.16140814" />
    <uvMap u="0.317604" v="0.182506" />
    <skinning boneIdRef1="bn48" boneIdRef2="bn47" weightBalance="0" />
  </vertex>
........

→ MikuToga ポータルサイトへ戻る

Copyright(c) 2010 olyutorskii