スクリプトを使用してアトリビュートを修正する

アトリビュート スプレッドシート(Attribute Spreadsheet)(ウィンドウ > 一般エディタ > アトリビュート スプレッドシート(Windows > General Editors > Attribute Spread Sheet))を使用して、複数のアトリビュートを同時に修正することができます。

または、スクリプトを使用して行うこともできます。

次のでは、シーン内で選択したすべてのオブジェクトの可視性を無効にする MEL スクリプトの調査と使用方法を示します。

  1. 可視性(Visibility)アトリビュートの名前を照会します。

    アトリビュートを修正するには、アトリビュートの正確な名前を知っておく必要があります。

    オブジェクトを選択します。そのシェイプ ノード(たとえば pPlaneShape1)で、アトリビュート エディタ(Attribute Editor)オブジェクト ディスプレイ(Object Display)セクションを展開し、可視性(Visibility)アトリビュートを無効にします。

    アクションに関連付けられている MEL コマンドは、スクリプト エディタ(Script Editor)の上部ペインに表示されます。例:

    setAttr "pPlaneShape1.visibility" 0;

    このコマンドをスクリプトに含めると、ユーザ インタフェースを通して実行したのとまったく同じアクションを実行します。

  2. スクリプトに、シーン内の選択したすべてのオブジェクトのトランスフォーム ノードをリストします。
    string $nodes[] = `ls -selection`;
  3. ループを作成し、そのトランスフォーム ノードから各オブジェクトのシェイプ ノードを取得します。

    可視性アトリビュートはシェイプ ノードの一部であるため、最初にトランスフォーム ノードからシェイプ ノードを取得する必要があります。listRelatives コマンドを使用します。「選択したシェイプ ノードの名前はどのように調べられますか?」を参照してください。

  4. setAttr コマンドを使用して、各シェイプ ノードの可視性を 0 (ゼロ)に設定します。

    最終スクリプトは次のようになります。

    {
    //Lists the transform nodes of all selected objects
    string $nodes[] = `ls -selection`;
    
    for ($node in $nodes)
    {
    //Loop through each object and obtain its shape node
    string $shapes[] = `listRelatives -shapes $node`;
    
    //Set the visibility attribute of each shape node to 0
    //The shape node is saved to the 1st (or 0th) element of the $shape array
    setAttr ($shapes[0] + ".visibility") (0);
    }
    }
  5. カスタム スクリプトをシェルフに保存します。

      頻繁に実行する場合は、カスタム スクリプトをシェルフに保存することができます。

    1. スクリプト エディタ(Script Editor)で、追加するスクリプトの行を選択して、中マウス ボタンでシェルフにドラッグします。

      スクリプト言語の選択を求めるダイアログ ボックスが表示されます。

      言語を選択すると、カスタム スクリプトを表すアイコンがシェルフ(Shelf)に追加されます。

    2. アイコンを右クリックして編集(Edit)を選択し、シェルフ エディタ(Shelf Editor)ウィンドウを開きます。

      このエディタを使用して、新しく追加したシェルフ(Shelf )をカスタマイズすることができます。たとえば、シェルフ(Shelves)タブ内のアイコンをカスタマイズしたり、コマンド(Command)タブ内のコマンドを変更したりできます。

アトリビュート名を照会する

Maya のインタフェースを通じてアクションを実行し、スクリプト エディタ(Script Editor )の上部ペインに出力された結果を確認することにくわえ、次の方法でアトリビュート名を照会することもできます。

選択したノードを修正する

アトリビュートを取得して設定するには、getAttrsetAttr コマンドを使用します。

選択したノード、特定のタイプのすべてのノード、またはシーン内のすべてのノードのアトリビュートを変更することができます。

関連トピック