ON-BLOG

CGのこと、あれこれ書いてます。

【覚書】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

非常に簡単なコードです。
選択した物をリストにして、プリントしているだけですね。
f:id:tommy_on:20150607000508p:plain



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

f:id:tommy_on:20150607000603p:plain

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

f:id:tommy_on:20150607000642p:plain

シェイプノードだけ

import maya.cmds as cmds
cmds.select(cmds.ls(selection=True, dagObjects=True, type='shape'))
oSel = cmds.ls(sl=True)
print oSel

f:id:tommy_on:20150607000703p:plain

単純にSelectの引数にDagフラグを立て、タイプを絞っただけです。
こんな形でSIのフィルタや、Typeに近い感じで選択の取得ができます。

ふぅ。。

第一回目はとりあえずここまで。
次は特に考えてないので、お題が出れば作成してみたいと思います。

以上です。