2012/03/28

[pymel] pymel.core.language が熱い!

今回はタイトルの通り、pymel.core.languageモジュールが熱い話。
全体的に取得や編集がまどろっこしいのがちゃっちゃか出来てすばらしいです。


pymel.core.languageのドキュメントはこちら
pymel.core.language — PyMEL v1.0.3 documentation

今回も以下の要領でpymelをインポートしている前提です。
import pymel.core as pm

■pymel.core.language.Mel
これのおかげで、evalを使いたいがためにわざわざmaya.melをインポートしなくて済みます
たまにあるんですよ、cmdsやpymelできちんと返り値が来なくてmelを使わざるを得ない時が。。
というかmaya.melってeval以外に何か使い道あるんでしょうか??
pm.mel.eval('melコマンド')

■pymel.core.language.Env
playbackOptionsでクエリしたり、currentTimeでセットしたりがもっとスマートに!
#最初のフレーム
pm.Env().getMinTime()
pm.Env().setMinTime(値)

#最後のフレーム
pm.Env().getMaxTime()
pm.Env().setMaxTime(値)

#現在のフレーム
pm.Env().getTime()
pm.Env().setTime(値)
レンダーによく必要になる情報も簡単に取れます
pm.Env().sceneName()
pm.Env().user()
pm.Env().host()

■pymel.core.language.OptionVarDict / .OptionVarList
あのめんどくさいoptionVarが辞書形式で取り扱えます!すばらしいですね!!
まぁprefsにゴミが溜まるので極力使わないようにしてるですけど
pm.optionVar['key'] = 'value'

print pm.optionVar['key']
#>>> value


なんかこの構文もさもさしてるなぁってときに、何か良いコマンドないかなーって
ドキュメント漁ってるのすごく楽しいです。
基本的に、query、editに代わるget~、set~は大抵ある気がします。