こんにちは!ビーバー@ゲーム業界歴約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 とは?
シーンにあるノード名をとってくるコマンドです
とってきた名前は、カッコ[ ] でかこまれたリストになって返ってくるよ!
selection, dag, typeだけでもいろんなことができそうだね!
OK!これで ls はバッチリだ!また読みにきてくれたまえい~☆
コメント