【Mayaあるある】アウトライナ検索がいまいち信用できない

追記: Maya2015くらいまでケースです。Maya2016くらいから改善されています。 【Mayaあるある】アウトライナ検索が今は信用できる
アウトライナで検索するとき、絶対にあるはずのオブジェクト名を入力しているにもかかわらず出てこなかったり、明らかに数が少なかったり、時には関係ないものが出てきたり。
なんか信用できない!でもそれっておかしい!と思ったときに検証したことがあります。すると、あることに気づきました。
今回はその気づいたものを含めて検索のコツを3つのポイントにまとめました。
ポイント1
ワイルドカード「*」(アスタリスク)を使用する
まぁこれは予想つきますね
完全一致でない場合、ワイルドカード「*」(アスタリスク)を使用して検索します。

アウトライナは、検索のフィールドに入力されたものと完全一致するものしか表示されないので、含まれるものを探したい場合は*をつけて検索します。(完全一致も表示されない原因は大事なことなので最後に説明します。)
ワイルドカードの*は何にでも置き換わる文字的な意味をもちますので、例として
aで始まるものを検索したかったら「a*」
aで終わるものを検索したかったら「*a」
aが含まれるものを検索したかったら「*a*」
のように使用します。
「*Cube*」で検索しても「Cube」はヒットします。
このように*は「文字なし」という意味でもヒットするので、少しでもヒットさせたければ、*を前後につけるといいと思います。
ちなみに間に入れたりすることも出来ます。

pではじまり2で終わる「p*2」
ポイント2
検索結果には親も表示される
これも落ち着いてみるとわかる。
検索したものと関係ないものが一覧されたときは、子にヒットするものが含まれています。

なんでこいつが表示されるんだ?と思わずに、子まで開いて見ましょう。
ポイント3
Shapeの直親は検索にヒットしない
これが最重要です。検証した結果ですが、ポリゴンはもちろんカメラ、ライト、ロケーター、カーブなどなど、子にShapeノードを持つ親は、検索にヒットしないようなのです。

Shapeノード(シェイプノード)はアウトライナのメニュー>ディスプレイ>シェイプのチェックを入れると確認できます。
ポリゴンやカメラの子に表示されます。
「pCube1」というポリゴンオブジェクトがあっても完全一致を狙って「pCube1」ではなんとヒットしないのです。
「pCubeShape1」と検索するとでてきます。

つまりShapeを持つものの検索は、Shapeノード名で検索してやる必要があるようなのです!
Shapeは大文字小文字やスペルミスで検索失敗しそう、何よりめんどくさいので、「pCube1」を検索したければ、「pCube*1」というような感じで英文字と数字の間に*を使用して検索するといいと思います。
(pCube11, pCube21, pCubeSet1のようなものが存在していたらこれらも一緒にヒットしてしまいますが・・・)
では「pCube001」の検索は?
pCube*001 ×
だと駄目です。
Shapeの名前を確認してみてください。
「pCube001」のShapeは「pCube00Shape1」になるので
pCube00*1
と検索することになります。英文字と数字の間に*をといったものの、連番頭の0は文字のほうに入れます。
ただしコレも厄介なことがあって、名前を変更するタイミングによっては
「pCube001」のShapeが「pCube001Shape」となることがあるのです。
この場合
pCube001*
じゃないとヒットしません。
まぁ手っ取り早く検索したい場合は
オブジェクト名から数字を除いて、 * つけて検索する!!
とか?
そもそもShape名が編集されていたらどうしようもないのですが、とにかくアウトライナで検索する際は、親の名前によってShapeがどのように命名されるかを考え、Shape名を意識して検索をすることが大事だということがわかった検証結果でした。
それにしてもなんで??何か理由あるのでしょうか?
ちなみにどうしても検索したいものがある場合、
当ブログのリネームMELにある検索機能でいろいろなノードが取得できます。
スポンサーリンク