2020-06-17

Communicating to Maya via Python


Houdini から Maya に Python 経由でコマンドを送る方法。正直なところ、以下のことだけをやるのであれば、 Houdini である必然性はあまりなく、普通の Python シェルからやっても同じ。



使用したビルド: Houdini 18.0.499 (どのバージョンでも同じ)
Maya 2018 および 2019 (どちらも同じ)

準備

  • 該当する Houdini および Maya をインストール。
  • 以下だけであれば、Houdini Engine for Maya プラグインは不要。
  • PYTHONPATH に追加パス設定も不要。
  • 同一PC 上で行うのであれば、ファイアウォールへのポート追加も不要のはず (Windows 10)。

手順

  1. Maya を起動。
  2. スクリプトエディタ (Python) を開き、以下のコマンドを実行。
    import maya.cmds as cmds
    cmds.commandPort(name=':8888', sourceType="python")
      これで Maya にポート8888 経由で Python コマンドを送ることが可能になる。sourceType を指定しないと MEL コマンドが期待される。
  3. Houdini を起動し、Windows->Python Source Editor を開き、上の部分に以下のスクリプトをペースト。
    import socket
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('localhost', 8888))
    client.sendall("import maya.cmds as cmds;cmds.polyCube();")
    client.close()
  4. Apply をクリックしてコマンドを実行。
      Maya に pCube1 が出来るはず。もしくは Python Shell を開き、一行ずつ実行しても良い。
コマンド実行時に
// Error: line 1: Cannot find procedure "import". //
と出たら、ほぼ間違いなく commandPort 実行時に sourceType が指定されておらず MEL として解釈されている。
おしまい。

0 件のコメント:

コメントを投稿