Agregar URP a un proyecto de Unity existente sin romperlo

Universal Render Pipeline (o URP para abreviar, anteriormente LWRP o Light Weight Render Pipeline) es una de las canalizaciones de renderizado disponibles en Unity. Ofrece una variedad de efectos de posprocesamiento y configuraciones de iluminación mientras mantiene un alto rendimiento.

Para aprovechar todas las ventajas de URP, deberá crear un proyecto de URP Unity. O bien, si desea acceder a las funciones disponibles en URP en su proyecto existente, deberá actualizar la canalización del proyecto desde la canalización de procesamiento integrada a URP.

En resumen, los pasos para instalar URP en un proyecto existente son: Instale el paquete Universal RP, cree un activo de URP con el renderizador correcto según el tipo de su proyecto (2D o 3D), establezca la Configuración de canalización de procesamiento programable en la Configuración del proyecto en el activo URP recién creado y, por último, actualice los materiales.

Todos esos pasos pueden sonar confusos sin imágenes, lo sé. Pero no se preocupe, le mostraré paso a paso cómo agregar URP a sus proyectos de Unity existentes. Esta guía cubrirá la versión 2020 LTS y 2021 de Unity Editor y las versiones más recientes.

Antes de que comencemos

Antes de comenzar, solo quiero decirles que, para esta guía, usaré Unity Editor 2021.2.12f1, que es la última compilación oficial no LTS en el momento de escribir este artículo. La guía también debería aplicarse a las versiones más recientes de Unity Editor.

Editor de unidad 2021.2.12f1

Pero no se preocupe, también proporcionaré capturas de pantalla de la versión 2020 LTS. La diferencia es menor y debería poder seguirlo bien. Me aseguraré de señalar los pasos que son diferentes entre ambas versiones.

Instalar paquete RP universal

En primer lugar, a menos que su proyecto se haya creado como un proyecto URP 2D/3D desde el principio, el paquete URP no existirá en su proyecto. Por lo tanto, debe instalarlo manualmente en su proyecto de Unity.

Ventana > Administrador de paquetes

Abra la ventana Administrador de proyectos si aún no lo ha hecho. Si no puede encontrarlo, vaya a Ventana > Administrador de paquetes.

Seleccionar registro de unidad

Cambie la vista de paquetes a Unity Registry para ver todos los paquetes de Unity.

Busque e instale el paquete Universal RP

Desplácese hacia abajo y busque el paquete Universal RP, o búsquelo en el cuadro de búsqueda en la parte superior derecha y luego haga clic en Instalar.

Nota: en la versión 2020, verá una versión anterior del paquete Universal RP. No se preocupe por eso y continúe y haga clic en Instalar.

Instalación del paquete Universal RP

Espere a que se descargue e importe los archivos necesarios. Esto generalmente no tomará mucho tiempo. Una vez que termine de instalarse, pasamos al siguiente paso.

** Si está utilizando Unity 2021 o más reciente y su proyecto es un proyecto 3D, vaya directamente a la sección «Actualizar materiales en el proyecto» ya que no es necesario crear archivos de activos URP manualmente. **

Crear un recurso de URP y datos de renderizador

Ahora que el paquete Universal RP está instalado en su proyecto de Unity. Tendrá que crear un activo URP y datos de representación.

Versión 2021 y posteriores

Crear > Representación > Activo URP (2D o Universal)

Haga clic con el botón derecho o haga clic en el botón más en la parte superior izquierda de la ventana del explorador de archivos del proyecto y seleccione Crear > Representación > Activo URP (con 2D/Universal Renderer).

El tipo de renderizador dependerá del tipo de proyecto con el que esté trabajando.

  • Si su proyecto de Unity es un proyecto 3D, salte directamente a la sección «Actualizar materiales en el proyecto», ya que este proceso será automatizado por Render Pipeline Converter.
  • Si su proyecto de Unity es un proyecto 2D, elija URP Asset (con 2D Renderer).

Elija el que sea apropiado para su proyecto.

El activo URP y sus datos de renderizador

Luego se le pedirá que asigne un nombre al activo URP, asígnele el nombre que desee. Esto generará 2 archivos para usted: uno es un activo URP y el otro es un Renderer Data (Universal Renderer Data o 2D Renderer Data).

Ahora puede pasar al siguiente paso.

Versión 2020 LTS

Crear > Renderizado > Canalización de renderizado universal > Activo de canalización (renderizador directo)

Haga clic con el botón derecho o haga clic en el botón más en la parte superior izquierda de la ventana del explorador de archivos del proyecto y seleccione Crear > Representación > Canalización de renderización universal > Activo de canalización (Procesador directo).

El activo de URP y los datos del renderizador de reenvío

Se le pedirá que ponga un nombre para el activo, así que asígnele el nombre que desee. Esto generará 2 archivos: uno es un activo URP y el otro es un Forward Renderer Data.

Si su proyecto de Unity es un proyecto 3D, puede continuar y pasar a la siguiente sección.

Si su proyecto de Unity es un proyecto 2D, hay algunas cosas más que debe hacer.

Un renderizador de datos para proyectos 3D

Los datos del renderizador que acabamos de crear se llaman Forward Renderer Data, que es para proyectos 3D.

Para proyectos 2D, necesitará un renderizador 2D en su lugar.

Crear > Renderizado > Canalización de renderizado universal > Activo de canalización (renderizador directo)

Haga clic con el botón derecho o haga clic en el botón más en la parte superior izquierda de la ventana del explorador de archivos del proyecto y seleccione Crear > Renderización > Canalización de renderizado universal > Renderizador 2D (Experimental).

La versión del paquete Universal RP que sea compatible con Unity Editor 2020 contará con el 2D Renderer que se encuentra en su etapa experimental. No te preocupes, funciona bien.

Datos del renderizador 2D

Esto generará un archivo de datos de renderizador 2D.

Activo URP en la ventana Inspector

Ahora, seleccione el archivo URP Asset y eche un vistazo al inspector. Expanda la sección General y debería poder ver el campo Lista de renderizadores.

Notará que los datos del renderizador directo se asignan a la lista de renderizadores.

Reemplácelo con datos de renderizador 2D

Reemplace los datos del renderizador con los datos del renderizador 2D que acabamos de crear arrastrándolos y soltándolos en el campo, o haciendo clic en el botón circular junto al campo y seleccionando el archivo de datos del renderizador 2D.

El archivo Forward Renderer Data ahora se puede eliminar de forma segura del proyecto, ya que no lo usaremos.

Con esto, estás listo para pasar a la siguiente sección.

Dígale al proyecto que use el activo URP que acabamos de crear

Una vez que hayamos creado el activo URP y los datos del renderizador, necesitaremos indicarle al proyecto de Unity que lo use en lugar de la canalización integrada estándar.

Editar > Configuración del proyecto…

Abra la ventana Configuración del proyecto yendo a Editar > Configuración del proyecto…

Configuración del proyecto > Gráficos

En la ventana Configuración del proyecto, en la sección Gráficos, verá un campo denominado Configuración de canalización de renderizado programable. Aquí es donde colocará el archivo de activos URP.

Elija el archivo de activos URP

Seleccione el archivo de activos URP o arrástrelo y suéltelo en el campo.

Haga clic en Continuar

Si hay un cuadro de confirmación, simplemente haga clic en Continuar.

Establecer con éxito el activo URP

Eso es. Cierre la ventana Configuración del proyecto y vaya a la siguiente sección.

En este punto, algunos de los materiales de su proyecto pueden aparecer rotos (volviéndose rosados). Lo arreglaremos en la siguiente sección.

Actualizar materiales en el proyecto

En este momento, todos los materiales de tu proyecto de Unity siguen usando el sombreador heredado, que proviene de la canalización de renderización integrada estándar.

Es hora de actualizarlos para usar el sombreador URP Lit.

El proceso para esto es diferente para la versión 2020 de Unity Editor y las versiones más recientes.

Versión 2021 y posteriores

Para la versión 2021 y posteriores, utilizaremos Render Pipeline Converter.

Ventana > Renderizado > Convertidor de tubería de renderizado

Abra Render Pipeline Converter yendo a Ventana > Rendering > Render Pipeline Converter.

Convertidor de canalización de procesamiento

Una vez que lo tenga abierto, verá un cuadro desplegable que dice «Convertir incorporado a 2D (URP)».

  • Si su proyecto de Unity es un proyecto 2D, esto es lo que desea.
  • Si su proyecto de Unity es un proyecto 3D, cambie a «Integrado en URP».

Integrado a URP

Seleccione «Integrado en URP» para cambiar el modo de conversión si su proyecto de Unity es un proyecto 3D.

Marque cada casilla de verificación

Verá listas vacías con casillas de verificación (en el caso de 2D, verá 1 casilla de verificación). Asegúrese de que todas las casillas de verificación estén marcadas y luego haga clic en el botón Inicializar convertidores. Este proceso puede llevar un tiempo si su proyecto es grande.

Asegúrate de que todo esté comprobado

Una vez finalizada la inicialización, verá listas de cosas que se pueden actualizar. Elija las cosas que desea actualizar o simplemente seleccione todo y luego haga clic en Convertir activos.

errores

Si ve estos errores, puede ignorarlos con seguridad.

¡Ya casi has terminado! En la siguiente sección, veremos algunos problemas que pueden haber ocurrido.

Versión 2020 LTS

En Unity Editor versión 2020, actualizar todos los materiales y objetos del juego en su proyecto es bastante fácil.

Editar > Canalización de renderizado > Canalización de renderizado universal > Actualizar materiales Renderizador 2D > Actualizar

Vaya a Edición > Canalización de renderizado > Canalización de renderizado universal. Tendrás algunas opciones para elegir.

  • Para proyectos 3D, tiene las opciones para actualizar todo el proyecto o solo los materiales seleccionados.
  • Para proyectos 2D, tiene las opciones de actualizar todo en la escena abierta actualmente o actualizar todo el proyecto.

Elige el que quieras y listo. Estás mayormente listo para irte.

En la siguiente sección, abordaremos algunos problemas que pueden ocurrir después de la actualización.

Solución de algunos problemas después de la actualización

Pueden ocurrir algunos problemas después de actualizar a URP. He enumerado la solución a algunos de ellos a continuación.

todo es negro

A veces notarás que la escena del juego se vuelve oscura o completamente negra después de actualizar a URP.

Esto es perfectamente normal, especialmente si ve una pantalla completamente negra después de actualizar un proyecto 2D.

Esto sucede porque todo usa el sombreador URP Lit, lo que significa que ahora todo interactúa con las fuentes de luz.

Normalmente, en proyectos 2D, no hay ninguna fuente de luz, para empezar, porque una escena 2D no necesita fuentes de luz para poder mostrar objetos en la pantalla, así que cuando el material cambia a uno que es capaz de reaccionar luz, se oscurece debido a la falta de fuentes de luz en la escena.

Antes de URPDespués de URP

Esto se puede arreglar agregando fuentes de luz a la escena.

Luz > 2D > Luz 2D

Puede comenzar agregando Global Light 2D para iluminar toda la escena primero y luego comenzar a agregar otros tipos de fuentes de luz.

Los proyectos 3D no tienen este problema porque siempre vienen con algunas fuentes de luz como la luz direccional y la luz de Skybox.

Algunos de mis objetos de juego siguen siendo rosas.

un objeto rosa

Esto puede suceder a veces en Unity Editor versión 2020. Esto sucede cuando el objeto del juego usa el material predeterminado, que es un material de solo lectura, por lo que la función de actualización no puede cambiar su sombreador.

Material predeterminado con sombreador estándar

Esto se puede arreglar creando un nuevo Material y usándolo en su lugar.

El material iluminado por defecto

O puede usar el material Lit predeterminado proporcionado por URP que se encuentra dentro de la carpeta del paquete de Universal RP: Paquetes > Universal RP > Tiempo de ejecución > Materiales.

[2D Unity 2021 and newer] Hice todo como me dijiste pero sigue sin funcionar

Añade un poco de luz primero

Para proyectos 2D en Unity 2021, la iluminación comenzará a funcionar solo cuando agregue al menos una fuente de luz a la escena. Solo entonces la escena se volverá más oscura y comenzará a interactuar con las fuentes de luz.

Si eso no lo soluciona, eche un vistazo a la sección Calidad dentro de Configuración del proyecto.

Asegúrate de que sea Ninguno

Asegúrese de que el campo Render Pipeline Asset de cada nivel de calidad esté establecido en Ninguno para evitar que anule la configuración básica.

OriginalLighting + Post-Processing en URP

Para ir finalizando

Se habla de que URP se convertirá en la canalización de procesamiento predeterminada para Unity en el futuro y el renderizador estándar incorporado actual quedará obsoleto, y podría suceder de verdad en un futuro cercano, por lo que aprender a usarlo ahora definitivamente lo ayudará en el largo plazo.

Y ahora que aprendió cómo convertir un proyecto de Unity de la canalización de renderizado estándar al URP, podrá seguir desarrollando su juego en un entorno mejor.

Espero que esta haya sido una experiencia agradable para ti. ¡Gracias, y nos vemos de nuevo en el próximo artículo!