MaterialLookup(マテリアル・シェーダー逆引き・どのオブジェクトが使っているか一覧してジャンプ・Unityエディター拡張) | このシェーダー、どこで使ってる?(買い切り)
- ダウンロード商品¥ 1,000





シェーダーを差し替えたい、消したい、重い透過マテリアルを減らしたい。そんなとき「それを使っているオブジェクトはどこか」を探すUnityエディター拡張です。シーン(開いているもの・全シーン)とプレハブの Renderer を走査し、シェーダー別・マテリアル別に使用箇所を一覧にします。行をクリックすると、そのオブジェクトを選択して Ping し、プレハブは Project で Ping(ダブルクリックでプレハブモード)します。マテリアルが数百あるプロジェクトや、VRChat のワールド・アバター改変での整理に向けています。サンプル付きです。 【購入前にお読みください】体験版はありません。購入前の確認は、販売画像と説明文でお願いします。動作確認は Windows / Unity 6(6000.5)のみです。Unity 2022.3 LTS、URP / HDRP の実プロジェクトでの動作は未検証です。ウィンドウのボタン操作・クリックでの選択や Ping・ダイアログは、制作側では自動テストでの確認までで、手で触っての確認はしていません。画像は、すべて説明用の描画です(数値は制作側の自動テストの結果で、エディター画面そのもののスクリーンショットではありません)。 買い切り1,000円・追加費用なしです。本製品は SaiRollStudio が制作した非公式ツールであり、Unity Technologies の公式製品ではありません。 【特長】 ・シェーダーで探す:シェーダーを1つ以上指定して、使っている Renderer を一覧します(欄を追加できます)。名前の部分一致(例: Lit)でも探せるので、組み込みシェーダーのように資産として選べないものも探せます。「一覧」と「シェーダー別」の表示を切り替えられます ・マテリアルで探す:Project からマテリアルをドラッグして指定すると、使っている Renderer を一覧します。「未使用マテリアルを探す」で、指定フォルダ内の .mat のうち、全シーン・全プレハブのどこにも使われていないものを出せます ・透過の一覧:半透明のマテリアルを使う Renderer を一覧します。判定は _Surface / _SurfaceType / _Mode / renderQueue(3000以上) / RenderType タグで行い、判定の根拠も列に表示します。シェーダー名だけに頼らないため、自作シェーダーでもプロパティや renderQueue が該当すれば拾います ・検索範囲:開いているシーン / Build Settings の全シーン / 指定フォルダ内の全シーン / 全プレハブ(フォルダ指定可)。開いていないシーンは一時的に追加読み込みして調べ、終わったら閉じて、開いていたシーン構成を元に戻します。走査前に未保存の変更があれば保存の確認が出ます(キャンセルできます) ・対象の Renderer:MeshRenderer・SkinnedMeshRenderer・ParticleSystemRenderer(トレイル用のマテリアルを含む)・LineRenderer・TrailRenderer など、Renderer 派生はすべて対象です。マテリアルが null のスロット・シェーダーが Missing のスロットは「Missing」として別に出ます ・結果の操作:行 = オブジェクトのパス・マテリアル名・スロット番号・場所(シーン名 or プレハブのパス)。行クリックで選択+Ping、閉じているシーンの行は「開く」ボタン、シーン内の結果は全選択できます。CSV 書き出し(UTF-8 BOM 付きで Excel で開けます)、走査中のプログレスバーとキャンセルつき ・プレハブは読み取るだけで、資産は変更しません ・Editor 専用(ビルドには入りません)。外部ライブラリの同梱なし。ウィンドウ右上で 日本語 / English を切り替えられます ・サンプル付き:自作の簡単なメッシュとマテリアル(不透明・透過・Unlit・未使用の4個)、サンプルシーン、入れ子のプレハブ。テクスチャ・第三者の素材は入っていません 【使い方】 1. メニュー Tools > MaterialLookup > 逆引き を開く 2. 3つのタブから選ぶ(シェーダーで探す / マテリアルで探す / 透過の一覧) 3. 探したいシェーダー(またはマテリアル)を指定し、検索範囲を選んで「検索」 4. 一覧の行をクリックして、該当のオブジェクトへジャンプ。必要なら CSV に書き出す 【確認した結果(Unity 6・制作側の自動テスト)】 ・EditMode テスト10件がすべて合格、コンパイルエラー0・警告0。新しい空のプロジェクトへ導入してコンパイルエラー0・警告0、メニューとウィンドウの型があることも確認 ・Renderer 5,000個(7,500スロット)の走査は約0.1秒(実測 0.12〜0.16 秒)、同じ件数の CSV 生成は約0.03秒。同梱サンプルの検索は数ミリ秒 ・複数スロット・SkinnedMesh・ParticleSystem・LineRenderer・TrailRenderer を含む自作シーンで、検索結果の件数・パス・スロット番号が期待どおり。入れ子のプレハブの使用箇所が出て、プレハブと .meta のファイルが走査の前後で変わらないこと、全シーン走査のあとで開いていたシーン構成が元に戻る(キャンセル時も)ことを確認 ・透過判定:_Surface=1 のマテリアル、Standard の Fade / Transparent、renderQueue 3000 の自作シェーダー、RenderType のみ指定のものを透過と判定し、不透明・Cutout は透過としないことを確認 ・null のマテリアルと Missing シェーダーで例外が出ず、「Missing」として出ること。CSV はカンマ・引用符・改行・日本語を含む名前でも崩れないこと 上はすべて同梱サンプルと自作の合成データでの値です。実際の大きなプロジェクトでの確認は、制作側では行っていません。 【導入】 同梱の unitypackage をプロジェクトにインポートします。Assets/MaterialLookup/ に入ります(Editor・Samples・README_ja.txt)。サンプルは Built-in の Standard / Unlit/Color を使うため、URP ではサンプルの Standard がピンクに見えますが、逆引きの動作には影響しません。サンプルが不要なら Samples フォルダごと削除して構いません。 【制限・注意(必ずお読みください)】 ・動作確認は Windows / Unity 6 のみです。Unity 2022.3 LTS は未確認です(2022.3 でも動くように書いていますが、実機では確認していません) ・URP の Lit の透過判定は実機で確認していません(URP が入っていない環境のため、_Surface は同じプロパティを持つ自作シェーダーで代用して確認しました)。HDRP は未確認です ・ウィンドウの見た目・列幅・スクロール・クリックでの選択と Ping・ダブルクリックでのプレハブモード・保存確認のダイアログ・CSV 書き出しのダイアログは、制作側では手で触っての確認をしていません ・同名・同階層のオブジェクトが複数ある場合、クリックで選ばれるのは最初の1つです(シーン内のオブジェクトを Hierarchy のパスで探すため)。走査のあとにシーンを閉じた行は「開く」ボタンで開き直してから選択します ・未使用マテリアルの判定は、スクリプトから Resources.Load などで読み込むもの、AssetBundle・Addressables の中身、他のマテリアルからの参照を見ません。削除する前にご自身でご確認ください ・開いていないシーンは一時的に読み込んで閉じます。もともと Hierarchy に残したまま未ロードにしていたシーンは、走査後に Hierarchy から消えることがあります。作業前にプロジェクトのバックアップをおすすめします ・できないこと:マテリアル・シェーダーの一括置換、テクスチャの逆引き、AssetBundle / Addressables の解析、ランタイムでの機能 【ライセンス】 購入者は、自分の作品(ゲーム・ワールド等)の制作に自由にお使いいただけます(商用利用も可)。本アセット(ツール本体・ソースコード・サンプル)の再配布・転売・譲渡は禁止です。詳細は同梱の LICENSE.txt を参照してください。Unity は Unity Technologies の商標または登録商標です。 【姉妹品】 TextMeshPro の日本語フォント用に、ゲームで使う文字だけを集める TmpCharsetMaker(Unityエディター拡張)も販売しています。 (出品後にURLを追記してください)





