私はMaya IndieというMayaの個人向けライセンスを使って、自宅のノートPCでちょこちょこ練習してます😊「自宅でMayaを勉強する環境がない」と困っている方の参考になればうれしいです。
👉 Maya Indieの紹介記事
こんにちは!ビーバー@ゲーム業界歴約20年python勉強中 です。
初心者のためのヘルプのヘルプシリーズ!「ls」コマンドをカンタンに解説します。複雑なフラグはおいといて、最初に使うところだけを厳選してお届け☆
フラグの使い方の例と、スクリプトの実行結果を画像でのせているので、ながめるだけでコマンドのイメージをつかんでいただけると思います。
専門用語をなるべくつかわず文章をコンパクトに、しているのでサクッと読めますよ(約3分!)
それではどうぞ~!
>> はじめての方向けMayaPythonの勉強方法はこちら!
※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。
ls とは?
シーンにあるノード名をとってくるコマンドです。

「名前」だよ!選択するわけじゃないよ~
かんたんな使い方
シーンのノードをとってくる
cmds.ls()

とってきた名前は、カッコ [ ] でかこまれたリストになって返ってくるよ!

フラグをつけないと、普段気にしないシーンの中のノード全部をとってきちゃうんだ。
しぼりこみ方を紹介するね!
選択したものだけとってくる
cmds.ls( selection=True )

selectionフラグを使うと、選択したものの名前だけとれちゃいます!

フラグをオンにするには、かっこ()のなかに、selection=True って書いたらOK!
選択した階層以下だけとってくる
cmds.ls( selection=True, dagObjects=True )

dagObjects フラグと selection をセットで使うと、
選択したものの階層以下全部がとれます。

dagObjectsフラグは「指定したノード以下のDAGオブジェクトをとってくる」んだよ

だぐ って何??

シーンを構成するノードのことだよ。
普段アウトライナで見えているノードはたいていDAGだ!

特定のタイプのノードだけとってくる
cmds.ls( selection=True, dagObjects=True, type="transform" )

さらに、、ノードのタイプを指定してしぼりこめます!
図では、トランスフォームノードだけとってみています。

かっこ()の中に、type=”タイプ名” って書くとそのタイプのノードだけをとれるんだ!

わあ!それは便利だね。ただ、、タイプ名ってどう書けばいいのかわからないよ。。
タイプ名をどうやってしらべればいいの?
アトリビュートエディタから
ノードを選ぶと、アトリビュートエディタの「名前入力の左側」にタイプ名が書いてあります。


赤枠の部分ね!これはpCube4のシェイプ(メッシュ)ノードを選択したところ。
ls で調べる
cmds.ls( selection=True, showType=True )

showTypeフラグを使うと、オブジェクト名とタイプ名が返ってきます。

ls コマンドはいくつかフラグを組み合わせてフィルタできるんだね!

フラグを紹介!(抜粋)

maya pythonを始めたての人向けに、使いやすいフラグを抜粋して紹介します!

ほかにもまだまだあるから、もっと詳しく知りたい人は公式のヘルプを見てみてね!
assemblies
最上位のDAGノードをとってきます。
cmds.ls( assemblies=True )

cameras
カメラのシェイプをとります。
cmds.ls( cameras=True )

dagObjects
このフラグは「指定したノード以下のDAGオブジェクトをとってくる」ことができます。
selectionとセットで使うと、選択したものの階層以下をとれますよ!
cmds.ls( selection=True, dagObjects=True )

geometry
ジオメトリのシェイプだけをとってきます。
cmds.ls( geometry=True )

intermediateObjects
中間ノードをとってきます、スキンバインドした時の中間ノードなんかをとることができます。
cmds.ls( selection=True, dag=True, intermediateObjects=True )


図ではselectionとdagフラグを一緒に使って、階層以下の中間ノードだけをとっているよ!
invisible
非表示のDAGノードがとれます。
cmds.ls( selection=True, dag=True, invisible=True )

long
ノードのパスをとってきます。
cmds.ls( selection=True, long=True )


同じ名前のノードが2つ以上シーンにあるときなんかは便利だね!
orderedSelection
選択した順にリストを作ってほしいときに使います。
cmds.ls( orderedSelection=True )


図は、pCube2,1の順で選択して、スクリプトを実行したところだよ!
結果も pCube2,pCube1 の順になっているね。
orderedSelection フラグを使うときは、
プリファレンス>設定>選択項目>選択順のトラック に チェックをいれておきましょう。

selection
選択したものをとってきます。
cmds.ls( selection=True )

shapes
シェイプノードだけをとることができます。
cmds.ls( selection=True, dagObjects=True, shapes=True )


selectionとdagフラグを一緒につかうと、
「選択したものの階層以下のシェイプだけ」をとることができるよ!

shortNames
アトリビューのトショートネームを調べます。
cmds.ls( "pCube1.translateX", shortNames=True )

showType
タイプ名を調べます。
オブジェクト名の後にタイプがついてかえってきます。
cmds.ls( "pCube1.translateX", shortNames=True )

transforms
トランスフォームノードだけとることができます。
cmds.ls( selection=True, dagObjects=True, transforms=True )


selectionとdagフラグを一緒につかって、
「選択したものの階層以下のトランスノードだけ」をとっているよ!
type
指定したタイプだけとってきます。
cmds.ls( type="mesh" )


タイプ名はアトリビュートエディタから調べるか、
showTypeフラグで調べてみよう!

まとめ
ls とは?
シーンにあるノード名をとってくるコマンドです
- シーン全体のノードをとるとき
cmds.ls() - 選択したものだけとってくる
cmds.ls(selection=True) - 選択した階層以下だけとってくる
cmds.ls(selection=True,dagObjects=True)
- 特定のタイプのノードだけとってくるcmds.ls(selection=True,dagObjects=True,type=”transform”)

とってきた名前は、カッコ[ ] でかこまれたリストになって返ってくるよ!
- アトリビュートエディタの名前入力欄の左に表示されているよ!
- ls でも調べられるよ!
cmds.ls(selection=True,showType=True)

selection, dag, typeだけでもいろんなことができそうだね!
- assemblies
最上位のDAGノードをとる - cameras
カメラをとってくるよ - dagObjects
指定したノード以下のDAGオブジェクトをとってくるよ - geometry
ジオメトリのシェイプだけをとるよ - intermediateObjects
中間ノードをとるよ - invisible
非表示のDAGノードをとるよ。 - long
ノードのパスをとるよ - orderedSelection
選択した順でリストを作ってほしいときにつかおう - selection
選択したものをとるよ - shapes
シェイプをとりたいとき - shortNames
アトリビュートのショートネームを調べられる - showType(st)
タイプ名を調べるとき使う - transforms
トランスフォームノードだけとりたいとき - type
指定したタイプだけとるよ

OK!これで ls はバッチリだ!また読みにきてくれたまえい~☆
😊 MayaでPythonを学びたい方へ
「ツールを作ってみたいけど、何から始めたらいいんだろう?」そんな方のために、超初心者向けのチュートリアル全10回をまとめました👇
https://kimstation.com/maya-python-summary/
こんなことが、最短で身につきます👇
- Pythonの知識ゼロから始められる
- シンプルなUIつきのツールを自分で書けるようになる
- Mayaコマンドの基礎や、ツールづくりの基本がわかる
「ツールづくりに挑戦したい」という方に向けて、必要最低限の知識だけをしぼってやさしくまとめてます😊ツールを自分で作れるようになると、すごく楽しいですよ~!

コメント