【maya python】 lsをかんたん解説!

ls コマンド解説
過去セミナー再配信のお知らせ

過去2回のセミナーが期間限定でアンコール配信中です!
「MayaPython習得に苦しんだ過去の自分に教えてあげたい。。」調べてもわからなかったこと、教えて欲しかったことを、とことん詰め込みました。初心者の方はぜひご覧ください!

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

Mayaのオペレーションの自動化について徹底解説。様々な操作を自動化できるようになります
https://tutorials.cgworld.jp/set/2041

こんにちは!ビーバー@ゲーム業界歴約20年python勉強中 です。

初心者のためのヘルプのヘルプシリーズ!「ls」コマンドをカンタンに解説します。複雑なフラグはおいといて、最初に使うところだけを厳選してお届け☆

フラグの使い方の例と、スクリプトの実行結果を画像でのせているので、ながめるだけでコマンドのイメージをつかんでいただけると思います。

専門用語をなるべくつかわず文章をコンパクトに、しているのでサクッと読めますよ(約3分!)
それではどうぞ~!

>> Pythonの勉強方法を知りたい方はこちらをどうぞ

※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。

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 コマンドはいくつかフラグを組み合わせてフィルタできるんだね!

フラグを紹介!(抜粋)

flags

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学習するなら!

はじめてプログラミングを勉強するとき、エラーはつきものですよね。
何時間もスクリプトが動かないこともしばしば。。
そんな時、くわしい人に教えてもらいたい、と思うことはありませんか?

侍テラコヤは、はじめてpythonを学習する方にピッタリのサービスです。
サブスク型オンラインスクールで、月¥2980~の良心的なお値段!

現役エンジニアのサポートが充実しており、
オンラインのマンツーマンレッスンとQ&A掲示板で即座に悩みを解決することができます

maya python基礎

本サイトの【まとめ】 maya python 基礎 入門!では、
10回シリーズでmaya pythonの基礎が習得できるコンテンツを発信しています。

  • ちまたのスクリプトを読んで、内容を理解したい
  • mayaのスクリプトリファレンスの読み方を習得したい
  • 自分で簡単なツールを書きたい
  • 基礎的なmayaコマンドをpythonで使えるようになりたい

など、mayaでpython基礎を身に着けたい方は、ぜひご活用ください♪

コメント

タイトルとURLをコピーしました