Skinning the steering wheel with UV Unwrap (Eng + Rus)

Tutorials and quick guides collection is posted in this forum. Forum is read only.

Moderator: Oleg

Locked
User avatar
Oleg
Site Admin
Posts: 14022
Joined: Fri Feb 06, 2004 3:54 am
Contact:

Skinning the steering wheel with UV Unwrap (Eng + Rus)

Post by Oleg »

This guide will illustrate the benefit and an overal usage of UV Unwrap method for complex models like steering wheels and dashboard. The guide applies when small texture fragment needs to be wrapped multiple times on a 3D surface, so you need a correct uniform UV mapping to prevent stretching. Planar mapping gives distortion that can be clearly seen in game, so Unwrap is the best choice here.

В данном руководстве представлен механизм использования метода автоматической разверкти UV, её преимущества при мэппинге сложных поверхностей наподобии рулевого колеса и панели приборов. Данное руководство применимо при мэппинге небольшой текстуры, оборачивающей поверхность несколько раз повторяющимется фрагментами. Для такого подхода необходимо создать равномерный мэппинг без растяжений и сжатий. Мэппинг с видовой проекции даст искажения, которые будут отчетливо видны на объекте в игре, так-что автоматическая развертка в таком случае - оптимальный выбор.
original steering wheel
original steering wheel
I use the steering wheel from Scania model as an example. This is a ready-to-use model, you might need to apply some modification to your models, I'll mention it here in a guide what exactly should be done to get proper result. The model is loaded with "Merge models" toggled off, so it's currently split by objects. This is a standard variant with look1 visual appearence. I would like entire wheel to be using the biege skin material. Here it is in materials browser:

Я использовал рулевое колесо от Скании в качетсве примера. Это модель готовая к мэппингу, но ваша собственная модель, вероятно, потребует некоторых изменений, о которых будет упомянуто ниже, чтобы получить такой же результат как и в этом руководстве. Модель загружена с выключенной опцией "Merge Models", так-что она разбита на объекты. На скрине показан вариант "standard" с раскраской "look1". Я сделаю всё рулевое колесо в бежевой коже, создав при этом новый UV мэппинг. Материал бежевой кожи в браузере:
biege material
biege material
uvunwrap02.jpg (28.36 KiB) Viewed 9863 times
I select (By Material) all polygons that will use this material, then assign biege material onto selected polygons. They use proper material now:

Я выбрал все полигоны которые будут в бежевой коже (инструментом Select\By Material) и назначил им материал бежевой кожи. Теперь они все бежевые (хотя старый мэппинг присутсвует, он будет полностью переделан):
skin wheel selected
skin wheel selected
I invert selection and hide unneccesary parts. then invert selection again, so only "ready to skin" polygons of the wheel are visible and selected. Use Surface\Mapping\Reset UV tool to delete current mapping:

Я инвертировал выделение на полигонах и скрыл полигоны с другими материалами (они не нужны) и снова инвертировал, так-что теперь выбраны только полигоны с бежевой кожей. Затем применил инструмент Surface\Mapping\Reset UV для удаления старого мэппинга:
hidden and selected
hidden and selected
Switch to objects level and turn on outline wireframe to see open-edges outine in viewport. The rim has an open edges seam on an inner side. If you don't have such a continuouse open edge on a rim, create it from point-to point with Modify\Kinfe tool:

Переключился на уровень объектов и включил Outine wireframe в окне, чтобы видеть острые грани на объектах. Обод колеса уже имеет разрез модели на внутреннем радиусе. Если у вас такого нет, сделайте его на уровне вершинок инструментом Modify\Knife, кликая последоватльено на вершинках от верхнего края к нижнему:
uvunwrap05.jpg
Use Select\Separated tool to select connected charts of polygons on the top area of the rim. Then use Surface\Mapping\Edit UV tool to create UV mapping for them. You should toggle on Generate New and toggle off options Continuouse mesh surface and Pin border points. The tool will consider each fragment bounded by open edges as a single UV chart and will create new UV mapping for each chart it finds. No pinning is given and chart is placed on texture wherever tool decides:

Инструментом Select\Separated я выбрал связанные фрагменты полигонов в верхней части обода. Затем применил инструмент Surface\Mapping\Edit UV, чтобы создать им мэппинг. Надо включить опцию "Generate New" и выключить опции "Continuouse mesh surface" (связанная поверхность) и "Pin border points" (закрепить точки на краях). Инструмент будет искать фрагменты, ограниченные открытыми ребрами и каждый такой фрагмент будет отдельным лоскутком в UV мэппере. Поскольку не указано закрепление точек, лоскутки инструмент набросает на текстуру по своему усмотрению:
uvunwrap06.jpg
Then hide selected polygons (mapping for them was created and we shall edit it later)

Далее я прячу выбранные полигоны (для которых только-что был создан мэппинг). Сам мэппинг буду редактировать позже.

The left (and right) areas of the rim are bridged to central part of the wheel, so proper seaming here is a must. Create a straight top to bottom seam on inner side like this:

Левая и правая части обода соединены с центральной частью рулевого колеса спицами. Эти части должны быть с разрезом на модели на внутренней части обода. Если такого нет, сделайте разрез на всех частях (может быть несколько разрезов, не обязательно один длинный) сверху донизу как показано на картинке:
uvunwrap07.jpg
And Edit-UV it with the same options as before. Then hide selected fragments too.

И примените Edit UV с теми же настройками как и ранее. Затем скройте выбранные полигоны.

Now the central part. I've selected four fragments (with Select\Separated tool). These fragments are "separated" from each other, so the tool does not pick them as a single mesh. Since I want them to be mapped as a single mesh fragment, I toggle on Continuouse mesh surface. The option will force Edit UV tool to deal with mesh like it has no sharp edges. This option in particular supresses availability of seams on the mesh and considers points to be interconnected. Press Ok to unwrap:

Теперь центральная часть колеса. Я бырал четыре фрагмента инструментом Select\Separated. Данные фрагменты физически отделены друг от друга - на картинке видно, что модель там разрезана, так-что инструмент Separated прав, не выделяя их как единое целое. Но поскольку я хочу чтобы мэппинг на них был непрерывный, как на едином фрагменте, я включаю опцию Continuouse mesh surface в инструменте Edit UV, когда применяю его к выбранным полигонам. С этой опцией инструмент будет рассматривать указанную модель как будто все вершинки у нее склеены. В частности, с данной опцией инструмент просто игнорирует все разрезы, если вы их создавали. Нажмите Ok для разверки:
uvunwrap08.jpg
Hide selected polygons.

A pair of central fragments (the left one is shown on a screenshot below) should be unwrapped as "continuouse mesh" too. They will produce a pair of UV charts - the left one and the right one:

Скройте выделенные полигоны. Теперь пара фрагментов на центральной части (на картинке показан левый), которые тоже надо мэпить с опцией "Continuouse mesh". Из них получатся два независимых лоскутка, левый и парвый:
uvunwrap09.jpg
And the bottom fragment of central part is "continuouse" too:

Ну и кусочек из нижней части центра рулевого колеса тоже с опцией "continuose" мапим:
uvunwrap10.jpg
The rest should be unwrapped with no "continuouse mesh surface". So we get a fully unwrapped and skin-textured steering wheel:

Скрываем выделенные полики и мапим всё остальное с выключенной опцией "continuouse mesh surface". Таким образом, мы создали автоматическую развертку для шкурки рулевого колеса:
uvunwrap11.jpg
The detailization of skin texture is too big for the wheel. Not a big deal, we shall adjust it quickly. Open UV Mapper, press "Material..." button, locate material we were mapping to and pick the desired texture in it. UV Mapper will show all UV charts one over another in a view:

Детализация "кожи" на руле слишком крупная. Но не беда, это исправляется довольно быстро. Открываем UV Mapper, нажимаем кнопку "Material" и выбираем материал с нашей текстурой. В окне UV мэппера появятся наши UV лоскутки один поверх другого:
uvunwrap12.jpg
I switch to objects level, zoom out, select all charts and press "Rescale" button in UV Mapper toolbox. This tool rescales charts to reflect the size of respective 3D surface. Notice the overal "size of skin texture" in 3D viewport is about the same on entire wheel, so each fragment has proper stretching across the object:

Я переключаюсь на уровень объектов, отдаляю вид, выбираю все лоскурки и нажимаю кнопку "Rescale" (перемасштабировать) в панельке инструментов мэппера. Этот инструмент перемасштабирует лоскутки, чтобы их размер примерно соответствовал размеру подконтрольных им объектов (фрагментов) в 3D окне. Сразу после нажатия, заметте, что детализация "кожи" на рулевом колесе стала примерно одинаковая по всей поверхности объекта. Никаких растяжений и сжатий, объект обернут равномерно, хотя и крупно:
uvunwrap13.jpg
I select all charts and scale them bigger, so skin on target wheel model is wrapped multiple times to produce smaller detail. Most of surface has the same detalization level, except the central fragment of the wheel. It has a bigger details in a middle and higher details on a sides. Since it is mapped with a single UV chart, this chart have to be located. Notice, the chart is stretched on sides and compacted in a middle:

Выберите все фрагменты и увеличте их инструментом Modify\Scale таким образом, чтобы текстура "кожи" на руле получила приблизительно нужную детализацию. Лоскутки при этом выходят за границы текстуры в мэппере, за счет чего текстура на объекте повторяется несколько раз, оборачивая объект. Большая часть поверхности получилась достаточно равномерной, кроме нижнего фрагмента в центре колеса. Более того, у него крупная детализация в серединке и мелкая детализация по краям. Поскольку данный кусок мэпился как единый фрагмент, за него в мэппере отвечает всего один лоскуток, так-что мы не можем просто отмасштабировать для достижения результата. его придется изменить. найдите его в UV мэппере (другие лоскутки можно просто раскидать встороны):
uvunwrap14.jpg
Pick Manipulators level, hover and click on a chart to switch it to manipulators level. You will see two bold points. These are pin-point manipulators:

Выберите вверху режим Manipulators (манипуляторы) и кликните на лоскутке, который собираетесь редактировать. Увидите две жирные точки. Это кнопки-манипуляторы (по умолчанию, инструмент создает всего две). Для удобства я эти "кнопки" буду называть пины, чтоб не было путаницы:
uvunwrap15.jpg
Using Pin tool from toolbox, create additional pin points as shown on the image. This tool is an alternative to Modify\Insert tool, so you can use Insert (hotkey 'Ins') if you like. Also, you can delete pin points with Modify\Delete tool:

Используя инструмент Pin из тулбокса мэппера (кстати, это то же самое что инструмент Modify\Insert, так-что можно пользоваться горячими клавишами от инструмента Insert), создайте дополнительные пины. Если поставили лишний, удалите его инструментом Delete. В общем, добавьте пины как на картинке внизу (приблизительно, точность тут не нужна)
uvunwrap16.jpg
Adjust pin points locations with Modify\Move tool. In general, you need to make central fragment bigger and striaghter, and side fragments smaller:

Теперь достаточно инструментом Modify\Move подвигать пины, чтоб лоскуток по форме был примерно похож на поверхность, за которую он отвечает. Грубо, центральную часть надо расправить и сделать больше, а края-"крылья" сделать меньше:
uvunwrap17.jpg
As you can see, the skin detalization on wheel model on respective area is now matching the skin detalization on a neigbour fragments.
The result might look like this:

Как видите, детализация "кожи" на рулевом колесе в проблемном участке теперь соответсвует общей детализации на руле и на соседних фрагментах в частности. Результат будет примерно такой:
uvunwrap18.jpg
That's it.
Вот и вся наука.
Locked