Система ассетов и Content Browser
Урок объясняет, как Unreal хранит ассеты, как они ссылаются друг на друга и почему файлы нельзя двигать в проводнике.
Ассет — это любой ресурс проекта (модель, текстура, материал, Blueprint, звук), хранящийся в отдельном файле и доступный через Content Browser.
Что такое ассет в Unreal
В Unity ассеты лежат как обычные файлы плюс служебные .meta. В Unreal почти всё — модели, материалы, Blueprint'ы — упаковано в бинарные файлы с расширением .uasset внутри папки Content. Эти файлы нельзя осмысленно открыть в текстовом редакторе; ими управляют только через Content Browser внутри движка.
Ссылки между ассетами
Ассеты ссылаются друг на друга. Материал ссылается на текстуры, Blueprint персонажа — на меш и анимации, уровень — на размещённые Actor'ы. Эти связи Unreal отслеживает по внутреннему пути ассета. Поэтому ключевое правило: перемещать, переименовывать и удалять ассеты нужно только внутри Content Browser, чтобы движок обновил все ссылки. Если переместить .uasset в проводнике операционной системы, ссылки сломаются.
Material_Brick.uasset |--ссылается на--> Texture_BrickColor.uasset |--ссылается на--> Texture_BrickNormal.uasset BP_Hero.uasset |--ссылается на--> SK_HeroMesh.uasset |--ссылается на--> Anim_HeroRun.uasset
Импорт внешних ресурсов
Модели (FBX), текстуры (PNG, TGA), звуки (WAV) импортируются перетаскиванием в Content Browser или кнопкой Import. При импорте Unreal конвертирует их в свой формат .uasset. Исходный файл при этом не нужен для работы игры — движок использует уже сконвертированную копию.
| Тип ресурса | Формат импорта | Во что превращается |
| 3D-модель | FBX, OBJ | Static Mesh или Skeletal Mesh |
| Текстура | PNG, TGA, JPG | Texture2D |
| Звук | WAV | Sound Wave |
Как работает под капотом
Каждый ассет имеет уникальный путь вида /Game/Characters/BP_Hero. Движок хранит граф зависимостей между ассетами и при упаковке игры включает в сборку только те, что реально используются. Если ассет ни на что не ссылается и ни от чего не зависит, при упаковке он может быть исключён. Поэтому «потерянные» ассеты не попадают в финальную игру, экономя её размер.
Частые ошибки
- Двигать файлы в проводнике ОС. Это ломает ссылки; всегда работайте через Content Browser.
- Удалять ассет, на который ссылаются. Перед удалением Unreal покажет список ссылающихся объектов через Reference Viewer.
- Класть всё в одну папку. Без структуры папок (Characters, Materials, Maps) проект быстро превращается в хаос.
Reference Viewer и зависимости
Когда проект разрастается, становится трудно держать в голове, что от чего зависит. Здесь выручает встроенный инструмент Reference Viewer: щёлкните по ассету правой кнопкой и выберите Reference Viewer, и Unreal нарисует граф — что ссылается на этот ассет и на что ссылается он сам. Это бесценно перед удалением: вы сразу видите, не сломаете ли что-то. Слева на графе — те, кто использует ассет, справа — то, что использует он.
Связанный инструмент — Size Map: он показывает, сколько места занимает ассет вместе со всеми своими зависимостями. Так находят «тяжёлые» цепочки, раздувающие размер игры. Привычка изредка проверять зависимости спасает проект от хаоса, когда удаление одной текстуры неожиданно ломает десяток материалов.
Итоги
- Ассеты хранятся в бинарных файлах
.uassetв папке Content. - Ассеты ссылаются друг на друга; двигать и переименовывать их можно только в Content Browser.
- Внешние ресурсы импортируются и конвертируются в формат движка.
- Неиспользуемые ассеты не попадают в финальную сборку.