Amazonで商品を見るセール会場へ

【Maya】MMDモデル(PMX)をインポートする方法

PmxIO for Mayaを使ってPMXモデルを読み込んだ旧環境の記録です。

掲載画像やメニューは当時のもので、現行版での再現試験は行っていません。

MayaにMMDモデルを読み込むため、PythonスクリプトのPmxIO for Mayaを使ってインポートしました。

目次

Maya 2017で使用した更新版

当時使用したPmxIO for Maya ver0.50bの操作記録です。

Maya 2017以外、特にPythonやQtの世代が変わった環境での動作確認はしていません。

以下に当時の配布元を残しています。

2026年10月26日の確認でもver0.50bの配布ページを取得できておらず、配布物と対応環境を確認できない場合は、この手順だけでは導入できません。

配布物のフォルダ構成を保ってMayaのPython検索パス内へ配置し、Script EditorのPythonタブで次の2行を実行します。

旧版TrM_PMXIOの起動コードとは混ぜないでください。

PmxIO for Maya ver0.50b – TrTools.JP

import pmxio
pmxio.run()

この2行はver0.50bで使った起動コードです。

スポンサーリンク

過去の手順

まずモデルデータを用意します。

当時はこちらのPMXデータを使用しました。

配布の継続や商用利用の可否を示すものではないため、モデルの現在の利用条件を確認してください。

ブレイブリーセカンド公式ページ(現在のMMD配布は未確認)

PMXはMikuMikuDanceのモデルデータ形式の拡張子です。

従来の形式はPMDでした。

なおモーションデータには別規格のVMDファイルが用いられます。

Pythonスクリプト

以下は旧版の配布案内です。作者の2013年の記事ではVer0.11αが紹介され、後のコメントで移転先が案内されています。作者の旧配布記事

http://mayatech.blog.jp/archives/3009881.html

ここで紹介するのはTrM_PMXIOを使う旧版です。

当時Maya 2017で次のエラーが出ました。

冒頭のver0.50bもMaya 2015以降で一律に動かない、という意味ではありません。

旧版と更新版ではモジュール名や起動方法が異なります。

# Error: AttributeError: file C:/Users/ユーザー名/Documents/maya/2017-x64/scripts\TrM_PMXIO.py line 1666: 'CheckBox' object has no attribute 'onCommand' #

当時は次のコールバック登録行をコメントアウトすると起動できました。

ただしチェックボックス操作に対応する処理も外れるため、起動成功だけで正常なインポートができると判断しないでください。

行番号は配布版で変わるため、1666行目を機械的に削除しないでください。

この変更だけで現行版Mayaに対応できるわけではありません。

#self.chkBoxUseAlpha.onCommand(self._chkBoxUseAlpha_OnCommand)

旧版TrM_PMXIOのインポート手順

1. 作者のVer0.11αの案内では、TrM_PMXIO.pyとpymeshioフォルダを両方、使用するMayaのユーザーscriptsフォルダへ配置します。

Pythonタブでimport maya.cmds as cmds; print(cmds.internalVar(userScriptDir=True))を実行すると実際のフォルダを調べられます。古い2017-x64というパスをそのまま作らないでください。Autodesk:internalVar

2. 最初はuserSetup.pyへ自動起動を追加せず、Script Editorから手動で確認します。

すでにuserSetup.pyを設定している場合は、変更前にバックアップし、既存の設定を消さないでください。

3. Script EditorのPythonタブでimport TrM_PMXIOを実行します。

読み込みに失敗した場合は、配置先、ファイル名、配布版とMayaの対応を確認します。

TrM_PMXIOが見つからないエラーと、読み込み途中でpymeshioなどの依存モジュールが見つからないエラーを分け、エラー末尾のモジュール名を確認してください。

TrM_PMXIO.pyだけをコピーしたり、pymeshio内のファイルを平らに並べ直したりせず、同じ配布物の構成を保ちます。

onCommandのAttributeErrorは読み込み先のUI処理で発生した記録なので、保存先を変えるだけで解決すると判断しないでください。

4. 同じPythonタブでTrM_PMXIO.startup()を実行します。ver0.50bを使う場合は、この旧コードではなく冒頭のpmxioを使います。

コマンドラインの表示を切り替えてスクリプトを実行し、起動の準備をする場面。

5. ウィンドウからPMXを選択し、テスト用シーンへ読み込みます。

形状、テクスチャ、骨、変形が正しいか確認してください。

物理・モーフなどの再現範囲は、この記録では検証していません。

起動した専用ウィンドウからPMXファイルを選択してモデルをインポートする場面。

旧版で引き継げるデータと確認する項目

作者が公開したVer0.11αの仕様では、UVはUV1のみ、スキンウェイトはBDEF1〜4に対応し、SDEFはBDEF2として扱い、QDEFは非対応です。

マテリアルはBlinn、テクスチャはカラーマップが対象とされているため、MMDでの見た目や変形がそのまま再現されるとは限りません。

これは旧TrM_PMXIO側の公開仕様であり、未取得のver0.50bへ同じ制限を当てはめた説明ではありません。

グループモーフなどを含むファイルでは読めない場合があると作者が案内していますが、読み込みのために元のモデルを直接削除・改変せず、検証用コピーを残してください。

まずテストシーンで形状とUVを確認し、テクスチャが見つからない場合は元データの画像ファイルと参照先を照合します。

透明部分はアルファ接続も確認し、旧コールバックを無効化した環境では「透明度マップの接続」の操作結果が変わらないかを個別に試します。

続いて肘・膝などを曲げ、元モデルと比べて潰れやねじれが大きく変わらないかを確認します。

物理やモーフ、VMDモーションの再現は別の確認項目として扱い、モデルが表示されたことだけで対応済みとしないでください。

別名でMayaシーンを保存して開き直し、形状・テクスチャ・骨の参照が残ることを確認してから、本番作業へ進みます。

3DCGに関するほかの記事は、まとめからご覧いただけます。

Mayaの記事は、ほかにもあります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

3DCGのおすすめ書籍

3DCG用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次