2024年5月27日月曜日

クリップボードへ書き込むを少し応用。

 Mayaで クリップボードに書き込む操作 は他にどんなケースで使用できるかを少し考えてみようと思います。

 例えば、良く行う動作として、オブジェクトのワールド座標を取得して、他のオブジェクトへ適用させるという操作があります。

 Mayaの標準機能にも Modify > Match Transformations > Match Transltionでも同じことが出来ますが、アニメーションを作成している場合、別のフレームのオブジェクトへ一致させることができません。

 そうした場合には、オブジェクトを選択した状態にし、コマンドラインで

1.xform -q -ws -t コマンドを実行。

2.Resultの値を選択、コピー。

3.移動させたいオブジェクトを選択。

4.move -ws コマンドを書き Resultの値をペーストして実行。

 の手順をふむ必要があります。慣れてしまえばそんなに手間だとは感じなくなりますが、なかなか無駄な操作をしている事には変わりません。

 そこで、座標を取得し、その座標へ移動させるコマンドをクリップボードへ送るスクリプトを書いてみます。

{
    string $sels[]=`ls -sl -tr`;
    vector $p =`xform -q -ws -t $sels[0]`;
    
    string $cmd ="move -ws ";
    $cmd+=(($p.x)+" ");
    $cmd+=(($p.y)+" ");
    $cmd+=(($p.z)+" ");
    
    system("echo "+$cmd+"|clip");
    
}

 これをシェルフに登録して実行します。こうすることで、

1.オブジェクトを選択し、シェルフから実行。

2.移動させたいオブジェクトを選択。

3.コマンドラインへ[Ctrl]+[v]をして実行。

 となり、けっこう省力化になると思います。


 シェルフやスクリプトエディタでも同様ですが、変数を使用しているので、先頭と終了には必ず波カッコを使用しないとバグを起こしやすくなる可能性があるので注意が必要です。
 ※詳しくはコチラ



0 件のコメント:

コメントを投稿