UA | EN | RU |
Ліхтар аварійного освітлення
Покроковий туторіал базового рівня призначений для вивчення основ створення UV координат за допомогою аддона Zen UV, в ході якого ви дізнаєтеся основні правила створення розгортки, навчитеся використовувати інструменти Zen UV для швидкої та комфортної роботи. Отримаєте базову інформацію про правила та рекомендації щодо створення UV координат для ігрових рушіїв.
В туторіалі розглянуто основні етапи які є оптимальними кроками для обробки будь-якої моделі:
- Підготовка моделі
- Початкова розгортка
- Аналіз початкової розгортки
- Поетапне розгортання частин
- Пакування
- Оптимізація
Підготовка сцени
Завантаження прикладу
-
Переконайтеся, що в Blender увімкнено підключення до Інтернету (ця опція доступна починаючи з версії Blender 4.2).
- Натисніть на іконку «Підключення до Інтернету». Якщо іконка відсутня, значить доступ до інтернету вже активовано.
- Дозвольте доступ до інтернету активацією опції Allow Online Access.
-
Використовуючи examples panel виберіть та скачайте приклад що зветься Emergency Light Tutorial натиснувши на кнопку Download справа від назви.
-
Коли сцена скачається, натисніть кнопку Open що з’явилася на місці кнопки Download.
-
Виберіть об’єкт з назвою Emergency Light та перейдіть в режим редагування.
Підготовка моделі
-
По замовчуванню Zen UV використовує систему глобального маркування. Змінимо налаштування так, щоб Seam та Sharp маркувалися одночасно.
- Перейдіть на вкладку Unwrap. Налаштування знаходяться в меню на кнопці з шестернею справа від кнопки Mark by Angle.
- Відкрийте меню та активуйте опцію Mark Sharp Edges.
-
Для того щоб стерти всі наявні Seams та Sharp, у вкладці Unwrap натисніть кнопку Unmark all.
-
Перевіримо чи немає островів що теговані як Finished. Система Finished служить для візуального контролю за станом островів (закінчені/не закінчені) та не дозволяє оператору Zen Unwrap розгортати острови якщо вони теговані як Finished.
- Виділіть всі полігони моделі.
- У вкладці Unwrap розгорніть панель з назвою Finished та натисніть кнопку Tag Unfinished.
-
Видаліть можливі наявні UV координати.
- Перейдіть у вкладку Advanced UV Maps.
- Виділіть всі можливі наявні UV Maps.
- Натисніть кнопку “-” (delete).
Tip
Нема необхідності створювати нову UV Map. Zen UV працює з UV координатами а отже слідкує за тим, щоб були наявні UV Maps. Якщо таких немає, то вони будуть створені автоматично.
-
Важливою частиною підготовки є перевірка масштабу об’єктів, для яких створюватимуться UV координати. Масштаб кожного об’єкта повинен бути рівним (1.00, 1.00, 1.00), оскільки він може впливати на роботу операторів розгортки. Також некоректний масштаб може впливати на відносний розмір островів при пакуванні та при встановленні щільності текселю (Texel Density). Редагування масштабу об’єктів виконується в режимі Object Mode.
- Ввімкніть Object Mode.
- В головному меню 3D View натисніть Object - Apply - Apply Object Transform.
- Переконайтеся що масштаб об’єкта становить (1.00, 1.00, 1.00).
Tip
Масштабування та інші трансформації об’єктів використовуються переважно для створення анімації та в інших цілях. Якщо ви працюєте з об’єктами що мають анімацію або утворюють ієрархію, виконувати Object - Apply - Apply Object Transform небезпечно, оскільки це приведе до спотворення анімації та руйнування ієрархії.
Початкова розгортка
-
Зараз, коли все підготовлено, ми можемо починати робити розгортку. Етап перший це розділення моделі на UV острови. На цьому етапі не має значення наскільки ці острови коректно розгорнуті. Ми тільки розділяємо. Зробимо розмітку швів в залежності від гостори edge. Більш гострі edges будуть помічені як шви і тим самим зададуть місця де модель буде розділена.
- Ввімкніть Edit Mode.
- У вкладці Unwrap натисніть кнопку Mark By Angle.
-
Майже всі операції в Zen UV можуть бути виконані у 3D View, але нема більш комфортного способу взємодіяти з UV Maps ніж використати UV Editor. Для того щоб швидко відкрити UV Editor, скористайтеся віджетом у 3D View.
- Натисніть на кнопку з літерою “T” розміщену зліва по центру “3D View” viewport. У випадку якщо UV Editor уже відкритий, після натискання на цю кнопку він закриється. Open UV Editor area
-
Ми створили шви в залежності від гостроти edge але ще не розділили модель на острови. Для розділення використаємо оператор Zen Unwrap який працює в залежності від того, що виділено. То ж на даному етапі переконайтеся що нічого не виділено. В режимі коли нічого не виділено Zen Unwrap просто розділяє модель на UV острови по існуючим seams. Якщо щось виділено, результат буде іншим.
-
Переконайтеся що нічого не виділено.
-
Натисніть Zen Unwrap з панелі Unwrap.
-
Інші режими робти Zen Unwrap ми розглянемо в продовж цього туторіалу.
Вмикаємо текстуру для перевірки
-
На цьому етапі ми маємо базове розділення моделі на острови, але цього не достатньо. Потрібно візуально перевірити модель, створити додаткові острови, та в процесі розправити вже існуючі острови якщо це необхідно. На цьому етапі важливо покращити сприйняття атрефактів для того щоб виконати роботу якнайшвидше. Одним з самих дієвих методів є призначення спеціальної текстури що складається з квадратів. Якщо ви бачите на моделі викривлений квадрат, значить в цьому місці є проблеми з розглажуванням острову. Накладемо спеціальну текстуру використовуючи Zen UV Checkr.
- На панелі UV Checker натисніть кнопку Checker Texture.
-
Кольорові текстури створені також і для визначення місця положення острову на текстурі. Але для нашого випадку це не має значення. То ж змінимо текстуру на монохромну. Це зменшить кількість інформації для сприйтяття а отже зменшить втому від роботи.
- Відкрийте drop-down меню нижче кнопки Checker Texture та виберіть текстуру з назвою ‘zen-mono-2048x2048’ texture image
-
Наступний крок не важливий для цієї моделі, але може знадобиться в майбутньому. Вимкнемо відображення всіх типів edges крім seam. Ці властивості є копією нативної системи відображення але тепер вони в близькому доступі на панелі UV Checker. Пам’ятаємо про втому від збитку інформації.
- В Blender draw system відключіть властивості відображення Crease, Sharp, Bevel. Залиште ввімкненим тільки відображення Seams.
-
Текстури для перевірки зазвичай мають досить агресивний вигляд і заважають сприйняттю островів в UV Editor. Zen UV має можливість притемнити поточну текстуру для комфортного сприйняття.
- Використайте оператор Darken Image що знаходиться в панелі UV Checker основної панелі аддону в UV Editor.
Tip
Darken Image також можна знайти в налаштуваннях оверлею в UV Editor.
-
У цьому туторіалі можна просто видалити текстуру з UV Editor, оскільки в даному випадку вона не відіграє практичної ролі в контексті UV Editor.
- Знайдіть рядок з назвою текстури зверху робочої зони UV Editor та натисніть кнопку з хрестиком.
Розгортання
Попередній етап підготовки завершено. Переходимо до розгортання моделі. Роботу над будь-чим зручно розділяти на частини. Наша модель складається з кількох деталей, тож умовно розділимо її на етапи, що відповідають кожній деталі окремо.
Розгортка внутрішньої циліндричної частини
-
Почнемо з циліндричної деталі.
- В UV Editor повністю виділіть циліндричну деталь.
- Натисніть Isolate Island з панелі Select.
Tip
Цей оператор працює як перемикач: якщо натиснути його ще раз, все, що було приховано, з’явиться знову. Він однаково функціонує як у 3D View, так і в UV Editor.
Основний оператор для створення островів в аддоні Zen UV — Zen Unwrap. Це багатофункціональний контекстний інструмент, який виконує різні завдання залежно від наступних умов:
- Який режим виділення активний зараз.
- Що саме виділено на момент його запуску.
- Які додаткові налаштування ввімкнено.
Zen Unwrap відслідковує три основні режими виділення.
- Faces
- Edges
- Verices
У випадку якщо Blender знаходиться в режимі виділення Faces, буде створено новий острів з виділених полігонів, а ребра по краю виділених полігонів буде марковано як seams.
- Виділіть торець та натисніть кнопку Zen Unwrap з панелі Unwrap
В процесі буде створено ще декілька островів. Вони можуть бути не коректними або не такими як в предсталеному відео, але зараз це не важливо.
-
Використаємо режим виділення Edges для розгортання наступного острова.
- Перемкніть Blender в режим виділення Edges. В цьому режмі Zen Unwrap створить seams для виділених ребер та виконає розгортання.
- Виділіть одне ребро на найдовшому циліндрові та натисніть Zen Unwrap.
Tip
Місця в яких будуть створені seams, зазвичай можуть бути занадто помітними на текстурі і будуть потребувати додаткового маскування. Щоб не витрачати на це час, намагайтеся створювати розриви в мало помітних місцях. То ж в нашому випадку рекомендується виділити якесь з нижніх ребер оскільки воно точно буде закрите зовнішньою частиною моделі.
Як бачите, Zen Unwrap точно виконує ваші вказівки та здійснює розгортання островів, не дивлячись на те що ми змінюємо тип виділення. При цьому навіть не потрібно відкривати його налаштування. У результаті ми отримали правильно розгорнутий найбільший острів цієї деталі.
-
Розгорнемо другий торець деталі.
- Перемкніть режим виділення Blender в faces.
- Виділіть торець.
- Натисніть Zen Unwrap.
-
При використанні Mark by Angle було створено не бажані seams що розділило модель на більшу кількість островів ніж потрібно. Щоб виправити це знову скористуємось оператором Zen Unwrap.
- Виділіть всі полігони найбільшого циліндра та натисніть Zen Unwrap. Як результат всі виділені острови об’єдналися в один, і край виділених полігонів був маркований як seams.
-
На цьому етапі ми завершили створення островів, але багато з них залишилися деформованими. Можна перемкнутися в режим виділення edges та виконати ті самі дії, як і для найбільшого циліндра, проте острови зі складнішою формою залишаться недостатньо вирівняними. Використаємо оператор Quadrify, який вирівнює в рівну сітку острови, створені з квадів
- Перемкніться в режим виділення edges.
- Виділіть один поздовжній edge, та натисніть кнопку Quadrify в панелі Transform.
Tip
Подібне використання оператора Quadrify є найшвидшим але не завжди оптимальним. Якщо не вказати оператору де саме потрібно зробити розрив, місце розриву острова буде створено автоматично і, можливо, не в оптимальному місці. Для повного контролю створення розриву використайте опцію Use Selected Edges. Також ви можете створити розрив до використання Quadrify використовуючи інші методи.
-
Виконаємо деякі налаштування оператора.
- Відкрийте панель налаштувань оператора.
- Активуйте опцію Use Selected Edges. Це вкаже оператору що потрібно зробити розділення острову по виділеному ребру.
- Виконайте ті ж дії для всіх островів що залишилися.
-
Зараз деякі острови в UV Editor можуть перекривати інші. Для того щоб впевнитися в коректному розгортанні кожного острова виконаємо пакування. Це покращить візуальне сприйняття всіх островів.
- Натисніть кнопку Pack Islands з панелі Pack.
-
Скоро ми продовжимо працювати над іншими деталями, але спершу використаємо систему Finished. Це зробить можливим візуально контролювати які острови вже розгорнені, та захистить готові острови від повторного розгортання.
- Перейдіть до вкладки Unwrap.
- Розгорніть панель що називається Finished.
- Виділіть всі острови.
- Натисніть кнопку Tag Finished з панелі Finished
Tip
Острови, позначені тегом Finished, автоматично сортуються і переміщуються праворуч від UV Area. Це поведінка за замовчуванням, але її можна вимкнути, деактивувавши опцію Auto Sort Islands, яка розташована праворуч від оператора Sort Islands by Tags у діалоговому вікні з кнопкою-шестернею.
Розгортання зовнішньої оболонки
-
Переходимо до наступної деталі. Для цього потрібно відобразити всі деталі моделі.
- Натисніть Isolate Island з панелі Select
- Виділіть частину моделі що виглядає як зовнішня оболонка.
- Натисніть Isolate Island знову. Тепер ми маємо видиму тільки потрібну нам деталь. Iнші деталі заховано і вони не будуть заважати.
-
Ця деталь має чіткі контури, коректні seams, але деякі острови можна зробити кращими. Внутрішня частина є половиною циліндра що може бути представленим одним островом замість кількох. Створимо один острів з внутрішньої частини.
- Виділіть всю внутрішню частину окрім острова що є полігоном.
- Натисніть Zen Unwrap.
-
Створений острів може виглядати краще, якщо вирівняти його в рівну сітку. Для цього скористайтеся оператором Quadrify. Зверніть увагу: якщо у вас активовано опцію Use Selected Edges, краще перейти в режим виділення faces, оскільки в режимі виділення edges оператор Quadrify може розірвати острів по виділених ребрах. Також важливо зазначити, що Zen UV постійно намагається спростити роботу. Щоб вказати оператору, з яким островом ви хочете працювати, не обов’язково виділяти весь острів — достатньо обрати один або кілька полігонів.
- Виділіть один або декілька полігонів в острові внутрішньої частини поточної деталі, та натисніть Quadrify.
-
Наступний острів занадто великий, циклічний та вивернутий. Для того, щоб позбавитися цих вад, розділіть його на декілька островів меншого розміру.
- Виділіть бокові ребра.
- Натисніть Zen Unwrap.
-
Острів що представляє верхній торець розкладений коректно, але можемо зробити його більш компактним. Також ми маємо слідкувати за тим, щоб граничні edges будь якого острова були максимально вирівняні по осям. Це зробить розриви на текстурі набагато менш помітними.
- Виділіть один або декілька граней верхнього острова.
- Натисніть Select Island з панелі Select.
- Перейдіть у вигляд зверху та використайте оператор Project From View що створить рівний острів з вибраних полігонів.
-
Розподіл на острови завершено. Виконайте Pack та Tag Finished як було описано для попередньої деталі.
-
Натисніть Isolate Island щоб показати всі деталі та підготуватися до наступного етапу туторіала.
Розгортка дрібних частин
-
Ізолюємо дрібні деталі для більш комфортної роботи.
- Виділіть всі дрібні деталі.
- Натисніть кнопку Isolate Island
-
На всіх дрібних деталях, окрім циліндричних, оператор Mark by Ange спрацював коректно. Давайте це виправимо.
- Виділіть по одному ребру на кожному з циліндрів та натисніть Zen Unwrap.
-
Перейдіть до деталі що скріплює дроти. Вона була розділена на декілька частин що не є оптимальною розгорткою. Достатньо відокремити торці а решту лишити одним островом.
- Виділіть всю деталь.
- Зніміть виділення з торців.
- Виконайте Zen Unwrap.
-
Ми створили суцільний острів, але його розгортка не коректна. Потрібно розірвати та розрівняти радіальний острів.
- Виділіть пару ребер де потрібно розділити.
- Виконайте Zen Unwrap.
-
На цьому етапі ми досягли коректного розподілу на острови, але деякі з них мають розтягнення, а інші — не оптимальну форму. Потрібно виділити та вирівняти всі острови, що складаються з квадів.
- Використайте оператор Select Quaded Islands з панелі Select.
- Використайте оператор Quadrify щоб вирівняти всі виділені острови у рівну сітку.
-
Виконайте Pack та Tag Finished для завершення розгортання дрібних деталей.
-
Натисніть Isolate Island щоб показати всі деталі та підготуватися до наступного етапу туторіала.
Розгортання дротів
-
Ізолюємо дроти для більш комфортної роботи.
- Виділіть усі дроти.
- Натисніть Isolate Island щоб сховати всі зайві деталі.
-
Видно що на даний момент кожен дріт розділений на декілька островів. Зробімо так, щоб кожен дріт був представлений одним островом.
- Виділіть всі полігони, та натисніть Zen Unwrap.
-
Ми отримали розділення де кожен дріт являє собою один острів, але розгортання не коректне. Давайте розгорнемо дроти найшвидшим способом.
- Переконайтеся що виділено всі острови.
- Використайте оператор Quadrify щоб вирівняти відразу всі острови.
Tip
При розгортанні дротів або подібних моделей дуже зручно використовувати опцію Use Selected Edges в операторі Quadrify, яку ми розглядали раніше. Таким чином, ми отримаємо розриви точно там, де потрібно, з першої спроби.
-
На завершення, для кращого візуального контролю, запакуємо острови та маркуємо їх як завершені.
- Виконайте Pack.
- Виконайте Tag Finished для завершення розгортання дротів.
-
Натисніть Isolate Island щоб показати всі деталі та підготуватися до наступного етапу туторіала.
Розгортання ручки
-
Ізолюємо ручку для більш комфортної роботи. Давайте використаємо дещо із Finished system.
- Натисніть Isolate Island щоб відобразити всі частини.
- Натисніть Select в панелі Finished.
- Натисніть Hide в панелі Finished.
-
Ця деталь складається з кількох островів, що не є оптимальним рішенням. Давайте об’єднаємо їх в один острів замість кількох.
- Виділіть всі острови що належать ручці.
- Зніміть виділення з торців що виглядають як шестикутники.
- Натисніть Zen Unwrap.
-
Острів створений в результаті останніх дій має не коректну розгортку. Давйте виправимо це.
- Виділіть edges що належать отвору та edges що належать внутрішньому краю ручки.
- Натисніть Zen Unwrap
-
Тепер ми маємо розгорнутий острів. Присутність в ньому трикутних граней не дозволяє використати оператор Quadrify для вирівнювання в рівну сітку. Розглянемо на прикладі цього острова роботу оператора Reshape Island. Суть роботи Reshape Island полягає в тому, що він розрівнює виділені лупи ребер в рівну лінію а решту вершин розслаблює.
- Виділіть повністю ребра що проходять поздовжньо через центр острова.
- Натисніть Reshape Island для вирівнювання острова.
-
На цьому розгортання острова можна вважати завершеним. Давайте маркуємо його як завершений.
- Виконайте оператор Pack.
- Виділіть всі острови.
- Маркуйте за допомогою Tag Finished для завершення розгортання ручки.
-
Натисніть Isolate Island щоб показати всі деталі та підготуватися до наступного етапу туторіала.
Пакування
Попередній етап створення островів і їх розгортання завершено. Тепер потрібно розмістити острови на текстурі так, щоб залишилося якомога менше вільного місця. Усе вільне місце на текстурі — це нераціональне використання ресурсів.
Фінальне пакування
-
Переконайтеся що не залишилося прихованих деталей. Та виконайте пакування.
- У 3D View в головному меню натисніть Mesh - Show/Hide - Reveal Hidden.
- Виконайте пакування використавши оператор Pack.
Зменшення вільного місця за допомогою стакування
-
На цьому етапі маємо щільно спаковані деталі і роботу можна вважати завершеною. Але якщо проаналізувати конструкцію моделі, можна помітити що деякі острови виглядають схоже і навіть є копією один одного. Наприклад вирізи під болти, самі болти, деякі дрібні деталі, тощо. Для економії місця на текстурі одинакові острови можна скласти один на інший. З точки зору створення UV координат цей процес називається Stacking.
- Відкрийте вкладку Stack.
- Натисніть кнопку Replicas. Тепер маємо виділені острови які мають копії. Ці острови називаються Replicas. Причому їх прототипи залишилися не виділеними.
- Перемістіть виділені острови в сторону від UV Area. Тепер в UV Area залишилися тільки унікальнi острови що не мають копій (Singles), та острови що є прототипами (Primaries).
-
В цьому туторіалі ми використовуємо Blender Pack Engine. Наступні кроки для стакування будуть описані саме для цього рушія.
- Сховайте острови що були переміщені в сторону.
- Встановіть коректний (бажаний) Texture Size в панелі Pack. Для саме цього туторіалу розмір текстури не має значення, але можливо ви плануєте створити текстуру по іншому туторіалові.
- Встановіть необхідну величину Margin, що забезпечить коректний вигляд текстури при віддаленні камери.
- Виконайте повторне пакування використовуючи кнопку Pack.
Пакування та стакування закінчено. Залишилося декілька останніх кроків до повністю розгорнутої моделі.
Установка гострих ребер
-
Коректно встановлені sharp edges це не тільки запорука гарного зовнішнього вигляду моделі, але також запорука запікання карти нормалей (normal map) без помилок.
- Використайте оператор Sharp by UV Borders. Цей оператор маркує ребра що є крайніми ребрами островів як sharp.
- В налаштуваннях оператора ввімкніть опцію Unmark sharp. Це зітре всі попередньо встановлені sharp edges.
-
В Blender гострота ребер може бути встановлена двома шляхами.
- Як результат встановлення властивості полігону Shade Smooth / Shade Sharp.
- За допомогою властивості ребра Sharp.
Обидва способи можуть діяти одночасно, що часто приводить до артефактів при використанні карти нормалей (normal map). Оскільки ми вже встановили sharp edges так як нам потрібно за допомогою властивості ребер Sharp, виключимо можливість впливу властивості полігонів Smooth/Sharp на гостроту ребер. В Zen UV для цього існує оператор Smooth by Sharp.
- Натисніть кнопку Smooth by Sharp. Це встановить всі згладжування полігонів у відповідність до sharp edges.
Тепер модель Emergency light має коректні та оптимізовані UV координати та повністю готова для створення текстури та запікання normal map.
Tip
Налагодження коректного відображення Sharp Edges можна виконати вручну. Для цього виконайте кроки описні нижче.
-
В Blender починаючи з версії 4.1:
- Перейдіть в режим Object Mode.
- В головному меню 3D View виконайте оператор Object - Shade Smooth.
-
В версіях Blender до 4.1:
- Перейдіть в режим Object Mode.
- В головному меню 3D View виконайте оператор Object - Shade Auto Smooth.
- В налаштуваннях оператора ввімкніть опцію “Auto Smooth”.
- Встановіть параметр Angle рівним 180 градусів.