class cymel.core.cyobjects.cyobject.CyObject

Inheritance diagram of CyObject
class cymel.core.cyobjects.cyobject.CyObject(src)

ベースクラス: object

Mayaラッパーオブジェクトの抽象基底クラス。

ラッパークラスは、大きく分けて NodePlug とがある。

CyObject コンストラクタに、 シーン中の既存ノードやプラグを特定するための名前や Python API 2.0 オブジェクトを指定することで、 適切なクラスのインスタンスを得ることができる。

ノードクラスはノードタイプごとに用意されているか自動生成される。 プラグクラスは、システムで用意しているのは1種類だけである。 いずれも、クラスを継承してカスタムクラスを作ることができる。

ノードクラスの場合、 nodetypes.registerNodeClass でシステムに登録すると便利である。

プラグクラスの場合、 CyObject.setGlobalPlugClassNode.setPlugClass を用いて、一時的に使用するクラスを指定すると便利である。

Methods:

byUUID(val[, candidates, py])

UUID からノードリストを得る。

checkValid()

内部ハンドルの有効性チェック。無効なら CymelInvalidHandle エラーとなる。

checktype(obj)

指定したオブジェクトがクラスにマッチするかチェックする。

globalPlugClass()

グローバル設定のプラグクラスを得る。

internalData()

内部データを返す。

isAlive()

内部ハンドルがメモリ上に存在しているかどうかを得る。

isValid()

内部ハンドルが正常な状態かどうかを得る。

ls(*args, **kwargs)

ls コマンドの結果をクラスに適合するものに限定してオブジェクトとして得る。

name()

オブジェクトのユニーク名を得る。

name_()

checkValid を省略して、オブジェクトのユニーク名を得る。

newObject(data)

内部データとともにインスタンスを生成する。

node()

ノードを得る。

setGlobalPlugClass([pcls])

グローバル設定のプラグクラスをセットする。

Attributes:

CLASS_TYPE = 0

ラッパークラスの種類を表す (0=CyObject, 1=Node, 2=Plug, -1=ObjectRef)

Methods Details:

classmethod byUUID(val, candidates=(), py=False)

UUID からノードリストを得る。

重複も起こり得るので、戻り値はリストである。

パラメータ:
  • val (UUID) -- 単一の UUID かそのリスト。 個々の UUID の型は UUIDstr を指定できる。

  • candidates (iterable) -- py=True の場合の候補を事前に絞りたい場合に指定する。

  • py (bool) -- Maya 標準機能ではなく uuid というアトリビュートに保存されているものから得る。 2016 未満では常に True 扱いとなる。

戻り値の型:

list

checkValid()

内部ハンドルの有効性チェック。無効なら CymelInvalidHandle エラーとなる。

classmethod checktype(obj)

指定したオブジェクトがクラスにマッチするかチェックする。

CyObject 派生オブジェクトを指定した場合、 マッチすればそれ自身、 マッチしない場合は None が返される。

それ以外の値(文字列や Python API 2.0 オブジェクトなど CyObject コンストラクタに指定可能なもの)を指定した場合、 マッチすれば適切な型の CyObject 派生オブジェクト、 マッチしない場合は None が返される。

パラメータ:

obj -- チェックするオブジェクト。

戻り値の型:

CyObject or None

static globalPlugClass()

グローバル設定のプラグクラスを得る。

これは、 setGlobalPlugClass で変更可能。

戻り値の型:

type

internalData()

内部データを返す。

派生クラスで内部データを拡張する場合にオーバーライドする。 その場合、 newObject クラスメソッドもオーバーライドし、 拡張に対応させる。

内部データはブラックボックスであるものとし、 拡張データでは基底のデータも内包させる必要がある。

isAlive()

内部ハンドルがメモリ上に存在しているかどうかを得る。

オブジェクトが削除されていても、undo可能な状態で残っていれば真となる。

戻り値の型:

bool

isValid()

内部ハンドルが正常な状態かどうかを得る。

isAlive が真でも、オブジェクトが削除されている場合は無効と判断される。

戻り値の型:

bool

classmethod ls(*args, **kwargs)

ls コマンドの結果をクラスに適合するものに限定してオブジェクトとして得る。

戻り値の型:

list

name()

オブジェクトのユニーク名を得る。

オブジェクトの種類に応じて、 ノード名、DAGパーシャルパス名、それらを含むプラグ名などが得られる。

戻り値の型:

str

name_()

checkValid を省略して、オブジェクトのユニーク名を得る。

オブジェクトの種類に応じて、 ノード名、DAGパーシャルパス名、それらを含むプラグ名などが得られる。

戻り値の型:

str

classmethod newObject(data)

内部データとともにインスタンスを生成する。

内部データはブラックボックスであるものとし、 本メソッドをオーバーライドする場合も、 基底メソッドを呼び出して処理を完遂させなければならない。

内部データを拡張する場合は internalData も オーバーライドすること。

パラメータ:
  • cls (type) -- 生成するインスタンスのクラス。

  • data -- インスタンスにセットする内部データ。

戻り値の型:

指定クラス

node()

ノードを得る。

戻り値の型:

Node 派生クラス

static setGlobalPlugClass(pcls=None)

グローバル設定のプラグクラスをセットする。

パラメータ:

cls (type) -- Plug 派生クラス。 None を指定するとクリアする。