投稿

ラベル(Python)が付いた投稿を表示しています

【Pymel備忘録】ワールド空間上で一行で同じ位置にスナップ&スケールさせるPymel

pm.PyNode(targetObj).setMatrix( pm.PyNode(sourceObj).getMatrix( worldSpace = True), worldSpace = True ) ワールド行列同士でやり取りするので、一行のPymelでスナップ可能

【Pymel備忘録】UIからコマンドを実行する際はpm.Callbackでくるむ

pymel(Maya)は仕様上UIのコマンドに他のUIを引数として引っ張ってこようとすると、ローカル変数になっているため、値にアクセスできなくなる。 そのため、コマンドはpm.Callbackを使ってくるんであげると、他のUIにアクセスできるようになる。 uiDictがUIの変数を辞書としてまとめたものとして pm.button(refreshButton,e = True,c = 'testClass(uiDict)') ↓ pm.button(refreshButton,e = True,c = pm.Callback(testClass,uiDict)) こういう形に書き換えると機能するようになる。

【Python備忘録】参照渡し

OpenMayaを勉強しているときやMotionBuilderSDKを書いているときに確かに参照渡ししているがあまり疑問に思っていなかった。 どういうときに値渡しで、どういうとき参照渡しになっているのか、ふと疑問に思ったので調べてみた。 http://qiita.com/urakarin/items/1d6e0e76bffb9297606e http://note.crohaco.net/2014/python-argument-intro/ Pythonは値渡しが基本で、たまに参照渡ししているのかと思っていたが、実は全て参照渡ししていたらしい。 確かに変な挙動するときがあったがそのせいか。。。 ちなみにOpenMaya Python ApiとMotionBuilderSDKは参照渡し全開なので、Maya cmds Pythonライブラリくらいしか触ったことのないTD、TAの人がこのあたりをまともに触れないのはそのせいなのではと思った。 OpenMaya Python ApiもMotionBuilderSDKも見た目上Pythonだけど中身はC++で参照渡しの引数ばっかり使ってるから。。。