いつのまにか増えたカメラを削除する方法

こんにちは!Rhinoです。
モデリングをしているといつの間にか作った覚えのないものがあったりすることないでしょうか?
僕はいつ作ったのか分からないカメラがOutlinerに並んでいるなんてことがよくあったりします。
今回はそんな余分なカメラを一気にまとめて削除したと思いましたのでそのご紹介です。
あっけないくらい簡単なスクリプトですよ。

スタートアップカメラ以外のカメラを削除

いつの間にか増えてしまうカメラ…

カメラはcmds.delete()で削除することができますが、ちょっとコツいります。
カメラを削除しようとすると以下のようなエラーが出て削除できない場合があるんですね。
これは top というMayaを起動した際に初めから存在するカメラは削除したり、編集することができないからです。

# Error: Non-deletable node 'topShape' cannot be deleted. # 
# Error: Non-deletable node 'top' cannot be deleted. # 

そこで起動時のカメラのpersptopfrontside以外をリストアップする必要があります。
これらかどうかはcamera関数startupCamera(sc)フラグで判定できます。
それらを踏まえてコード化するとこんな感じです。
たった3行!

import maya.cmds as cmds

cameras = [ c for c in cmds.listCameras() if cmds.camera( c, q=True, sc=True ) == False ]
cmds.delete( cameras )

余分なカメラが消えてすっきしたのではないでしょうか。
では、また!

コメント

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