[pymel] 階層の一番上のノードを取得する

この間Twitterで質問して教えてもらったネタを書いておきます。

たとえばこんな感じで、ある階層のどこかのノードを選択していたとします。
この画像だと一番最下層ですが、どこでも構いません。

ここからルート(この場合group10)を選びたいとき、こんな感じで書きます。

from pymel.core import *
select(selected()[0].root(), r=True)

するとgroup10が呼ばれます。
ていうか名前適当でサーセン。何も考えてませんでした。

ちなみにこれは、DAGNode.root()というメソッドがあり、それを呼んでいます。
なのでDAGNodeではないもの(ざっくりいうと階層構造にかかわらないDGノードなど)には
このコードは実行出来ません。

ちなみにこのroot()関数ですが、中ではフルパスを取得して文字列をぶったぎって
一番頭のトークンを取るというようなことをやっているようですw
なので自分で書いちゃっても同じなのですが、僕は使えるものは出来る限り使いたいと思ってます。

以上小ネタでした。

「[pymel] 階層の一番上のノードを取得する」への2件のフィードバック

  1. こんにちわ~

     色々便利メソッドがあってうれしいですよね。
     自前で作ると、何かのスクリプトを他所で使うときにそれらをライブラリ化して一緒に持ち歩かなきゃいけないけど、はじめから入ってればそういう面倒がなくなるのがいいです。

     いい情報ありがとうございます、活用させてもらいます!

  2. >Eskeさん
    どもです:D
    いやー、素晴らしいですね。現場で作られた感がひしひし伝わってきます。
    自前で出来たら自分のコーディングの細かい癖とかも加味して
    好き勝手やれるので、それはそれで素敵なのですが、おっしゃる通り持ち運んだりとか面倒ですし、
    会社によってはその環境で使えるのか、使わせてもらえるのか、とか、
    あれこれ考えないといけませんしね。面倒です:(
     
    情報共有していきましょう!! :)

コメントを残す

メールアドレスが公開されることはありません。