Maya

Mayaスクリプト: 改造版Eclipse接続

大分放ったらかしにしてましたが、久しぶりに更新します。

いつかに記事にしたEclipseとMayaの連携方法について、Maya側のコマンドポートスクリプトの改良版を作りましたので公開しておきます。
と言ってもあまり大した機能はありませんが・・・。

出来る事
  1. Eclipseと接続する為のコマンドポートを開く。
  2. PyDevプロジェクトを調べてソースフォルダを自動的にsys.pathに追加する。
  3. 既に読み込まれたPyDevプロジェクト内のモジュールを再ロードする。

これだけです。
3つの処理は、それぞれ必要な時だけ実行するようにしていますので、Maya起動後何度実行しても問題ありません。 特にモジュールの再ロードは、Pythonの仕様上importで一度読み込んでしまったモジュールを再ロードするのが面倒なため、作業中何度もリロード出来ようにしておくと便利です。

というわけでここに置いておきます。
Connect Eclipse

即時実行する系のスクリプトなので、中身をそのままシェルフに登録すればすぐに使えます。
が、一箇所だけ設定項目がありますので、登録前にそこだけ書き換えておいてください。

# -*- coding: utf-8 -*-
import sys
import re
import os
import os.path as ospath
import xml.etree.ElementTree as xml
import maya.cmds as cmds


# Settings.
eclipseWorkspace = "C:/Users/username/Documents/Eclipse/"
cmdPort = 7720

# ~ 以下略 ~ 

マークアップした11行目のeclipseWorkspaceの部分を、各自使用しているパスに変更してください。
12行目のcmdPortは特に変更がなければそのままでいいです。
スポンサーサイト

PMXIO for Maya リリース

Maya用PMX,PMD読み書きスクリプトが完成しました。

ツール名は使用したライブラリMeshIOから取ってます。
MeshIOはpmxの他にmqo, vmd等にも対応しているのですが、このスクリプトはpmxにしか対応してないのでこの名前になりました。
読み方は分かりません。


現状ではMayaでまともに動くPMXエクスポータはほぼ無かったと思うので、Mayaから直接出力する唯一の選択肢になるかもしれません。

PMXIO インポート PMXIO エクスポート

▼ ダウンロード


▼ Ver0.11α 仕様
ファイルタイプ
インポートPMX / PMD両対応。
エクスポートはPMXのみ。
読み込めるファイルはMeshIOの仕様に準拠。
(ファイルによってはPMX/PMDであっても読み込めない事も。)
ポリゴン
頂点,法線,UV1の入出力。(UV2~4は非対応)
出力時、四角形以上のフェースは自動的に三角形に分割。
出力時、UVの境界、ハードエッジ部分で頂点を自動的に分離。
(MMDが頂点フェース情報を持てない為)
ボーン
入出力共に親子階層のみ保持。
スキンウェイト
入力時BDEF1~4対応。SDEFはBDEF2扱い,QDEFは非対応。
出力時はインフルエンス数に応じてBDEF1~4の何れかに変換。
インフルエンスが5つ以上だった時は小さい値を切り捨て再度正規化。
マテリアル
Blinnに変換。
テクスチャ
カラーマップのみサポート。
その他
複数選択メッシュを自動的に1つのファイルにマージ。
バインドされていないメッシュでも出力可能。
その場合、自動的にボーン0へバインドする。
全体の拡大率の指定可。
Mayaに読み込めないデータの一部を追加のアトリビュートとして記憶。
出力時に、追加のアトリビュートから優先的にデータを取得。

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


▼ インストール
一般的なPythonスクリプトと同じく、起動時にロードして使用します。
  1. mayaスクリプトフォルダに「TrM_PMXIO.py」および「pymeshio」フォルダを丸ごとコピーします。
    mayaスクリプトフォルダの位置は環境によって異なります。
    例えばWindows7 + Maya2014日本語版であれば、
    .../Documents/maya/2014-x64/ja_JP/scripts フォルダになります。
  2. スクリプトフォルダにuserSetup.pyが無ければ新規に作成します。
    (userSetup.pyは空のテキストファイルでOKです。)
  3. userSetup.pyに以下の一文を書き加えます。
    import TrM_PMXIO
  4. Mayaを起動し、以下のコマンドをコマンドラインPythonモードで実行します。
    TrM_PMXIO.startup()

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

▼ ヒストリ
2013/09/14: Ver0.11α with MeshIO Ver2.7.5 … ファーストリリース。

▼ 謝辞
最後になりますが、この場を借りて素晴らしいライブラリを作成してくださったousttrue様に感謝の言葉をお送り致します。
有難うございました。

MeshIO SOURCEFORGE

TrM_SeparateSkinMesh アップデート

先日配布したスキンメッシュ分割スクリプトをVer1.10へアップデートしました。

配布早々申し訳ないです。
ごくごく初歩的なミスで処理速度が大幅に低下していました。

既にインストールしてしまった方はファイル置き換えのみでOKなので、暇な時にでもアップデートしておいてください。

TrM_SeparateSkinMesh Ver1.10 (右クリックで保存)

PMXファイル インポータ/エクスポータ 開発開始

MMD等で使用されるファイル形式、PMXのMaya用トランスレータの開発を開始しました。

というわけで今後の予定と仕様についてメモ。
▼ 仕様
  • 取り敢えず初期版ではプラグインではなくコマンドスクリプト(GUI付き)として実装。
  • 対応形式はインポートPMD/PMX、エクスポート:PMX。
  • インポート時にMayaに取り込めないデータ(日本語名、コメント等)は
     追加アトリビュートとして設定。
  • エクスポート時に追加のアトリビュートからデータを読み出す。
  • マテリアルはBlinnで代替。
  • UV、ウェイト、頂点の置き換えモード。
  • 取り敢えず初期版では、頂点、法線、UV、マテリアル、ボーン、スキンウェイトの
     読み書きに対応。
  • ボーンは取り敢えず親子関係のみ対応。ローカル回転軸も多分対応。
  • ハードエッジ・UV境界の自動分割機能。
     (PMXは頂点法線、UVを1つの頂点で共有出来ないため)
  • マテリアルによるメッシュの分割は初期版では実装しない。
     代わりにスキン済みメッシュの分割スクリプトを別途提供。
  • 複数メッシュのエクスポートに対応。
  • ▼ 予定
  • 現時点でインポータはある程度動く。
  • 取り敢えず今月中にエクスポータがおおよそ動くようにしたい。
  • GUI書くの面倒くさい。

  • 配布物まとめ

    Mayaスクリプト
    ポリゴンの平面化 / 法線の設定ツール
    ・平面を定義して柔軟にポリゴンを平面上に配置する事が出来ます。
    ・ポリゴンから法線を取得して簡単に他の頂点へ設定する事が出来ます。

    ポリゴンキャップを閉じる / 分割する
    ポリゴンキャップを簡単に分割 or 閉じることができます。

    画像ファイル形式バッチ変換ツール
    Maya付属コマンドラインツールを使ったスタンドアロンスクリプトです。
    ワンクリックで画像のバッチ変換ができます。

    移動・スケールツール カスタム軸設定
    移動、スケールマニュピレータのカスタム軸をエッジから設定することが出来るスクリプトです。
    ショートカットに設定して使用することを前提にしています。

    法線の平坦化
    選択したフェース境界の法線を平坦化して、フラットなソフトエッジを作成します。

    法線の合成ツール
    2つのメッシュの法線を好きな割合で合成することが出来ます。

    スキン済みメッシュの分割・結合ツール
    スムースバインド済みのメッシュを分割・結合する為のスクリプトです。
    おまけで非バインドメッシュをヒストリ無しで分割するスクリプトもあります。

    PMXIO for Maya
    MMD(MikuMikuDance)用モデルデータをMayaで読み書き可能にするスクリプトです。

    Mayaチュートリアル
    ハードエッジシェーダー作成
    シェーディングネットワークで、ハードエッジ部分をレンダリングする方法を説明しています。ベイクすることでテクスチャ作成に役立てる事ができます。


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