【UE5】コンテンツブラウザの「検索・フィルター」使いこなし術
プログラマーの尾関です。
今回はUnreal Engineでの「コンテンツブラウザ」の検索やフィルターを使って目的のアセットを素早く見つける方法について紹介したいと思います。
- 動作確認バージョン:UE5.5.4
目次
コンテンツブラウザの検索テクニック
アセット名にのみマッチングしたい
フィルタ検索は、指定の文字列をアセット名だけでなく、アセットのパスを含んだ検索となります。
例えば単に「Mannequin」で検索すると、アセット名だけでなくコンテンツのパスに「Mannequin」を含んだアセットまで検索されてしまいます。

これを回避するには「name:[検索文字列]」で指定します。
すると純粋にアセット名のみで検索の絞り込みが可能となりました。
例えば検索欄に「name:Mannequin」と指定。

すると純粋にアセット名のみで検索の絞り込みが可能となりました。
アセットの種類で絞り込む
アセットの種類で絞り込みをしたい場合「type:[アセットの種類]」で検索を行います。
例えば “type:Texture2D” とすると、対象は2Dテクスチャのみとなります。

よく使いそうな type を列挙しておきます。
| カテゴリ | type:指定値 | 説明 |
|---|---|---|
| マテリアル系 | Material | ベースマテリアル(UMaterial) |
| MaterialInstanceConstant | 定数マテリアルインスタンス (UMaterialInstanceConstant) | |
| MaterialFunction | マテリアル関数 | |
| Texture2D | 通常の2Dテクスチャ | |
| CurveLinearColor | 線形カラーのカーブ | |
| CurveVector | ベクトルのカーブ | |
| モデル系 (3Dアセット) | StaticMesh | スタティックメッシュ |
| SkeletalMesh | スケルタルメッシュ | |
| アニメーション系 | AnimationSequence | アニメーションシーケンス |
| AnimBlueprint | アニメーションブループリント | |
| PhysicsAsset | フィジックスアセット | |
| Skeleton | スケルトン | |
| ブループリント系 | Blueprint | ブループリント全般 |
| WidgetBlueprint | UMG UIウィジェット | |
| レベル | World | レベル (※Levelでは検索条件となりません) |
| データ系 | DataAsset | データアセット |
| DataTable | データテーブル |
上記以外にも、指定可能なアセットの種類は数多く用意されていますが、”type:” と入力するとインクリメンタルサーチで対象が選べるので、ここでは一部のみの紹介とさせていただきます。

フィルター機能を使う
アセットの種類の絞り込みですが、実は「Type:」という検索を使わなくても済む方法があります。
それが「フィルター」と呼ばれる機能で、その使い方について紹介していきます。
フィルターの基本的な使い方
フィルターを使うには、この “じょうご” のような形(▽)をしたアイコンをクリックします。

フィルター可能な項目がいくつか表示されますが、ここから「一般的なフィルタ」を選んでみます。

するとフィルター項目が追加されました。

この状態(フィルターの色が明るい状態)はフィルターが有効となった状態で、クリックでON/OFFを切り替えられます。

これらの複数のフィルターから「レベル」のみを有効にしていきたいのですが、1つずつOFFにするのは手間がかかります。
そこで「ALT+左クリック」をするとまとめてすべてOFFにできます。

そして「レベル」フィルターをクリックすることで、表示をレベルのみに絞り込むことができました。

フィルターの削除
[ALT + 左クリック]でフィルターをOFFにするとフィルターは解除できますが、フィルターの表示を消したい場合は、じょうごアイコンをクリックして「フィルターをリセット」でフィルターを全削除できます。または対象のチェックを外すことでも削除できます。

さらに削除したいフィルターを「ホイールクリック」しても削除することができます。

どのアセットをフィルターに表示するべきか
どのフィルターを使うべきかは役職や担当している機能によって変化しそうですが、例えばエンジニアであれば以下の4つはよく使いそうな気がします。

問題点として、標準フィルターによるアセットの種類単位の絞り込みでは、あまり編集しないアセットも表示されます。例えば以下のように、データテーブルのみ表示しても、「/Game」以外のパスにあるセットも表示されてしまうため、不要なアセットが大量に表示されてしまいます。

標準のフィルターでは使いにくい場合は「カスタムフィルター」を作成すると良いです。
カスタムフィルターを使う
カスタムフィルターの基本的な使い方
カスタムフィルターは「カスタムフィルター > フィルタを新規作成」から作れますが、この方法はあまりおすすめしません。

理由はカスタムフィルターの動作を確認するのが手間となるためです。
おすすめの作成方法として、まずは検索バーに「Type:DataTable Path:/Game/」と入力してみます。これは「データテーブル」かつパッケージパスが「/Game/以下」にあるアセットのみを対象とした条件です。
これによりプロジェクトに関係あるアセットのみに絞り込めました。

検索ワードを色々試してみて良い検索条件が作れたら、検索バーの右側にある「+」ボタンをクリックして「カスタムフィルタとして保存」を選択。

カスタムフィルタ作成画面が表示されるので、フィルタラベルを短い名前に修正して「作成」をクリック。(※色もつけておくとよいです)

するとカスタムフィルタが作られ、自分好みにカスタムしたフィルターとなりました。

作成済みのカスタムフィルタの編集方法
作成済みのカスタムフィルタを編集するには「カスタムフィルタ」から対象のフィルタの鉛筆アイコンをクリック。

ここからフィルタ文字列を編集することで、条件の編集が可能です。

なおカスタムフィルタを削除したい場合は、このウィンドウから「削除」を選ぶと削除できます。
「type:」の注意点
「type:」でアセットの種類を指定する時の注意点ですが、一部アセットはデータ型との完全一致によってうまく機能しないことがあります。
例えば UDataAsset に関しては、アセットとデータ型が完全一致 (ネイティブの UDataAsset と同一に扱われるようにAssetTypeActionsでの登録がないと一致しない) ということがあります。

この仕様に関しては、フィルター機能のAssetTypeActionsをC++でカスタマイズする必要があるため、検索条件のみの指定では対処できないので注意です。
C++でのカスタマイズなしに対処するには、例えば以下のようなカスタムフィルタを作成。(検索条件を「path:/Game/」で指定)

そしてフィルタを以下のように標準のフィルタと組み合わせることで、絞り込みが可能となります。

("データアセット" かつ "Game以下" という条件)
その他の便利なフィルタ機能
フィルタ項目には、アセットの種類以外にも選択可能な条件があります。
フィルタのポップアップを下方向にスクロールすると「その他のフィルタ」という項目に特殊な条件があります。

この条件の中でも以下のものは個人的に使いやすいのではないかと思います
- どのレベルでも使用されていません:不要なアセットを削除したいときに便利
- チェックアウト済み:編集中のアセットをコミットしたり、巻き戻したい場合に便利

まとめ
以上、コンテンツブラウザの「検索・フィルター」の使いこなしテクニックの紹介でした。
この情報が目的のアセットを見つけるのに役立てれば何よりです。
フィルター操作のショートカットキー
- CTRL+左クリック:フィルターを全選択
- ALT+左クリック:フィルターをすべて非選択
- ホイールクリック:フィルターを除去
フィルターとは関係ないですが「CTRL + Space」で、コンテンツドロワーを表示・非表示できます。
検索バーで使用できる検索構文
| 構文 | 説明 | 例 |
|---|---|---|
| name: | アセット名にマッチ(DisplayName ではなく内部名) | "name:Mannequin" → アセット名に "Mannequin" が含まれているもの |
| type: | クラス名(完全一致)にマッチ | "type:Texture2D" → 2Dテクスチャ |
| path: | アセットのパッケージパスで絞り込み(/Game/など) | "path:/Game/" → 現在のプロジェクト内のアセット |
| AND | 複数条件の組み合わせを AND条件にしたい場合 | "type:DataTable AND path:/Game/" → 現在のプロジェクト内のアセットでデータテーブルのみ |
| OR | 複数条件の組み合わせを OR条件にしたい場合 | "name:DA_ OR name:LV_" → アセット名に "DA_" または "LV_" が含まれるもの |
| … | 文字の先頭または末尾の判定 | "name:DT_…" で DT_で始まるアセット、"…Table" で Tableで終わるアセット |
| != | 否定。除外条件としたい場合 | "path!=/Game/VRTemplate" で VRTemplateフォルダを除外 |
カスタムフィルタ作成例
参考として、個人的に作成したカスタムフィルタの例を記載しておきます。
| フィルタラベル | フィルタ文字列 | 説明 |
|---|---|---|
| DataTable | Type:DataTable Path:/Game/ | プロジェクト内のデータテーブルを表示 |
| DataAsset | Name:DA_… | データアセットの表示。プロジェクトの命名規則で “DA_” で始まる文字と決まっているため |
| ブループリント | Name:BP_… | Blueprintアセットの表示。WBPと区別するために定義 |
| WBP | Name:WBP_… | Widget Blueprintアセットの表示。プロジェクトの命名規則で “WBP_” で始まる文字と決まっているため |
| レベル | Type=World Path=/Game/ | レベルアセットの表示 |
| Game以下 | path:/Game/ | プロジェクト内のアセット表示。絞り込み検索条件として使用 |
| デバッグ | Name:debug | アセット名に “debug” という文字が含まれているものを検索。絞り込み条件として使用 |

