pymelで遊ぼう 2 値の取得・セット・コネクション

前回に引き続きpymelさんで遊んでみました。

あれからHelpを読み込んでて気づいたんですが、
各コマンドにmaya.cmds open.maya のどれからの派生か書いてあったんですね。

値の取得・セット・コネクション

maya.cmds比で大きく変わってるのが タイトルの通り取得・セット・コネクション
mayaの値習得は getAttr セットは setAttr コネクションは connectAttr というのが、melとmaya.cmdsの共通事項だったのですが
pymelの場合はさらに拡張され、より手軽になってます。

取得とセットは
オブジェクト.アトリビュート.get()
オブジェクト.アトリビュート.set(値)
オブジェクトで結果を取得したいときは、それぞれのメソッドを使用(get~メソッドが多数用意されているっぽい)

コネクションは
接続元 >> 接続先
または
接続元オブジェクト.アトリビュート.connect(接続先オブジェクト.アトリビュート)
ディスコネクトは
接続元 // 接続先
または
接続元オブジェクト.アトリビュート.disconnect(接続先オブジェクト.アトリビュート)

でできます。

取得とセットもさることながら、connectとdisconnectはかなりコマンドがコンパクトでわかりやすくなるので
これだけでもpymelつかう意味がありますね。
セットアップスクリプトとか書いてると、コネクションは多用するのでもうまさに俺得。

『.』の意味について

pymel というか python という言語を使う上で 『.』が何を意味するのかはとても重要です。
例文)
pm.polyCube(n=”pCube1″)[0].getShape().castsShadows.set(False)

あえてむちゃくちゃな例文。Cube作って、そのShapeノードのCastShadowにFalseをセットする コマンド。

やってる内容は、

testCube      = polyCube(n=”pCube1″)
shapeNode = testCube[0].getShape()
shapeNode.castsShadows.set(False)

コレと同じです。
Pythonの . は、 その手前で帰ってくるオブジェクトのメソッドを呼び出す という意味になります。

これは、pymelのコマンドに限らず、各種コマンドの結果に対してもできます。
覚えておくとなかなか便利ですが、やり過ぎるとよくわからんコードになりがちなのでご利用は計画的に└(┐Lε:)┘

コメントを残す

メールアドレスが公開されることはありません。


*