Unity URP. Туторіал для початківців
«Фотореалізм, сочна картинка чи просто крутий стиль гри? Це не про Unity!»
Цей стереотип ми чуємо вже давно. ААА-проєкти поставили планку на фотореалізмі ігор і з кожним оновленням заліза вони лише підвищують її. І щоразу поруч з захоплюючими дух краєвидами ігор ми бачимо значок Unreal Engine, що змушує багатьох сумніватися, а чи зможе так Unity? І відповідь на це питання — так! А сьогодні ми розберемося, як це зробити.
![](https://s.dou.ua/storage-files/image_82548947721681127168804.png)
Теорія
URP (universal render pipeline) — це один з SRP(scriptable render pipeline), анонсованих Unity у версії 2019.3.
Легше не стало, тож давайте розбиратися далі. SRP — це крута можливість розробникам самостійно через скрипти змінювати спосіб рендеру, не поринаючи у глибини математики шейдерів та фізики світла у Unity.
Ціль URP в тому, щоб ще більше зменшити це заглиблення і дати вже готовий пресет для будь-кого, хто працює з рушієм. URP може видати красиву та соковиту картинку у будь-якому необхідному стилі мінімальними затратами ресурсів пристроїв та розробників. Але як? Величезна кількість налаштувань, вбудований постпроцесинг, змінений рушій рендерингу світла і матеріалів... URP повністю змінює підкапотну частину нашого улюбленого рушія, роблячи його ще кращим, ніж він був до цього!
![](https://s.dou.ua/storage-files/image_83056841631681127172595.png)
Практика
Давайте розберемося на практиці, що ж таке URP і з чим його їдять.
Існує два способи почати використовувати URP:
1) Створити проєкт з пресету і почати працювати;
2) Перевести вже існуючий проєкт на URP шляхом встановлення відповідного package.
Для створення проєкту з вбудованим URP ми йдемо у Unity Hub і звідти вибираємо 3D Sample Scene(URP) або ж просто 3D(URP). Якщо ви не бачите цих пресетів у вікні створення, тоді пролистайте вниз та додатково інсталюйте їх.
![](https://s.dou.ua/storage-files/image_47538659341681127179041.png)
Головна перевага проєкту з передвстановленим URP у тому, що він вже налаштований. Ефекти постпроцесингу, налаштування у самому едіторі — все виставлено та з цим вже можна працювати.
При створенні семплу нас зустрічає приблизно така сцена:
Вже непогано, еге ж? Проте, як я вже зазначив, такий варіант найкраще підходить лише для створення нових проєктів. Гайда розглянемо варіант з вже готовим проєктом.
Нехай у нас є такий проєкт: простенька сцена з lowpoly графікою та кастомний скайбокс. *Пекеджі: Fantasy Skybox FREE, SimpleNaturePack*
![](https://s.dou.ua/storage-files/image_28770545761681127248936.png)
Щоб перевести вже існуючий проєкт на URP нам треба:
1) Відкрити Package Manager.
![](https://s.dou.ua/storage-files/image_20099337371681127257707.png)
2) У пошуку вписати «universal rp».
![](https://s.dou.ua/storage-files/image_33422020781681127260795.png)
3) Інсталювати його, трішки почекати та перезапуститися.
4) Далі ми повинні вказати Unity, що хочемо використовувати URP замість дефолтного рушія рендерингу.
Йдемо до вкладинки Assets, правим кліком Create -> Rendering -> URP Asset (with Universal Renderer)
![](https://s.dou.ua/storage-files/image_24055809091681127264306.png)
5) Далі переходимо у вкладинку Project Settings -> Graphics. Перетягуємо у поле «Scriptable Render Pipeline Settings» наш створений URP Asset. Чекаємо, поки Unity все підгрузить.
![](https://s.dou.ua/storage-files/image_659287998101681127269430.png)
Тепер, в більшості випадків, все перетворюється в рожеву кашу, як на цьому скрині:
![](https://s.dou.ua/storage-files/image_444664488111681127272692.png)
Проте розробники Unity передбачили такий розвиток подій.
Як це виправити:
6) Вибрати матеріали, які зламалися, у папці Assets.
![](https://s.dou.ua/storage-files/image_748663291121681127275829.png)
7) Перейти у вкладинку Edit -> Rendering -> Materials -> Convert Selected Built-in Materials to URP.
![](https://s.dou.ua/storage-files/image_834291819141681127283017.png)
І ось результат:
Тепер ми можемо переходити до використання усіх смаколиків, що завозяться разом з URP! Наприклад, додамо постпроцессингу:
1) Створимо новий GameObject та додамо на нього компонент Volume:
![](https://s.dou.ua/storage-files/image_630845444181681127302430.png)
2) У полі Profile тикнемо New, а потім Add override:
![](https://s.dou.ua/storage-files/image_396295056191681127307758.png)
3) А тепер ми можемо гратися з усіма ефектами, допоки не отримаємо бажаний вигляд! Наприклад так:
![](https://s.dou.ua/storage-files/image_649781404201681127310786.png)
4) Якщо ви не бачите свої ефекти у Game view, тоді переконайтеся, що на камері у вкладинці Rendering ввімкнена галочка Post Processing:
![](https://s.dou.ua/storage-files/image_131577238211681127314885.png)
І ось фінальний результат у порівнянні з початковим:
![](https://s.dou.ua/storage-files/image_726247713221681127318631.png)
Блякла та нецікава сцена стала набагато соковитішою, а кольори — світлішими та насиченими. І все це лише декількома кліками!
Висновок
URP — це дуже крута річ, яка перетворює розробку ігор в насолоду, виправляє деякі недоліки Unity та допомагає надихати більше кольорів у вже існуючу графіку. В майбутньому URP замінить дефолтний pipeline і стане основною фішкою та силою Unity.
Любіть Unity, використовуйте URP та робіть хороші ігри! До зустрічі!
2 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів