🤖

Maya Python API メモ

2024/04/03に公開

困ったらここを見る

https://download.autodesk.com/us/maya/2011help/API/main.html
https://help.autodesk.com/view/MAYAUL/2023/JPN/index.html?guid=Maya_SDK_Maya_API_introduction_html

クラスの種類

クラス 説明
MObjectクラス ノードやアトリビュート、コンポーネントなどの参照クラス
MGlobalクラス シーンのグローバルオブジェクトに対する関数を提供するクラス
MFn~クラス MObjectに対するハンドラを提供するクラス
MIt~クラス iterableなMFnクラス

https://help.autodesk.com/view/MAYAUL/2023/JPN/index.html?guid=Maya_SDK_Maya_API_introduction_Naming_Conventions_html

MObject

ノードやアトリビュート、コンポーネントなどのルートクラス。

MPlug

属性の接続部分を扱うMObjectのクラス

  • isConnected()
    接続の有無を返却する
  • isSource()
    ソースとして接続されているかどうかを返却する
  • isDestination()
    宛先として接続されているかどうかを返却する
  • isKeyable()
    キー設定可能かどうかを返却する
  • connectedTo(asDst:bool,asSrc:bool)
    接続されているプラグを検索する。引数はソースとして接続されているか、宛先として接続されているか
  • asMObject()
    プラグの属性の値を取得する。

MPlugArray

MPlugのリスト。pythonのリストのように扱ってもよさそう。

MGlobal

シーンのグローバルオブジェクトに対する関数を提供するクラス
windowに文字列を表示するMGlobal.displayInfo()や選択リストのハンドラを扱うsMGlobal.getActiveSelectionList()などがある。

MDataBlock

MSelectionList

選択リストのハンドラクラス

  • add(MObject)
    MObjectを追加する。
    Globalの選択リストには反映されないので注意。Globalに反映する場合、
    MGlobal.setActiveSelectionList(MSelectionList) を実行する。

MFnBase

全てのMFnクラスが継承するルートクラス

  • setObject(MObject)
    対応しているMObjectをセットする。セットされたオブジェクトは、MFnクラスを通じて操作できる。
  • Object()
    設定されているMObjectを返す。MObjectが設定されていない場合、エラーを返す。

MFnDependency Node

DependencyNodeのハンドラを提供するクラス

  • name()
    ノードの名前を返す。 データブロック の場合エラー。
  • create(ノードタイプ or id, ノード名="None")
    ノードを作成する。タイプと名前を引数にとる。
  • getConnections()
    コネクションをMPlugArray(list)の形式で返す。

MItSelectionList

MSelectionListをIterableにするクラス。初期時、MSelectionListを引数にとる。

使ってみる

https://gist.github.com/njmn/4b8a3f44ea233e8391de83acfd6f7baf

書き方は難しいけど、処理速度はcmdsと比べて早めかも。
あとはalias一覧をとってきたり、細かい処理ができるから書けるときに書く。

Discussion