Python でフラグを使用する
 
 
 

フラグはコマンドとともに使用して、実行方法を変更します。Python はフラグを名前の付いた引数として実装します。MEL のフラグには、値を必要としないものもあります。Python では、すべての名前の付いた引数は値を必要とし、フラグを有効にするには True、フラグを無効にするには False の値をフラグに入れます。名前の付いた複数の引数を設定する場合は、カッコ内で引数と値のペアをカンマで区切ります。コマンド引数は、コマンド内の名前の付いた引数の前に配置する必要があります。

Python でフラグを使用するには

  1. 次のように入力して、作成時に幅を定義したポリゴン立方体を作成します。
    cmds.polyCube(width=5)

    width フラグにより、作成時に立方体の幅を設定できます。

  2. 作成時に半径と X 方向のサブディビジョンを設定して名前を定義したポリゴン球体を作成します。
    cmds.polySphere(radius=1, subdivisionsX=4, name="testSphere")

    複数のフラグを使用してコマンドの実行を変更するには、フラグと値のペアをカンマで区切ります。radius フラグは、作成する球体の半径を設定します。subdivisionsX フラグは、球体の X 方向のサブディビジョンを設定します。

    注:コマンドに使用できるフラグのリストを出力するには、スクリプト エディタで cmds.help("コマンド") と入力します。たとえば、cmds.help("sphere") のようにします。

Python でフラグをコマンド引数とともに使用するには

  1. スクリプト エディタで次のように入力して、ポリゴン球体を移動します。
    cmds.move(2,2,2)

  2. ポリゴン立方体を選択します。
  3. 次のように入力して、ポリゴン球体を移動します。
    cmds.move(1,2,3)

  4. 次のように入力して、ポリゴン立方体を現在位置から相対的に移動します。
    cmds.move(-1,0,-2,relative=True)

    ポリゴン立方体は現在位置から相対的に移動します。relative フラグはコマンド引数の後に置きます。これは Python では、引数を渡すときに名前の付いた引数は位置引数より後に配置する必要があるからです。コマンド引数は必ずコマンドの最初の引数にする必要があります。

  5. 次のように入力して、ポリゴン球体を選択せずに移動します。
    cmds.move(3,2,1,"testSphere",relative=True)

    オブジェクト名はフラグの前ではなく、コマンド引数より後に文字列として渡します。

Python でフラグを複数の引数とともに使用するには

  1. 次のように入力して、黄色っぽいポイント ライトを作成します。
    cmds.pointLight(rgb=(1,1,0.5))

    ポイント ライト コマンドは原点にポイント ライトを作成します。rgb フラグはライトのカラーを指定します。rgb フラグには、赤、緑、青の 3 つの値が必要です。

    フラグが複数の値を必要とする場合は、値は Python のタプルまたはリスト データ型に入れる必要があります。タプルは同種類のデータの複数の項目を 1 つの変数に格納する方法で、MEL の配列のようなものです。リストはタプルと似ていますが、1 つの変数内で複数のデータ型をサポートする点で異なります。上記コマンドは RGB 値をタプルに入れています。リストを使用しても同じ結果が得られます。

  2. 次のように入力して、現在選択しているライトを移動します。
    cmds.move(12,15,12)
  3. 次のように入力して、青っぽいライトを作成します。
    cmds.pointLight(rgb=[0.2,0.2,1])

    角カッコ [ ] はリストを示し、カッコ ( ) はタプルを示します。

    rgb フラグの値はリストとタプルのどちらにも入れることができ、実行される操作は同じです。

  4. 次のように入力して、現在選択しているライトを移動します。
    cmds.move(12,15,-5)
  5. ポリゴン立方体をクリックしてから Shift キーを押しながら球体をクリックし、ポリゴン立方体とポリゴン球体を選択します。
  6. キーボード上の f ホットキーを押して、選択したオブジェクトを囲みます。
  7. ステータス ラインのカレント フレームのレンダー(Render Current Frame)ボタン を押して、シーンをレンダーします。

    レンダー ビュー(Render View)が開き、次のイメージが表示されます。

  8. シーン内のすべてのオブジェクトを選択し、次のように入力してこれを削除します。
    cmds.select(allDagObjects=True)
    cmds.delete()

    Maya コマンド selectallDagObjects フラグを付けて使用し、ジオメトリ、IK チェーン、測定ツールなど、シーンに物理的に存在するオブジェクトを選択します。これらは DAG と呼ばれる内部的な Maya 表現で表示されます。詳細については、「 DAG」を参照してください。