Mayaで作業していると、
まれに 複製したカメラが削除できない、
あるいは “削除できません” というエラーを吐くことがあります。
これは、カメラが スタートアップカメラ(デフォルトカメラ扱い) として
設定されてしまっていることが原因です。
そんなときは、以下の MELスクリプトを選択中のカメラに対して実行するだけで
問題なく削除できるようになります。
■ 削除できないカメラを削除する MEL スクリプト
▼ 使い方
- 削除したいカメラを選択
- スクリプトエディタにコードを貼って実行
- カメラが正常に消える
以下がスクリプトです👇
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 フラグを解除することで解決できます。
何度も起きるトラブルなので、
スクリプトを棚に登録しておくと作業効率が上がります。

