MayaからMMD(MikuMikuDance)専用形式「PMX」を読み書きするスクリプト、「PmxIO for Maya」を公開しました。このスクリプトは、PMXの他にPMD形式の読み込みにも対応しています。

ツール名のPmxIOはベースとなったライブラリの「MeshIO」から取っています。
MeshIOはMQOやOBJにも対応しているのですが、このツールはPMX特化なのでこの名前になりました。

現状では、MayaからMMDへデータを送る数少ない方法の一つになると思います。
e342793f.png 467764cb.png

ダウンロード

PMXIO Ver0.11α

更新履歴
2013/09/14 Ver0.11α with MeshIO Ver2.7.5
  • 公開

インストール

一般的なPythonスクリプトと同じく、起動時にロードして使用します。
  1. Mayaスクリプトフォルダに環境パスを通します。
    • Mayaスクリプトフォルダの位置は環境によって異なります。
      例えばWindows7 / Maya2014日本語版であれば、
      .../Documents/maya/2014-x64/ja_JP/scripts フォルダになります。
    • 環境パスの通し方は長くなるのでネットで調べてください。

  2. Mayaスクリプトフォルダに「TrM_PMXIO.py」および「pymeshio」フォルダを丸ごとコピーします。

  3. MayaスクリプトフォルダにuserSetup.pyが無ければ新規に作成します。
    • userSetup.pyは空のテキストファイルを作成し、拡張子を.pyに変更します。

  4. userSetup.pyに以下の一文を書き加えます。
    import TrM_PMXIO

  5. Mayaを起動し、以下のコマンドをコマンドラインPythonモードで実行します。
    TrM_PMXIO.startup()

使い方

インポート
設定を入力後インポートを実行します。
倍率
モデルの拡大縮小率を指定します。
透明度マップの接続
シェーダーにカラーテクスチャのTransparencyを接続します。
エクスポート
メッシュを選択後エクスポートを実行します。
メッシュは複数選択することもできます。
メッシュがスケルトンにバインドされていた場合、自動的にボーンもエクスポートされます。
倍率
モデルの拡大縮小率を指定します。
fb9169be.jpg
公式 初音ミク ver2

仕様(Ver0.11α)

インポート
ファイルタイプ
PMX / PMD。
一部の特殊なデータ(グループモーフ等)を持ったファイルは、読み込めない事があります。
その場合、該当するデータをPMX Editor等で削除することで、読み込めるようになります。(MeshIOに準拠)
メッシュ
頂点座標、法線、UV1の読み込み。(UV2~4は非対応)
ボーン
親子階層の保持。
スキンウェイト
BDEF1~4対応。
SDEFはBDEF2扱い。
QDEFは非対応。
マテリアル
Blinnとして読み込み。
テクスチャ
カラーマップのみサポート。
「透明度マップを接続」にチェックを入れた場合、アルファを持ったテクスチャをマテリアルのtransparencyに自動的に接続する。
その他
PMX内で使用される名前及びコメントを、追加のアトリビュートとして取得。

エクスポート
ファイルタイプ
PMXのみ。
メッシュ
頂点座標、法線、カレントUVの出力(UV1)。
四角形以上のフェースを自動的に三角形に分割。
頂点フェースを自動的に個々の頂点として分離。
(MMDが頂点フェースに対応してない為)
現時点では、常にWorld座標として出力。
ボーン
選択メッシュにバインドされたボーンを自動的に出力。
親子階層の保持。
スキンウェイト
ウェイト数に応じてBDEF1~4として出力。
ウェイト数が5以上だった場合、値の小さい方から切り捨てて正規化。
マテリアル
BlinnまたはLambertに対応。
テクスチャ
カラーマップのみサポート。
その他
各ノードの追加のアトリビュートに設定された名前及びコメントを出力。
Jp Name: 日本語名
En Name: 英語名
Notes: コメント

今後の予定

  • ボーンのローカル軸
  • ネームスペースへの対応
  • ハードエッジの分離ON/OFF
  • テクスチャの自動配置
  • テクスチャの拡大縮小
  • テクスチャのファイル形式変換
  • エッジカラーを追加のアトリビュートに取得
  • 頂点単位のエッジ倍率を頂点カラーに取得,設定
  • ボーンの回転,移動付与をコンストレインとして取得
  • IKへの対応
  • 頂点モーフの出力
  • 頂点の差し替えモード
  • 表示枠をセットとして取得
  • プラグイン化
  • ドキュメントの整備
赤色は特に優先度の高い作業です。

謝辞

最後になりますが、素晴らしいライブラリを作成してくださったousttrue様に感謝の言葉をお送り致します。
PyPI pymeshio