Mayaで「削除できないカメラ」を消す方法【MELスクリプト付き】

Mayaで作業していると、
まれに 複製したカメラが削除できない
あるいは “削除できません” というエラーを吐くことがあります。

これは、カメラが スタートアップカメラ(デフォルトカメラ扱い) として
設定されてしまっていることが原因です。

そんなときは、以下の MELスクリプトを選択中のカメラに対して実行するだけ
問題なく削除できるようになります。

■ 削除できないカメラを削除する MEL スクリプト

▼ 使い方

  1. 削除したいカメラを選択
  2. スクリプトエディタにコードを貼って実行
  3. カメラが正常に消える

以下がスクリプトです👇

string $selection[] = `ls -sl -dag -type camera`;
string $cameras[];
for ($each in $selection)
{
    if (`objectType -isType "camera" $each`)
    {
        $cameras[(size($cameras))] = $each;
        camera -e -startupCamera false $each;
        delete $each;
    }
    else
    {
        warning("selected object isn't a camera");
    }
};

■ このスクリプトがやっていること

● 1. 選択中のカメラノードを取得

ls -sl -dag -type camera で、選択しているカメラ形状ノードを拾います。

● 2. スタートアップカメラを解除

Mayaはデフォルトカメラを「startupCamera = true」にして消せない仕様なので、
camera -e -startupCamera false でこれを解除します。

● 3. カメラノードを削除

delete $each; でカメラを問題なく削除可能に。

■ 注意点

  • 必ず 削除したいカメラだけを選択して実行してください
  • 「selected object isn’t a camera」警告は
    カメラ以外を選んだ場合 に出ます
  • デフォルトの perspective / top / side / front を消すのは推奨しません

■ まとめ

Mayaでたまに起こる
「複製カメラが削除できない問題」 は、
MELで startupCamera フラグを解除することで解決できます。

何度も起きるトラブルなので、
スクリプトを棚に登録しておくと作業効率が上がります。

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