多くは、あなたが何をする必要があるかによって異なります。
Maya 機能にアクセスできるスクリプトを実行する場合は、Kartik の回答のように Maya スタンドアロン インスタンスを実行できます。Maya と同じフォルダにインストールされているmayapy
バイナリは Maya Python インタープリタです。Mayapy を実行するのと同じ方法で直接実行できますpython.exe
。Mayapy には、通常の Python インタープリタと同じコマンド フラグがあります。
mayapy セッション内で呼び出すとstandalone.initialize()
、Maya セッションが実行されます。いくつかの例外を除いて、通常の Maya セッションのスクリプト タブ内で実行されているかのようです。
起動時に Maya に特定のスクリプトを強制的に実行させるに-c
は、python の場合と同様にフラグを呼び出すことができます。たとえば、maya を起動して、空のシーンの内容を次のように出力mayapy.exe
できます (注: はパス上にあると想定しています。maya の bin ディレクトリに CD を実行することもできます)。
mayapy -c 'import maya.standalone; maya.standalone.initialize(); import maya.cmds as cmds; print cmds.ls()'
>>> [u'time1', u'sequenceManager1', u'renderPartition', u'renderGlobalsList1', u'defaultLightList1', u'defaultShaderList1', u'postProcessList1', u'defaultRenderUtilityList1', u'defaultRenderingList1', u'lightList1', u'defaultTextureList1', u'lambert1', u'particleCloud1', u'initialShadingGroup', u'initialParticleSE', u'initialMaterialInfo', u'shaderGlow1', u'dof1', u'defaultRenderGlobals', u'defaultRenderQuality', u'defaultResolution', u'defaultLightSet', u'defaultObjectSet', u'defaultViewColorManager', u'hardwareRenderGlobals', u'hardwareRenderingGlobals', u'characterPartition', u'defaultHardwareRenderGlobals', u'lightLinker1', u'persp', u'perspShape', u'top', u'topShape', u'front', u'frontShape', u'side', u'sideShape', u'hyperGraphInfo', u'hyperGraphLayout', u'globalCacheControl', u'brush1', u'strokeGlobals', u'ikSystem', u'layerManager', u'defaultLayer', u'renderLayerManager', u'defaultRenderLayer']
-i フラグを使用して、mayapy をインタラクティブに実行することができます。これは、実質的に Maya のコマンド ライン バージョンです。これにより、mayapy が起動し、コマンド プロンプトが表示されます。
mayapy -i -c \"import maya.standalone; maya.standalone.initialize()\""
これにより、スタンドアロンが再び開始されますが、コマンドを実行して終了する代わりにセッションが続行されます。
スクリプト ファイルを実行するには、ファイルを引数として渡すだけです。standalone.initalize()
その場合、Kartik が提案するように実行し、スクリプトに含めたいと思います。次に、それを呼び出します
mayapy path/to/script.py
userSetup を抑制するには、と呼ばれる環境変数を作成し、 MAYA_SKIP_USERSETUP_PY
それをゼロ以外の値に設定します。これにより、usersetup を実行せずに Maya がロードされます。mayap を実行する前に、環境変数またはパス変数を変更することもできます。たとえば、次の 2 つの bash エイリアスを使用して、2 つの異なる環境から mayapys を実行できます (Windows では、EXPORT の代わりに SET を使用して環境変数を変更します)。
alias mp_zip="export MAYA_DEV=;mayapy -i -c \"import maya.standalone; maya.standalone.initialize()\""
alias mp_std="export MAYA_DEV=C:/UL/tools/python/ulmaya;export ZOMBUILD='C:/ul/tools/python/dist/ulmaya.zip';mayapy -i -c \"import maya.standalone; maya.standalone.initialize()\""
このブログ投稿には、必要に応じてさまざまな環境で Mayapy インスタンスを起動するための Python モジュールが含まれています。
別の環境から実行中の Maya と対話したい場合、たとえば、ハンドヘルド デバイスまたは C プログラムからリモート コントロールしようとしている場合、Maya commandPortを使用して、TCP 経由で単純な要求を処理できます。より複雑な状況では、このような独自の基本的なリモーティング サービスをセットアップするか、 RPyCやZeroMQなどの既存の python RPC モジュールを使用できます。