2018年5月26日土曜日

namespaceを指定してFBXインポート

手動で行う分には問題なく行える操作ですが、スクリプトで実行しようとしたとき、若干はまりポイントだと思うので、メモを。
以下ソース

fileコマンドからインポートした時、namespaceを指定しても無反応。
カレントネームスペースを設定したうえでインポートするところがポイント。

2018年5月17日木曜日

Maya2017 systemからフォルダを開くと無限ループで落ちるMayaバグ

無印Maya2017では起こらなかったのですが、Maya2017 update4で以下ソースを実行すると、落ちます。

systemからエクスプローラーでダイアログを開こうとすると、なぜか処理がconfirmDialogのところへ戻って、以下無限ループ。
キャンセルなどして、systemの処理をスキップしようとすると、Mayaが固まって落ちました。

処理をpythonに逃がして対応できないかと模索したところ、
os.startfileの処理では、同様の結果となり、Mayaが落ちました。
しかし、subprocess.popenから処理を行ったところ、無事にクラッシュを回避できました。(以下ソース)

subprocessとos、melのsystemの大きな違いは、既定値でshellへ処理を飛ばすかどうか。
subprocessは既定ではshellで処理をしなかったはずなので、そのあたりに原因があるかも。

なお、最新のMaya2017 update5で発生するかどうかは未検証。 後日もう少し探ってみることにする。

2018年5月6日日曜日

OpenMaya:頂点処理の速度比較

以前海外の記述で見つけた記述を参考に、選択頂点で、設定値より近接している頂点の検索処理を、OpenMayaとmayaPythonで比較してみました。

処理内容はどちらも
①選択頂点の座標を取得
②openMayaのMVectorクラスを使って閾値以上近接している頂点を検索
③エラーがあればリストに格納して返す

以下ソース
mayaPython
openMaya

で、結果。
mayaPythonの結果: elapsed_time:1.26999998093[sec]
openMayaの結果: elapsed_time:0.103000164032[sec]

うーん! これだけで10倍以上の処理速度の差が。
 ソースはもっと洗練できると思う。 もっと早くなるんじゃないだろか。
参考;
http://jensvhansen.com/fastest-way-to-query-vertex-position-in-maya/
https://boomrigs.com/blog/2016/1/12/how-to-get-mesh-vertex-position-through-maya-api