Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

Преобразование ассетов с помощью конвертера Render Pipeline

Конвертер Render Pipeline преобразует ассеты, созданные для встроенного проекта Render Pipeline, в ассеты, совместимые с URP.

Примечание: Процесс преобразования вносит необратимые изменения в проект. Перед преобразованием создайте резервную копию проекта.

Типы преобразований и преобразователи

Конвертер Render Pipeline позволяет вам выбрать один из следующих типов преобразования:

  • Встроенный Render Pipeline до URP

  • Встроенный Render Pipeline 2D до URP 2D

  • Модернизация 2D URP ассетов

Когда вы выбираете один из типов преобразования, инструмент показывает вам доступные конвертера.

В следующих разделах описываются конвертер, доступные для каждого типа преобразования.

Встроенный Render Pipeline до URP

Этот тип преобразования преобразует элементы проекта из Встроенного Render Pipeline в URP.. Он позволяет использовать следующие параметры:

  • Настройки рендеринга: Создает ресурс URP и ресурс универсального рендеринга, затем преобразует настройки во Встроенном проекте Render Pipeline в эквивалентные свойства ресурса URP.

  • Материальная модернизация: Преобразования сборные материалы в материалы URP. Этот конвертер не поддерживает материалы с пользовательскими шейдерами. О поддержке дополнительных встроенных шейдеров и о переопределении текущих см. раздел: расширение материалов модернизаторов

  • Конвертер материалов только для чтения: Преобразования предварительно созданные материалы только для чтения которые не находятся в Активы папка проекта, например Диффузный по умолчанию и Линия по умолчанию. Этот конвертер проверяет проект и создает временную .index файла, что может занять значительное время.

  • Animation Clip Converter: Преобразует анимационные клипы после завершения конвертера Материальная модернизация. Этот конвертер доступен только если проект содержит анимации, которые влияют на свойства материалов, или Post-Processing Stack v2 свойства.

  • Конвертер v2 стека последующей обработки: Преобразует тома, профили и слои стека последующей обработки v2 в тома, профили и камеры URP. Этот конвертер проверяет проект и создает временный файл .index, что может занять значительное время. Этот конвертер доступен только при установке пакета v2 стека последующей обработки.

Встроенный Render Pipeline 2D до URP 2D

Этот тип преобразования преобразует элементы проекта из Встроенных Render Pipeline 2D в URP 2D.

Доступные преобразователи:

  • Улучшение материалов и справочных материалов

    Этот конвертер преобразует все материалы и ссылки на материалы из встроенного Render Pipeline 2D в URP 2D.

Модернизация 2D URP ассетов

Этот тип преобразования обновляет ресурсы проекта 2D с более ранней версии URP до текущей версии URP.

Доступные преобразователи:

  • Параметрическое обновление до Freeform Light

    Этот конвертер преобразует все параметрические огни в огни свободной формы.

Как использовать конвертер Render Pipeline

Чтобы преобразовать ассеты проекта:

  1. Выберите Окно > Рендирование > Render Pipeline Конвертер. Unity открывает окно Render Pipeline Конвертера.

    Render Pipeline Диалог преобразования
    Render Pipeline Диалог преобразования
  2. Выберите тип преобразования.

    Тип преобразования
    Тип преобразования
  3. В зависимости от типа преобразования в диалоге отображаются доступные преобразователи. Установите или снимите флажки рядом с именами преобразователей, чтобы включить или отключить преобразователи.

    Выберите конвертер
    Выберите конвертер

    Список доступных преобразователей см. в разделе Преобразователи.

  4. Нажмите Инициализация конвертеров. Конвертер Render Pipeline предварительно обрабатывает ассеты в проекте и показывает список элементов для преобразования. Установите или снимите флажки рядом с ассетами, чтобы включить или исключить их из процесса преобразования.

    Инициализация конвертеров
    Инициализация конвертеров

    На следующем рисунке показаны инициализованные конвертер.

    Инициализированные конвертер
    Инициализированные конвертер

    Нажмите на конвертер, чтобы проверить список элементов, которые конвертер собирается преобразовать.

    Конвертер подробный вид
    Конвертер подробный вид

    Желтый значок: желтый значок рядом с элементом указывает, что для выполнения преобразования может потребоваться действие пользователя. Наведите указатель мыши на значок, чтобы проверить описание проблемы.

  5. Нажмите Convert Assets, чтобы начать процесс преобразования.

    Примечание: Процесс преобразования вносит необратимые изменения в проект. Перед преобразованием создайте резервную копию проекта.

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

    Преобразование завершено
    Преобразование завершено

    Зеленый флажок: конверсия прошла без проблем.

    Желтый значок: преобразование завершено с предупреждениями и может потребовать действий пользователя.

    Красный значок: преобразование не удалось.

  6. Щелкните конвертер, чтобы проверить список обработанных элементов в этом конвертере.

    Преобразование завершено. Детальный вид конвертера
    Преобразование завершено. Детальный вид конвертера

    После просмотра преобразованного проекта закройте окно Render Pipeline Converter.

Запустить преобразование с помощью API или CLI

Конвертер Render Pipeline реализует Преобразователи класс с RunInBatchMode методы, которые позволяют запускать процесс преобразования из командной строки.

Например, следующий скрипт инициализирует и выполняет конвертер Материальная модернизация, и Конвертер материалов только для чтения.

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Rendering.Universal;
using UnityEngine;

public class MyUpgradeScript : MonoBehaviour
{
    public static void ConvertBuiltinToURPMaterials()
    {
        Converters.RunInBatchMode(
            ConverterContainerId.BuiltInToURP
            , new List<ConverterId> {
                ConverterId.Material,
                ConverterId.ReadonlyMaterial
            }
            , ConverterFilter.Inclusive
        );
        EditorApplication.Exit(0);
    }
}

Чтобы запустить примерное преобразование из командной строки, используйте следующую команду:

"<path to Unity application> -projectPath <project path> -batchmode -executeMethod MyUpgradeScript.ConvertBuiltinToURPMaterials

Также проверьте: Unity Editor аргументы командной строки.

Как добавить пользовательские обновления материалов в Project

Фреймворк Material Upgrader от Unity позволяет определять пути обновления для шейдеров, например, автоматически переносить старые шейдеры на URP или на собственные альтернативы.

Чтобы сделать это, вы определяете: — пользовательский MaterialUpgrader, который отображает старый шейдер на новый. — IMaterialUpgradersProvider, чтобы открыть upgrader(s) для системы.

// This class defines the upgrade rule from an old shader to a new shader
public class MaterialUpgraderExample : MaterialUpgrader
{
    // Priority determines order — higher values override lower-priority upgraders
    public int priority => 1000;
    public MaterialUpgraderExample(string oldShaderName, string newShaderName)
    {
        if (oldShaderName == null)
            throw new ArgumentNullException(nameof(oldShaderName));

        // Maps the old shader to the new shader with optional property remapping (null here)
        RenameShader(oldShaderName, newShaderName, null);
    }
}

// This provider makes the upgrader discoverable by the upgrader system.
// It declares support for the Universal Render Pipeline and exposes the custom upgrade rule.
[SupportedOnRenderPipeline(typeof(UniversalRenderPipeline))]
private class ExampleMaterialProvider : IMaterialUpgradersProvider
{

    public IEnumerable<MaterialUpgrader> GetUpgraders()
    {
        // Replace "SomePathToShader" and "MappingShaderPath" with actual shader names/paths
        yield return new MaterialUpgraderExample("SomePathToShader", "MappingShaderPath");

        // Add as many upgraders you need
    }
}