Render.ru

Проблема с unwrap uvw copy-paste

xiron 147376

Пользователь сайта
Рейтинг
2
#1
Здравствуйте. Делаю развёртку для текстурирования следующей модели:

Возникла следующая проблема:
Так как верхняя и нижняя части шляпы одинаковые, я выделяю верхний элемент:

Захожу в UV Editor, там жму ПКМ по элементу -> Copy
Выделяю нижний элемент шляпы:

Также в окне редактора жму paste Weld.
В результате получаю это:

Как решить данную проблему?
3DS MAX 2013 x64
Спасибо
 

Оля Ануфриева (He77ga)

Модератор форума
Команда форума
Рейтинг
1 702
#2
Выглядят выделенные части одинаково, но нумерация вершин ведь у них разная. Если я не ошибаюсь копирование работает только при одинаковой нумерации. А почему бы не выделить их вместе и сделать Planar в Unwrap'е?
 

xiron 147376

Пользователь сайта
Рейтинг
2
#3
А почему бы не выделить их вместе и сделать Planar в Unwrap'е?
А как мне их склеить потом, чтобы при паковке кластеров они оставались вместе?
но нумерация вершин ведь у них разная
А можно эту нумерацию как-то выправить?
 

xiron 147376

Пользователь сайта
Рейтинг
2
#5
Эта опция не работает с независимыми замкнутыми элементами.

Проблема решена самостоятельно следующим образом:
1. Выделяем оба элемента.
2. Mapping -> Flattern mapping -> Ok
3. Выравниваю 2 элемента, чтобы один чётко был над другим (Flip/Mirror при необходимости) с помощью Max-скрипта:
Код:
rollout test "Align"
(
    radiobuttons rb_size "Size" labels:#("First", "Normalize") pos: [5,5]
    radiobuttons rb_pos "Position" labels:#("Selection center", "Editor center") pos:[5,55]
    button btn_align "Align"
    on btn_align pressed do
    (
        undo on
        (
            m=modpanel.getcurrentobject()
            if classof m==Unwrap_UVW then
                (
                    m.edit();
                    m.setTVSubObjectMode 3
                    m.selectElement()
                    sf_ba=m.getSelectedFaces();
                    sf_ba_init=m.getSelectedFaces();
                    uv_size_x=1; uv_size_y=1; cluster_first=1; uv_pos=m.getSelCenter()
                    for i=1 to 100 do
                        (
                            minx=1e9;miny=1e9;maxx=-1e9;maxy=-1e9
                            if sf_ba.numberset>0 then
                                (
                                    sf_a=sf_ba as array
                                    m.selectFaces #{sf_a[1]}
                                    m.setTVSubObjectMode 3; m.selectElement()
                                    sf_temp=m.getSelectedFaces()
                                    m.setTVSubObjectMode 1; m.GetSelectionFromFace()
                                    sv=m.getSelectedVertices() as array
                                    for v in sv do
                                        (
                                            c=m.getVertexPosition slidertime v
                                            if c[1]<minx then minx=c[1]; if c[1]>maxx then maxx=c[1]
                                            if c[2]<miny then miny=c[2]; if c[2]>maxy then maxy=c[2]
                                        )
                                    cluster_size_x=maxx-minx; cluster_size_y=maxy-miny
                                    if cluster_first==1 and rb_size.state==1 then
                                        (uv_size_x=cluster_size_x; uv_size_y=cluster_size_y;cluster_first=0)
                                    m.scaleSelectedXY (1.0*uv_size_x/cluster_size_x) (1.0*uv_size_y/cluster_size_y) [0,0,0]
                                    if rb_pos.state==2 then uv_pos=0.5
                                    m.moveSelected (-m.getSelCenter()+uv_pos)
                                    sf_ba-=sf_temp
                                )--if sf_ba.numberset>0 then
                        )--or i=1 to 100 do
                    m.setTVSubObjectMode 3; m.selectFaces sf_ba_init
                )
        )--undo on
    )--    on btn_align pressed do
); createdialog test 110 135 style:#(#style_minimizebox,#style_titlebar,#style_sysmenu)
4. В редакторе UV's на панели инструментов нажимаю Group Selected

5. Tools -> Pack UV's
6. Profit

Если у вас есть более универсальный способ - прошу написать.
 
Рейтинг
165
#6
Вот поэтому я и люблю UV-Layout больше, чем максовский Unwrap... Это самый универсальный способ.
 
Рейтинг
165
#8
Можете пояснить, как решить эту проблему, используя UV Layout? Если вас не затруднит.
Это интересный вопрос хотя бы потому, что для того, чтобы вы поняли мой ответ на него - вам придётся научиться работать в UV-Layout. Если вы не знакомы с этой прогой, то поскорее начните изучать её, так как это лучшее решение для создания развёрток.
Вот вам сразу и ссылка:
 

shooter9688

Активный участник
Рейтинг
8
#10
Для зеркальных частей я делаю так:
Удаляю одну часть, вторю разворачиваю, потом в модификаторе edit poly зеркалю то чего нужно копию сделать и сшиваю точки.
 
Сверху