Инструмент Replace References в Unreal Engine 4

0
5
Инструмент Замены Ссылок в Unreal Engine 4

Инструмент замены ссылок (Replace References Tool) предоставляет простой способ объединять в редакторе несколько активов в один актив. В качестве примера рассмотрим текстуру, которая многократно дублируется в процессе разработки, что приводит к пустой трате ресурсов, сохраняя несколько копий того, что составляет ту же самую текстуру. Инструмент Замены Ссылок позволяет пользователю выбирать все такие виды использования по своему усмотрению и вместо этого указывать на один конкретный экземпляр текстуры.

Хотя это значительно уменьшилось благодаря способности Unreal Engine просто повторно импортировать исходный актив, если вы попытаетесь дважды добавить тот же самый файл (то же имя и путь), это все равно может случиться с несколькими людьми, работающими над игрой.

Использование инструмента замены ссылок

Консолидация активов довольно проста в использовании, но следует проявлять осторожность, чтобы использовать ее должным образом.

Вызов инструмента замены ссылок

Чтобы получить доступ к инструменту, вы просто выберите хотя бы один актив, который вы хотите использовать в процессе консолидации в Контент браузере. Затем щелкните правой кнопкой мышки и в появившемся контекстном меню нажмите “Replace References” (Переместить ссылки). Появится диалоговое окно Replace References, заполненное всеми активами, которые были выбраны при вызове инструмента. Вы можете добавить дополнительные активы, перетащив их из Контент браузера в основную часть диалогового окна.

Консолидация обычно ограничена выбранными объектами того же типа, и за некоторыми исключениями допускаются Текстуры и Материалы. Если вы не видите параметр Переместить Ссылки или операция перетаскивания не была разрешена, вы должны убедиться, что у вас есть только выбранные активы того же типа! Если вы случайно добавили актив, который не собирались добавлять, вы можете удалить его из диалогового окна, выбрав его и нажав на кнопку Delete на клавиатуре.

Вызов инструмента замены ссылок UE4

Здесь текстура дублируется много раз! Выбрав их все и щелкнув правой кнопкой мышки, выберите вариант Переместить ссылки.

Консолидация активов

После того, как вы заполнили диалог со всеми активами, которые вы хотели бы использовать в процессе консолидации, выберите один из активов, который будет служить «активом для консолидации», а затем нажмите на Консолидация Активов. Все ссылки на активы, которые вы не выбрали из списка, будут заменены ссылками на актив, который вы сделали, удалив неиспользуемые активы в процессе.

Закрепить 2 UE4

Функция Консолидация Активов не активна (и не доступна), пока в диалоговом окне не появится по меньшей мере два актива или не будет выбран хотя бы один из них.

В диалоговом окне Переместить ссылки выбор актива обозначает его как «актив для консолидации».

Консолидация 2.1 UE4

После нажатия Консолидация Активов вам будет предложено диалоговое окно Delete Assets (Удалить активы), которое позволит вам удалить активы, которые больше не ссылаются и, следовательно, больше не нужны. Нажмите Delete.

Консолидация 3 UE4

Все дубликаты были объединены с выбранным активом!

Сохранение поврежденных пакетов

В диалоговом окне консолидации предусмотрена возможность сохранения поврежденных пакетов в нижнем левом углу. Если вы проверите эту опцию, вам будет предложено завершить операцию консолидации, чтобы сохранить любой из UAssets (пользовательские активы), поврежденных процессом. Это удобный способ гарантировать, что все UAssets, затронутые консолидацией, будут правильно сохранены без необходимости самостоятельно находить их в Контент браузере. Если по какой-либо причине консолидация не увенчалась успехом или возникла ошибка, UAssets не будут сохранены, и вы будете предупреждены соответствующим образом.

Как работает Инструмент Replace References

Фактический процесс консолидации происходит в несколько этапов. Во-первых, для любых допустимых объектов, которые должны быть консолидированы, инструмент пытается заменить все ссылки этих объектов ссылками на «объект, который будет консолидирован» внутри объектов / UAssets, которые уже загружены и в памяти. Это означает, что если у вас уже открыта карта или UAsset, относящаяся к одному из объектов, которые будут консолидированы, инструмент попытается немедленно ее обновить. Затем инструмент пытается удалить объекты, подлежащие консолидации напрямую (есть вероятность, что здесь может произойти сбой, см. Ограничения и предостережения). Наконец, если удаление было успешным, инструмент оставит редиректоры объектов вместо удаленных объектов. Они перенаправляют выгруженные UAssets со ссылками на удаленные объекты на объект, к которому вы их скрепили.

Лучшие практики

  • Неправильное использование инструмента Replace References может быть чрезвычайно опасным с учетом характера того, что он делает. Пользователи инструмента всегда должны тщательно подумать о том, что они собираются делать, и решить, будет ли полученная операция иметь смысл в контексте их активов. Инструмент всегда пытается предотвратить некоторые явно неправильные консолидации, но пользователи все равно должны проявлять осторожность, чтобы избежать разрушения UAssets. Имейте в виду, что инструмент удалит консолидированные активы и направит их предыдущее использование на выбранный объект; это не альтернативный метод выполнения операции типа «замена Актера».
  • Хотя инструмент Replace References Tool попытается принудительно заменить ссылки на Объекты для консолидации в UAssets / maps, которые в настоящее время загружены и в памяти, лучше всего увеличить вероятность успешной консолидации, имея как можно меньше Объектов, ссылающихся на объекты для консолидации, насколько это возможно при использовании инструмента. В частности, крайне не рекомендуется, чтобы суб-редакторы (такие как редактор Blueprint Editor или Редактор Статик меши) открывали и использовали активы, которые пользователь собирается консолидировать.
  • Инструмент Replace References Tool усиленно использует редиректоры объектов, что означает то, что иногда полезно использовать командный файл Fixup Redirects после использования инструмента Replace References.

Ограничения и предостережения

Хотя полезно, инструмент Replace References Tool имеет некоторые ограничения и предостережения, описанные ниже:

  • Чтобы предотвратить случайное уничтожение пользователем своей работы, инструмент Replace References Tool может быть вызван только для активов, которые имеют один и тот же класс / тип, за исключением, если все объекты являются типом Материала или типом Текстуры (что означает, что Материал мог быть объединен с Материалом Decal, хотя они не являются строго одним и тем же типом). Это ограничение существует для предотвращения консолидаций, которые, несомненно, вызывают сбои, такие как объединение Материала в Статик меш. Даже там, где допускается кросс-тип консолидации, инструмент демонстрирует четко видимое предупреждение о том, что для консолидации выбраны несколько типов.
  • Инструмент Replace References Tool не всегда может консолидировать активы, выбранные пользователем. Если пользователь выбирает «актив для консолидации», который содержит ссылки на один из активов для консолидации, этот конкретный актив для консолидации не будет консолидироваться. Разрешение такой операции заставляет «актив консолидироваться», ссылаясь на себя, что, несомненно, приведет к неприятностям. По завершении операции консолидации пользователь предупреждается о том, что, если таковые имеются, их активы были пропущены для консолидации.
  • Инструмент Replace References Tool иногда может не консолидировать действительный актив, если не все его ссылки удалены, или по какой-то причине его нельзя удалить. Этот тип сбоев является критическим, что приводит к «частичной консолидации», в которой некоторые виды использования актива были консолидированы, а некоторые нет. Этот тип сбоя должен быть довольно редким, но если ситуация возникнет, пользователь будет предупрежден с диалогом, показывающим затронутые активы и потенциально затронутые UAssets. Пользователь НЕ должен сохранять ни одного из затронутых UAssets, или они будут принимать потенциально катастрофическую частичную консолидацию.
  • Как упоминалось в Лучших практиках, крайне не рекомендуется использовать инструмент Replace References Tool, в то время как потенциально затронутые активы используются в различных суб-редакторах, таких как Persona или Blueprint Editor. В конечном счете, большинство суб-редакторов пока не реагируют хорошо на то, что ссылки были заменены из них, поэтому использование суб-редакторов при консолидации может привести к тому, что суб-редакторы будут помещены в недействительные состояния и / или может быть сбой.
  • Инструмент Replace References Tool заменяет ссылки на консолидированные объекты в UAssets, которые уже были загружены во время операции. Он полагается на перенаправление объектов, чтобы исправить оставшиеся ссылки в незагруженных UAssets. Это означает, что следует соблюдать осторожность, чтобы не выполнять действия, которые будут переопределять, перезаписывать, удалять перенаправителей и т.д. только, если это специально не требуется. В противном случае некоторые UAssets будут правильно исправлены, а некоторые – нет. Как указано выше, использование командной строки Fixup Redirects может облегчить эту проблему.
  • На данный момент, как только операция консолидации была успешно выполнена, рекомендуется сохранить соответствующие UAssets, прежде чем пытаться загрузить в память любые выгруженные UAssets, которые также ссылаются на один из консолидированных объектов. В настоящее время выдающаяся “ошибка” Контент Браузера / перенаправителя объектов может привести к появлению консолидированных активов в браузере, если перед сохранением загружается ссылка на UAsset.