過去2回のセミナーの再配信が終了しました。
ご視聴いただいたみなさま、大変ありがとうございました!
引き続きMaya Pythonを学習される方にとって役立つ情報を発信していきますので
今後ともどうぞよろしくお願いいたします。

ツール作成の全体フローを最短距離で体験できます。スクリプト未経験の方におすすめ!
https://tutorials.cgworld.jp/set/2050

Mayaのオペレーションの自動化について徹底解説。様々な操作を自動化できるようになります
https://tutorials.cgworld.jp/set/2041
こんにちは!ビーバー@ゲーム業界歴約20年python勉強中 です。
初心者のためのヘルプのヘルプシリーズ!「ls」コマンドをカンタンに解説します。複雑なフラグはおいといて、最初に使うところだけを厳選してお届け☆
フラグの使い方の例と、スクリプトの実行結果を画像でのせているので、ながめるだけでコマンドのイメージをつかんでいただけると思います。
専門用語をなるべくつかわず文章をコンパクトに、しているのでサクッと読めますよ(約3分!)
それではどうぞ~!

※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。
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 はバッチリだ!また読みにきてくれたまえい~☆
はじめてプログラミングを勉強するとき、エラーはつきものですよね。
何時間もスクリプトが動かないこともしばしば。。
そんな時、くわしい人に教えてもらいたい、と思うことはありませんか?
侍テラコヤは、はじめてpythonを学習する方にピッタリのサービスです。
サブスク型オンラインスクールで、月¥2980~の良心的なお値段!
現役エンジニアのサポートが充実しており、
オンラインのマンツーマンレッスンとQ&A掲示板で即座に悩みを解決することができます。
本サイトの【まとめ】 maya python 基礎 入門!では、
10回シリーズでmaya pythonの基礎が習得できるコンテンツを発信しています。
- ちまたのスクリプトを読んで、内容を理解したい
- mayaのスクリプトリファレンスの読み方を習得したい
- 自分で簡単なツールを書きたい
- 基礎的なmayaコマンドをpythonで使えるようになりたい
など、mayaでpython基礎を身に着けたい方は、ぜひご活用ください♪


コメント