【Unreal Engine】アセット管理入門:フォルダ構造と命名規則のベストプラクティス

作成: 2025-12-12最終更新: 2026-09-05

UE5のアセットを探しやすく整理するための入門。フォルダと名前の決め方、参照関係の読み方、移動後の確認を図解します。自作マテリアル1つを移して確かめる実践つき。

アセットが数百、数千と増えてくると、「あのテクスチャ、どこに置いたっけ」と探すだけで時間が溶けていきます。

アセット は、モデル・画像・音・Blueprintなど、プロジェクトで使う素材やデータです。例えば宝箱1つにも、形を表すモデルと、表面を描くための素材が使われます。一緒に編集するものを近くへ置き、名前から種類を読めるようにすると、探す時間を減らせます。

この記事では、探しやすいフォルダと名前の決め方、移動するときに確認する参照関係を整理します。最後に、自作のマテリアル1つを別の場所へ移し、同じ見た目で使えることを確かめます。

棚にアセットの箱を整然と収める人形。アセット管理のイメージ

この記事でわかること

  • 機能ベース のフォルダ構造が推奨される理由と構成例
  • BP_SM_T_ などの プレフィックス命名規則
  • アセット移動の安全装置 リダイレクタReference Viewer
  • ハード参照とソフト参照 で、読み込まれるタイミングが違うこと
  • 実践:散らかったアセットを 壊さず引っ越す 一連の手順

Sponsored

プロジェクト構造の基本原則

自作のアセットは、主に Content フォルダで管理します。まずは「何を直すときに、一緒に開くか」を基準に置き場所を決めましょう。

機能ベースで分ける

アセットの整理には、大きく2つの流儀があります。

  1. 種類で分けるMaterials(表面の見え方)・Meshes(立体モデル)・Textures(画像)のようにまとめます。
  2. 対象や機能で分けるCharacters/Knight(騎士)・UI/Inventory(持ち物画面)のように、一緒に使うアセットをまとめます。
種類ベースでは騎士の装備がMeshes・Textures・Materialsへ散らばり、機能ベースではKnightフォルダに集まる。1つの機能は、1つの場所に

騎士を直すたびに複数の種類フォルダを行き来しているなら、Content/MyGame/Characters/Knight/ に専用アセットをまとめると探しやすくなります。数が増えたら、その中を MeshesTextures に分けても構いません。複数のキャラクターで共用するものは共通フォルダへ置き、人数分コピーしないようにします。

構成例と3つの約束

/Content
├── /MyGame          ← プロジェクト固有アセットはすべてこの下
│   ├── /Characters
│   ├── /Environments
│   ├── /Weapons
│   ├── /UI
│   └── /Maps        ← レベルファイル専用
├── /VendorPack      ← 外部アセットは配布時のフォルダを維持する例
└── /Developers      ← 個人の実験場(後述)
  • プロジェクト名のルートフォルダを1つ切る: 自作アセットをすべて /Content/MyGame/ の下に置くと、外部アセットとの混在を防げるうえ、将来の移行や配布時にパスの一括管理ができます
  • 外部アセットと自作を分ける:入手したパックのフォルダへ自作アセットを混ぜないようにします。更新手順や決まったパスを持つパックもあるので、見た目を揃えるためだけに全体を移動する必要はありません。
  • 必要な階層だけ作る:最初は MyGame/Maps と、今作る機能のフォルダから始められます。空の分類を大量に用意するより、増えたところを分けます。
Sponsored

命名規則の徹底

フォルダ構造が「住所」なら、名前は中身を知らせるラベルです。先頭に種類を表す プレフィックス(接頭辞) を付けると、開く前に用途を判断しやすくなります。以下はよく使われる命名例です。参加先のプロジェクトに規則があれば、そちらへ揃えます。

SM_Door_Wooden_Old_02を種類・対象・詳細・連番に分解した図。名前だけで、正体がわかる

基本の形は [プレフィックス]_[対象]_[詳細]_[連番] です(例: SM_Door_Wooden_Old_02)。

アセットの種類プレフィックス
BlueprintクラスBP_BP_PlayerCharacter
マテリアルM_M_Ground_Moss
マテリアルインスタンスMI_MI_Ground_Moss_Dry
テクスチャT_T_Ground_Moss_D(末尾 _D=カラー、_N=ノーマル)
スタティックメッシュSM_SM_Tree_Oak_01
スケルタルメッシュSK_SK_Player_Base
アニメーションBPABP_ABP_Player
アニメーションシーケンスA_A_Player_Run
レベル(マップ)L_L_MainMenu
ウィジェットBPWBP_WBP_HealthBar

プレフィックス は名前の先頭へ付ける印です。SM_ ならStatic Mesh、BP_ ならBlueprint Classだと、開く前に見当を付けられます。詳細や連番は、区別が必要なときだけ追加します。

コンテンツブラウザで SM_ と検索すると、その文字を含む名前を絞り込めます。ただし、名前を変えてもアセットの種類は変わりません。種類を確実に絞るときは「Static Mesh」などの型フィルタを使います。

あわせて2つのルールを。

  • スペースと日本語は使わない: 単語の区切りはアンダースコアかキャメルケース(BP_PlayerCharacter)。パスに使えない文字での事故を防ぎます
  • 大文字・小文字も揃えるSM_Door と決めたら、資料やコードでも同じ表記を使います。ファイル名の大文字・小文字の扱いは環境で異なるため、表記揺れを減らしておくと確認が楽です。
Sponsored

アセットを壊さないための3つの道具

日々の整理で登場する、UE標準の3つの道具を押さえましょう。

リダイレクタ——移動のあとに残る「転送メモ」

コンテンツブラウザ内でアセットを移動・リネームすると、UEは元の場所に リダイレクタ (Redirector) という見えないファイルを残します。古いパスを参照しているアセットを新しい場所へ案内する、郵便の「転送届」のようなものです。

リダイレクタの図。移動直後は転送メモ経由で参照が届き、Fix Up Redirectors後は直通になる。コミット前に転送メモを掃除する

ここでいう 参照 は、別のアセットを指定して使うつながりです。移動の整理が終わったら、元のフォルダで「Fix Up Redirectors in Folder」を実行すると、参照先の更新と保存が行われます。すべてを更新できたリダイレクタは不要になるため取り除かれます。残った場合は、保存できなかったアセットがないかメッセージを確認してください。リダイレクタ自体を手動で消すと、まだ使われている転送先を失うことがあります。

Reference Viewer——消す前に「誰が使っているか」を見る

アセットを右クリックして「Reference Viewer」を開くと、選んだものを中心に参照関係を調べられます。例えば宝箱のマテリアルを選ぶと、左には そのマテリアルを使うモデル、右には そのマテリアルが使う画像 が並びます。マテリアルは表面の色や質感を決めるもので、その材料として画像を使うことがあります。

SM_ChestがM_Chestを使い、M_ChestがT_Chest_Colorを使う参照の図。中央のマテリアルを選ぶと、左は使う側、右は使われる画像になる

図は関係を整理したイメージです。矢印は「左のアセットが右を使う」を表し、ゲーム中の処理の順番ではありません。

「この画像を消したら何に影響するか」を考えるときは、使っている側へたどります。表示する参照の種類や深さはフィルタで変わるため、何も表示されないことだけで「使われていない」とは判断しません。

数十個をまとめて直したくなったら

引っ越しやリネームが100個単位になると、手作業では限界が来ます。UEにはエディタ上で動く自前ツールをBlueprintだけで作る仕組みがあり、選択中のアセットやActorを一括処理させられます(→ Editor Utility Widgetでツールを作る)。

Migrate——別プロジェクトへの安全な輸出

アセットを別プロジェクトへ持っていくときは、「Asset Actions → Migrate」を使います。選んだアセットと、その動作や見た目に必要な 依存アセット が一覧に出ます。内容を確認し、移行先プロジェクトの Contentフォルダ を指定します。必要な画像などを一覧から外すと、移行先で見た目が再現できないことがあります。

同じ名前のアセットが移行先にある場合は、上書きの確認が出ます。上書き前にどちらを残すか確認してください。プラグインやC++コードまでこの操作だけで揃うとは限らないため、移行先でも開いて確かめます。検証用プロジェクトから使う分だけ移す手順はFabの記事でも扱います。

Sponsored

チーム開発におけるアセット管理

複数人での開発では、ルールはさらに重要になります。ソース管理(Git LFSやPerforce)の導入が前提です。Git LFSでUEプロジェクトを管理する具体的な手順は Git LFSでのプロジェクト管理 、プロジェクト作成直後のGitの始め方は 初期設定の記事 で扱っています。

  • 同じアセットを同時に編集しない:UEのアセットは、文章のように変更を自動で合体させにくいバイナリファイルです。担当を分け、PerforceのチェックアウトやGit LFSのロックなど、使っている管理方法で編集対象を共有します。Gitでコミットするだけでは、他の人の編集は止まりません。
  • Developers フォルダは実験用:本番で使うアセットから、このフォルダの試作品を参照しないようにします。採用するものは正式な場所へ移して確認します。実験中の内容も失いたくない場合は、チームの方針に沿って履歴へ残します。
  • 移動はまとめて共有する:移動したファイルに加え、参照を更新して保存したファイルも同じ変更として記録します。他の人が編集中のフォルダは、作業の区切りを合わせてから移動します。
同時に編集しない・Developersは実験用・移動と参照更新は同じ変更として記録する
Sponsored

ハードリファレンスとソフトリファレンス

アセット管理の最後のピースは、BlueprintやC++がアセットを どう参照するか です。ここがメモリ使用量とロード時間を左右します。

Hard Referenceは参照先も鎖で一緒にロードされ、Soft Referenceは住所メモだけ持って必要時に取りに行く。いつも使うはハード、たまに使うはソフト

ロード は、保存されたデータを、実行中に使えるようメモリへ読み込むことです。参照の持ち方によって、読み込みが必要になるタイミングが変わります。

  • ハード参照:参照元を読み込むと、その参照先も一緒に必要になります。宝箱のモデルと、その表面のマテリアルなど、同時に使うものを結びつける基本の方法です。
  • ソフト参照:アセットの保存場所を持ち、読み込みは別の処理で行います。例えばギャラリーの大きな画像を、ページを開いたときに読み込む用途です。

図の「いつも使う/たまに使う」は使い分けの目安です。大切なのは、どの参照元を読み込むと何が必要になるかです。ハード参照だから必ずゲーム起動時に全部読み込む、という意味ではありません。

ソフト参照に変えても、必要な画像が自動で表示されるわけではありません。読み込みを依頼し、完了してから表示に使います。ほかの処理を進めながら読み込みを待つ方法を 非同期ロード と呼びます。BlueprintのSoft Object ReferenceとAsync Load Assetを使う実践は、非同期ロードとソフト参照の記事で扱います。今は、整理のためにすべての参照を置き換える必要はありません。

Sponsored

実践:散らかったアセットを安全に「引っ越す」

ここでは、レベルで使っている自作のマテリアル1つを移動します。例えば床に割り当てた NewMaterial を、MyGame/Environments/Floor へ整理する練習です。まだ素材が少なければ、同じ手順を試せるテスト用プロジェクトで構いません。移動前の状態をコミットまたはバックアップしてから始めます。

自作マテリアルがまだなければ、マテリアル入門で色を付けるものを1つ作ってから試せます。配布パック全体を最初の練習に使う必要はありません。

散乱した箱の部屋と、棚に整理された部屋のビフォーアフター。エディタ内で動かして、Fix Upで締める
  1. 使っている場所を確認する:対象のマテリアルをReference Viewerで開き、どのモデルやレベルから使われているかを見ます。そのレベルを開き、現在の見た目も確認します。
  2. 行き先を作って移動する:コンテンツブラウザで MyGame/Environments/Floor を作ります。対象をそのフォルダへドラッグし、「Move Here」を選びます。「Copy Here」は複製なので、今回は使いません。
  3. リネームもこのタイミングで: NewMaterialM_Floor_Stone に。プレフィックス表を見ながら、名前だけで正体が分かる形へ直します
  4. 参照先を更新して保存する:移動元のフォルダで「Fix Up Redirectors in Folder」を実行し、変更を保存します。保存に失敗したメッセージがあれば、その対象を先に確認します。
  5. 同じ見た目か確かめる:使用しているレベルを開き直し、床の色や模様が移動前と同じか確認します。マテリアルの指定欄に移動先のアセットが入っているかも見ます。
  6. 変更を記録する:ソース管理を使っているなら、移動・名前変更と、参照先を更新したファイルをまとめてコミットします。

レベルを開き直しても見た目が同じで、指定先も新しい場所を指していれば、この移動は完了です。見た目が変わった場合は、どのマテリアルや画像の指定が外れたかを確認します。参照切れの症状は、必ず特定の色になるわけではありません。 Output Logに不足ファイルの名前が出ていれば、保存場所と照合します(→ Output Logの見方)。

ポイントは2つです。

  • 移動と確認を一組にする:エディタ内で移動し、参照を更新して保存したら、使っているレベルを開き直します。
  • 引っ越しは小さく分けて: 一晩で全部やろうとせず、「今日はUIフォルダだけ」のように区切ると、問題が起きたときの切り分けも楽です

おまけ:先に知っておくと良いこと

よくある間違い何が起きるか対策
エクスプローラーでアセットを移動・リネーム参照が切れ、Fix Up Redirectors でも直せない必ず コンテンツブラウザ内で操作する
名前から種類や用途が分からない開くまで中身を判断しにくいT_などの接頭辞と、用途の分かる名前を付ける
外部パックのフォルダへ自作アセットを混ぜる更新や削除の対象を判断しにくい自作はMyGame以下へまとめ、配布元の構成は確認して扱う

見た目が戻らない場合は、追加の移動や削除を止め、移動前との差分を確認します。元のファイルが失われているなら、履歴やバックアップから戻すことも必要です。Fix Upは残っている転送情報を整理する処理なので、失われたアセットそのものを復元する機能ではありません。

まとめ:アセット管理チェックリスト

チェック項目頻度
一緒に編集するアセットを探しやすい場所へまとめたか機能追加時
全アセットに 正しいプレフィックス が付いているかアセット作成の都度
移動・リネーム後に Fix Up Redirectors を実行したかコミット前の都度
大きなアセットの読み込み時期を見直す必要があるかロード時間やメモリ使用量が問題になったとき
Developers フォルダに本番アセットが残っていないかマイルストーンごと

最初から完全な分類を作るより、今使っている素材を1つ選び、名前・置き場所・使っている相手を説明できるようにしてみましょう。アセットが増えても、その単位で整理を続けられます。

次はエディタUIの基本でコンテンツブラウザの操作を確かめ、Print Stringのデバッグ手法で「動かないときに調べる力」を手に入れましょう。

あなたのプロジェクトの Content 直下には、いま何個のアセットが「住所不定」のまま転がっているでしょうか。引っ越し先を1フォルダだけ決めて、手を動かしてみてください。

参考資料

Epic公式のReference ViewerRedirectorsMigrating AssetsReferencing Assetsで、それぞれの仕組みを確認できます。

Unreal Engine このセクションのノート98