【Maya】MELの「More than one object matches name」の回避

クリーク・アンド・リバー社 COYOTE CG STUDIO テクニカルチームの長生きの武将と言えば伊達政宗、戦国大好き人間の中林です。

今回はMelでのあるあるネタで有名なこちらのエラーの回避方法です。

// Error: line 1: More than one object matches name: objectName //
// エラー: line 1: 複数のオブジェクトが名前と一致します: オブジェクト名 //string $list[] = ls -sl;

これは日本語のエラーを読めば一目瞭然です。
が、英語版を使っているとエラーの内容を見なくなります。
そして、自作ツールを使っていて、このエラーが発生すると高確率でツールが止まったと報告が来ます。

そもそものキッカケは?

テクニカルアーティスト(以下、TA)「ツールをリリースしました」
アーティスト(以下、ア)「ツールでエラーが発生しました」
TA「すみません、対応するのでエラーログを送ってください」
ア「Error: line 1: More than one object matches name: objectName」
TA「エラーを読んでください。同じ名前のオブジェクトが複数あります」
よくあるTAのいる会社の風景です。しかし、これがツールをリリースする度に同じことが発生すると……

※苦さ100%のいつもの会社風景がチーム内検閲に引っかかったのでオブラートに包んでみました。
TA「新ツールをリリースしました」
ア「ん~もう、またあなたの作ったツールがエラーで止まったわよ」
TA「エラーって『Error: line 1: More than one object matches name: objectName』だから、いつもの同名オブジェクトが複数あるじゃない。ぷんすこ」
ア「ごっめ~ん。わたしのデータのミスだったは、てへぺろ」
TA「うふふ」
ア「あはは」
オブラートを取り払った会話は適当に想像してください。たぶん間違ってないです。

Maya自体が同じオブジェクト名を許さない仕様

元からMaya自体が同名のオブジェクト名を許さない仕様です。例えばメッシュモデルとマテリアルの名前を付けようとすると、後から付けた方を末尾に対して+1した名前にリーネムされます。
本来ならこれで回避されるのだけど、アウトライナーなどで階層のあるオブジェクトを複製すると親階層だけはリーネムされるけど子階層はそのままです。階層が違うオブジェクトは自動リネームから対象外になります。
階層が違えば親子で同名にできてしまうのが今回の原因です。

主な発生原因【コマンド “オブジェクト名”】


上図の通り複数の「pSphere1」がある状態でselect "pSphere1";などを実行するとエラーが発生します。
どうしても選択するならフルパス名で取得する方法もありますが
select "group5|pSphere1|pSphere1";
と毎回長いオブジェクト名を用意するのも大変だし名前の変更についても弱いです。

回避方法【ls “オブジェクト名”】

過去のブログ「MELのlsコマンドの可能性」
こちらの可能性の結果の1つとも言えます。


select `ls "pSphere1"`を使うと上図を見ると一目瞭然ですがエラーが発生しないで全ての「pSphere1」を同時選択してくれます。
lsコマンドとselectコマンドをMELの初期から知っていたのに、組み合わせるだけでエラーも起こさずに同名オブジェクトの複数選択ができるようになるとは僕も長年、気付きませんでした。

MELの「More than one object matches name」の回避方法

答えはもうこちらですね。
コマンド `ls "オブジェクト名"`
このエラー回避は裏技としては使えます。
僕自身、今ではwarningで優しく複数オブジェクトを指摘できるようになったのでアーティストとの摩擦が減りました。

nakabayashi nobukazu

MayaからPhotoshop、Unity、UEなどアーティストが困っていればツール作成にチャレンジしてお助け。
ただ今、Substance Painterに挑戦中です。
やーってやるぜ!!

投稿者記事

  1. 【Maya】AutodeskDay2024 Additional Time

    2024-09-24

  2. 【Maya】意外と違う!?
    キャラと背景でのデータ作法の違い!!
    第1回

    2024-07-02

  3. 【Maya】超初心者向けMELコマンドのオブジェクト名の指定

    2024-04-30

  4. 【Photoshop】ShotSave ver2.0で
    アルファチャンネルにコピーしてみた

    2023-07-25

関連記事

  1. 【Maya】キャラクタライズのID番号とジョイント

    2020-12-08

  2. 【Maya】MELだけでクォータニオンを簡単に使う方法

    2019-07-23

  3. 【Maya】DCCツールを作ってみよう -入門編-

    2024-01-26

  4. 【Maya】頂点カラーのUnsharedのチェック方法

    2019-10-01

スキルレーダーチャート

テクニカルアーティスト専用
スキルレーダーチャート
どなたでも無料でご利用いただけます。

ABOUT

TECH COYOTE​

テクニカルアーティストの為のまとめサイトです。​
本サイトでは、ツール開発、業務効率化等について情報発信をしていきます。

COYOTE 3DCG STUDIO

C&R Creative Studios

難易度別

RECENT TWEET

ページ上部へ戻る