0

Maya で Python を使用する方法を理解しようとしています。Maya でシェルフを作成したかったのですが、そのシェルフをクリックすると、Python コードを含むファイルが実行されます。

まず、単純にsourcepython スクリプトを実行することはできないことがわかりました。このチュートリアルに従ったので、関数ができましたpsource()。私の棚では、私はただ呼び出すことができますpsource("myPythonScript")

私の問題はpsource()、Maya が最初にロードされたときに何らかの方法で登録する必要があることです。

これを行う方法はありますか?

4

4 に答える 4

2

Maya の起動シーケンスの一部として、呼び出されたファイルが実行userSetup.pyされます。そのファイル内で、標準の python コードに固執して、環境などをセットアップできます。

ドキュメント: http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/Python_Python_in_Maya.htm,topicNumber=d30e725143

2013年のdoccoですが、2011年、2012年も有効です。さらに遡っても正しいと思いますが、ここでは古いものは実行していません

例として、私の userSetup.py ファイルは次のようになります。

import sys

# import a separate pyscript dir - we keep the standard scriptdir for MEL
sys.path.append(r'C:/Users/tanantish/Documents/maya/2012-x64/pyscripts')

# odds on i'm going to want PyMEL loaded by default
# and we are going to try distinguish it from the old maya.cmds
# since the two since they're similar, but not the same.
# from pymel.core import *
import pymel.core as pm

# and we might as well get maya.cmds in for testing..
import maya.cmds as mc

# import local toolpack
import tantools

(@jdi のコメントに従って、userSetup.py をキャップアウトするように編集)

于 2012-10-05T11:41:17.953 に答える
2

関数を呼び出す前に、ボタンを使用して Python モジュールをインポートすることをお勧めします。スクリプトが maya/scripts/tep.py にあると仮定すると、ボタンは次のようになります。

import tep
tep.psource()

スクリプトを変更して、ボタンを押すたびに新しいバージョンを実行し続けたい場合は、次のようにします。

import tep
reload(tep)
tep.psource()

また、Maya の起動時にモジュールをロードする場合は、maya/scripts ディレクトリに userSetup.py という名前のファイルを作成し、次のようにします。

import tep

次に、ボタンは次のように簡単に実行できます。

tep.psource()

または...

reload(tep)
tep.psource()
于 2011-08-30T14:37:12.877 に答える
0

Maya のどのバージョンを実行していますか? 8.5 以降の場合、Maya には python が組み込まれています。ローカルの Maya スクリプト ディレクトリに配置したすべての python スクリプトは、自動的に読み込まれます。スクリプト エディター ソース内で Python スクリプトを実行できます。

自動的に実行するには:

  1. myDocs\maya\mayaVersion\scripts に userSetup.mel ファイルを作成します。
  2. userSetup 内で、次の構文を使用してスクリプトをインポートおよび実行します。
python("from package import module");
python("module.method(\"passedVar1\", \"passedVar2\")");

それが役立つことを願っています

PS 同じ構文がシェルフ ボタンにも適用されます。コードが見つかるように、Maya の Python パスが設定されていることを確認する必要があります。ローカル スクリプト ディレクトリは既に含まれています.....

于 2010-09-09T21:53:26.813 に答える
-2

使うのが好き

exec(open('c:\ whatever \ whatever \ scriptname.py'))

それがあなたのために働くかどうか見てください!:)

于 2010-08-22T20:56:49.420 に答える