【覚書】maya python入門
一から説明用にmayaMelではなく、mayaPythonの資料を書く必要があったので
メモに残して行こうかと思います。
まずはSIでも同じだが、色々なサイトをめぐりました。
SIからの移行に関しても色々書いて頂いているダイキンさんのサイト
http://www.comtec.daikin.co.jp/DC/UsersNotes/index.html
MELで大変お世話になったサイト
http://www.not-enough.org/abe/manual/maya-python/introduction-python.html
上記のサイトは非常に分かりやすいので
それに沿って、簡易なものを一個一個実行して覚えていくスタイルにしてみます。
あ、あとは英語ですがデジタルチューターズもいい感じですね。
さて前置きはこの程度にしておいて
さっそくコード書いていきます。
今回Python自体の説明については省ける所は
ガンガン省いていきます。
※時間が無いので…
ではまずは選択からですね。
これが無いと始まりませんネ。
import maya.cmds as cmds cmds.select() oSel = cmds.ls(sl=True) print oSel
非常に簡単なコードです。
選択した物をリストにして、プリントしているだけですね。
SI的な感覚だと
import maya.cmds as cmds oSel = cmds.select() print oSel(0)
とかでできねぇのかよ!!!
とか思うんですが、MAYAさんは一度リストで取得する必要があるみたいです。
「oSel = cmds.ls(sl=True)」
ここですね。「ls」リストに「sl」選択を格納
としないとダメなんですね…
ちなみに
「Select」の引数については公式にやたらと羅列されておりますね。
http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/select.html
ダイキンさんのサイトでも紹介してましたが、階層以下ノード全て(トランス、シェイプ含む)
選択するにはこんな感じにすればいいみたいです。
import maya.cmds as cmds cmds.select(hierarchy=True) oSel = cmds.ls(sl=True) print oSel
Selectの引数に「Hierarchy」(階層)の引数をONにするだけですね。
これは便利ですね。
ただこれだと全て選ばれるので、微妙に不便です。
なので、引数のところに色々条件を加えてみました。
トランスフォームノードだけ
import maya.cmds as cmds cmds.select(cmds.ls(selection=True, dagObjects=True, type='transform')) oSel = cmds.ls(sl=True) print oSel
シェイプノードだけ
import maya.cmds as cmds
cmds.select(cmds.ls(selection=True, dagObjects=True, type='shape'))
oSel = cmds.ls(sl=True)
print oSel
単純にSelectの引数にDagフラグを立て、タイプを絞っただけです。
こんな形でSIのフィルタや、Typeに近い感じで選択の取得ができます。
ふぅ。。
第一回目はとりあえずここまで。
次は特に考えてないので、お題が出れば作成してみたいと思います。
以上です。