Mayaでリモートデバックする方法

pip,Tips,Tutorial,Python,Maya

この記事はMaya Advent Calendar 2022の9日目の記事です

この記事ではVSCodeを使ってMayaでリモートデバックする方法を紹介します
PyCharmを使っている人もリモートデバックできるそうですが有料版である必要があるのと詳しくは知りません

この記事ではMayaで外部のPython パッケージを利用するで設定した環境を再利用しています
詳しくはそちらをご確認ください

debugpyをpipインストールする

コマンドプロンプトでdebugpyをpipインストールします
>pip install debugpy -t D:\workspace\site-packages

vscodeの設定をする

VSCodeでPYTHONPATHが通っているフォルダを含んだディレクトリフォルダを開きます
今回は..\Documents\maya\2019を開きました

launch.jsonを作成しましょう

UN AND DEBUG:RUNからcreate a lauch.json fileを押します

DebuggerはPythonを選択してください

デバック構成はリモート接続を選択してください

IPアドレス127.0.0.1を指定します

ポート番号は任意の値で今回はデフォルトの5678を指定しています

pathMappingsjustMyCodeはいらないので下のコードのように整理してください
nameはわかりやすい名前にすることをお勧めします
今回はそのままです

{
    "configurations": [
        {
            "name": "Python: リモート接続",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "127.0.0.1",
                "port": 5678
            }
        }
    ]
}

userSetup.pyを作成し、debugpy.configureにmayapyのpathの指定、debugpy.listenにはポート番号を指定してください

import debugpy
debugpy.configure(python="C:/Program Files/Autodesk/Maya2019/bin/mayapy.exe")
debugpy.listen(5678)

テスト用のpythonファイルを用意し、ブレークポイントを張り、F5でMayaとアタッチします

import maya.cmds as cmds
for obj in cmds.ls(sl=True):
    obj


画像の通りになっていればアタッチができているはずです

Mayaで適当にオブジェクトを作成して、選択状態にし、ScriptEditor上でコードを実行します

import debug_test_script
reload(debug_test_script)

左側のタブのVARIABLESに選択中のオブジェクト名が表示されています

以上がMayaでリモートデバックする方法でした


明日は @9bozさんのcopySkinWeightsを少し便利にです