【MEL】選択マテリアルを保護して「未使用ノードの削除」

![]() | AriKeepUnusedNodes |
2016/09/18 更新: MEL名変更しました
「未使用ノードの削除」(Delete Unused Nodes)と同じ処理を行いますが、あらかじめマテリアルを選択しておくと、何にもアサインされていないマテリアルであっても削除されません。
散らかっているから「未使用ノードの削除」をしたいけど、このマテリアルは消したくない!なときに使えます。
使い方
消したくないマテリアルを選択してMELを実行するだけです。

消したくないものを含むように大雑把に選択でもOK。

このように選択されていればシーンで使われていなくてもキープされます。
※注意
今のとこマテリアルだけに有効です。
マテリアルを選択していない場合何の処理も行いません。
よかったらこちらからどうぞ
Download
動作内容(余談)
どんな動作をしているかネタ晴らしをしちゃいますと、ダミーオブジェクトを作成して、選択したマテリアルをアサインしてから、未使用ノードの削除を実行してます。
実行後はダミーオブジェクトを消すので、めでたしめでたし。というわけです。

本来であれば、スクリプトでこのような力技は邪道なのかもしれませんが、きちんと使用ノードを探索したりして消すという操作をすると、Maya標準の「未使用ノードの削除」と挙動が違って本来消さないノードを消してしまったりする可能性があると思い、今回のケースでは、シンプルにこのような動作をさせています。
理論上は、「未使用ノードの削除」と同じ挙動になるので、安心してお使いいただけると思います。
つぶやき
マテリアルやテクスチャノード整頓系のMELはこまごましたものが多いので、ある程度まとめてからアップしようと思ってましたが、考えてみたら、そのこまごましたMELは統一感無くてまとまらないことに気づいたのと、
アップするには変な動作しないようにMELをある程度書き直す必要があり、それを全部にやっていたらいつ完成するかわからないので、書き直したものから順々にアップしちゃうことにしました。
気まぐれにちょっとした機能のものもアップしていこうと思います。
スポンサーリンク