Render.ru

Автоматический UVW Unnwrap

Pomidoroff

Знаток
Рейтинг
53
#1
Ребята, нужен скрипт для автоматической развертки выделенных обьектов на 2 канал (для игрового движка). Flaten Mapping с стандартными настройками.

Кто рубит модели для игровых движков, думаю оценят. Копал на скрипспоте, там либо криво работает, либо слишком навороченные и не в ту тему. По гуглу тоже ненашел толкового результата.

Ближе всех подошел вот этот скрипт:
fn uvwFlattenMap objArr mapChannel:1 = if objArr.count != 0 do
(
clearSelection()
SetCommandPanelTaskMode #modify
with redraw off
(
for node in objArr where validModifier node (modifier = Unwrap_uvw()) do
(
addModifier node modifier ui:eek:n
modifier.setMapChannel mapChannel
select node ; modPanel.setCurrentObject modifier
modifier.flattenMap 45.0 #([1,0,0], [-1,0,0], [0,1,0], [0,-1,0], [0,0,1], [0,0,-1]) 0.02 on 0 on on
)
)
)
uvwFlattenMap (selection as array) mapChannel:2
Но он на рабочих обьектах работает както странно не всегда, разворачивает не все полигоны (например если в моделе работали с фейсом и не убрали выделение то разворачивается один фейс, хотя работа с подобьектами неактивна)

Это можно поправить?
 

LKI

Активный участник
Рейтинг
14
#2
Ребята, нужен скрипт для автоматической развертки выделенных обьектов на 2 канал (для игрового движка). Flaten Mapping с стандартными настройками.

Кто рубит модели для игровых движков, думаю оценят. Копал на скрипспоте, там либо криво работает, либо слишком навороченные и не в ту тему. По гуглу тоже ненашел толкового результата.

Ближе всех подошел вот этот скрипт:
fn uvwFlattenMap objArr mapChannel:1 = if objArr.count != 0 do
(
clearSelection()
SetCommandPanelTaskMode #modify
with redraw off
(
for node in objArr where validModifier node (modifier = Unwrap_uvw()) do
(
addModifier node modifier ui:eek:n
modifier.setMapChannel mapChannel
select node ; modPanel.setCurrentObject modifier
modifier.flattenMap 45.0 #([1,0,0], [-1,0,0], [0,1,0], [0,-1,0], [0,0,1], [0,0,-1]) 0.02 on 0 on on
)
)
)
uvwFlattenMap (selection as array) mapChannel:2
Но он на рабочих обьектах работает както странно не всегда, разворачивает не все полигоны (например если в моделе работали с фейсом и не убрали выделение то разворачивается один фейс, хотя работа с подобьектами неактивна)

Это можно поправить?
Так это нормальное явление, так как скрипт просто применят анврап, так же если без скрипта,не снять выделение с полика, может анврап накинуться на один полик, просто чуть внимательнее да и все.
 

JohnJonny

Пользователь сайта
Рейтинг
4
#3
Для себя сделал, сейчас наверное уже не очень актуально , но вот
Выделяем все объекты (должно быть больше одного)переводим в editable poly и дальше run script

a = selection as array
for i in a do
(
polyop.setFaceSelection i #all
addModifier i (unwrap_uvw())
)
for i in a do
(
i.unwrap_uvw.unwrap.setMapChannel 1
i.unwrap_uvw.flattenMapNoParams()
i.unwrap_uvw.setTVSubObjectMode 0
)
for i in a do
(
i.unwrap_uvw.name = "Channel1"
)
for i in a do
(
polyop.setFaceSelection i #all
addModifier i (unwrap_uvw())
)
for i in a do
(
i.unwrap_uvw.unwrap.setMapChannel 2
i.unwrap_uvw.flattenMapNoParams()
i.unwrap_uvw.setTVSubObjectMode 0
)
for i in a do
(
i.unwrap_uvw.name = "Channel2"
)


А вообще должен сказать существует родная функция массовой авто развертки которая находиться в Render To Textures
Там ставим Automatic UVW тут же канал нужный, а в самом низу ставим Unwrap Only, для двух каналов нужно процедуру дважды повторять.
 
Сверху