Накопилось несколько вопросов
1 Вот тут подумал, бывают такие случаи когда надо скопировать координаты одной точки и присвоить другой.
Нашел скрипт CopyPasteAdv который обеспечивает эти функции, но он к сожалению для 6 версии а я работаю в 2010 максе. Кто знает можно ли этот скрипт как то адаптировать под новую версию макса. Или же есть более простые способы решения проблемы.
2 Можно ли убрать Application Button и вообще Caption Bar полностью.
3 Можно ли сделать вертикальный тулбар так что бы кнопки располагались в 2 ряда а не в один
1. Скрипты как правило не зависят от версии МАХ-а. Т.е. у них полная прямая совместимость.. Ну за исключением случаев использования сторонних или очень специфических функций - которые могут меняться от версии к версии..
К тому же я не припомню сильных различий в базовых классах и соотв. им функциях 6-го и 12-го МАХ-ов..
GoodMan
Да понятно но в данном случае не пашет совсем, выкидывает ошибку при попытке скопировать координаты.
Может кто знающий подправит? Вот ссылка: http://www.3dtrue.com/max/20.html
Какую ошибку пишет?
У меня все работает нормально в МАХ-2010.. За исключением того что скрипт немного не доделан. В частности странно что не используется функция <update> для перерисовки меша после изменения координат вертексов.. Хотя кто знает - может её ещё не было когда писался скрипт..
В остальном скрипт полностью рабочий. Конечно при условии что ты знаешь чем отличается mesh от poly.. Т.к. с поли-объектами он не работает (<polyOPS.> оператора тогда ещё наверное небыло, или автор поленился сделать скрипт универсальным для объектов разных классов <mesh> и <poly>😉
Вот блин облом, я чего-то на эту немаловажную деталь внимания и не обратил. Действительно с мешами работает а с поликами нет. Только учитывая что работать приходится с полигонами, этот скрипт бесполезен
Просто он написан для mesh, а уже позже стали появляться полигоны в МАХ-е. Теперь мешами никто не пользуется.. Хотя они бывает и быстрее чем поли обсчитываются в определенных модификаторах (например в физике).. По крайней мере мне так кажется..
К тому-же поли в МАХ-е тоже не совсем настоящие, т.е. они не такие как у программ специально предназначенных для моделинга только полигонами, и программ которые собственно зародили концепцию полигонов типа: Mirai и Nendo
Побуду некропостером)
Скрипт выше юзала, он прекрасен, но интересно, есть ли где скрипт, который копирует координаты не одного вертекса, а нескольких выделенных? И может скопировать эти координаты вертексам другого объекта, при условии, что индексы вертексов у этих объектов совпадают? Например, такую штуку удобно было бы применять в морфинге, но почему-то такого найти я не смогла, видимо, реализовать это не так просто, как мне думалось 🙂.
В максе я ещё новичок, а программированием в последний раз занималась ещё в универе, и благополучно всё забыла. Попытаюсь сама реализовать нечто подобное, но если такое уже есть, то зачем страдать?) Может, кто сталкивался?
Shanayaскрипт, который копирует координаты не одного вертекса, а нескольких выделенных? И может скопировать эти координаты вертексам другого объекта, при условии, что индексы вертексов у этих объектов совпадают?
Пример для базового объекта Editable Poly:
try destroydialog test catch(); rollout test "Test"
(
button btn_copy "Copy" pos:[5,5] width:50
button btn_paste "Paste" pos:[60,5] width:50
local verts_coord=#()
on btn_copy pressed do
(
if selection.count==1 then
(
obj=selection[1]
co=modpanel.getCurrentObject()
if classof co==Editable_Poly then
(
vs=(polyop.getVertSelection co) as array; verts_coord=#()
for v in vs where not (polyop.isVertDead co v) do
(
v_coord=polyop.getVert co v node:obj
append verts_coord #(v,v_coord)
)--for v in vs where not (polyop.isVertDead co v) do
)--if classof co==Editable_Poly then
)--if selection.count ==1 then
)-- on btn_copy pressed do
on btn_paste pressed do
(
undo on
(
if selection.count==1 then
(
obj=selection[1]
co=modpanel.getCurrentObject()
if classof co==Editable_Poly then
(
n=polyop.getNumVerts co
for v=1 to n where not (polyop.isVertDead co v) do
(
for vc in verts_coord where v==vc[1] do
(
polyop.setVert co v vc[2] node:obj
)--for vc in verts_coord where v==vc[1] do
)--for v in vs where not (polyop.isVertDead co v) do
)--if classof co==Editable_Poly then
)--if selection.count ==1 then
)--undo on
)-- on btn_paste pressed do
);createdialog test 120 30
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Bender Bending
1 Вот тут подумал, бывают такие случаи когда надо скопировать координаты одной точки и присвоить другой.
Нашел скрипт CopyPasteAdv который обеспечивает эти функции, но он к сожалению для 6 версии а я работаю в 2010 максе. Кто знает можно ли этот скрипт как то адаптировать под новую версию макса. Или же есть более простые способы решения проблемы.
2 Можно ли убрать Application Button и вообще Caption Bar полностью.
3 Можно ли сделать вертикальный тулбар так что бы кнопки располагались в 2 ряда а не в один
Заранее спасибо
GoodMan
К тому же я не припомню сильных различий в базовых классах и соотв. им функциях 6-го и 12-го МАХ-ов..
Bender Bending
Да понятно но в данном случае не пашет совсем, выкидывает ошибку при попытке скопировать координаты.
Может кто знающий подправит? Вот ссылка:
http://www.3dtrue.com/max/20.html
kolts
GoodMan
У меня все работает нормально в МАХ-2010.. За исключением того что скрипт немного не доделан. В частности странно что не используется функция <update> для перерисовки меша после изменения координат вертексов.. Хотя кто знает - может её ещё не было когда писался скрипт..
В остальном скрипт полностью рабочий. Конечно при условии что ты знаешь чем отличается mesh от poly.. Т.к. с поли-объектами он не работает (<polyOPS.> оператора тогда ещё наверное небыло, или автор поленился сделать скрипт универсальным для объектов разных классов <mesh> и <poly>😉
Bender Bending
GoodMan
Можно в принципе переделать и под poly - заменив все соотв. операторы..
А можно и конвертировать туда-сюда - геометрия должна сохраняться..
kolts
GoodMan
Просто он написан для mesh, а уже позже стали появляться полигоны в МАХ-е. Теперь мешами никто не пользуется.. Хотя они бывает и быстрее чем поли обсчитываются в определенных модификаторах (например в физике).. По крайней мере мне так кажется..
К тому-же поли в МАХ-е тоже не совсем настоящие, т.е. они не такие как у программ специально предназначенных для моделинга только полигонами, и программ которые собственно зародили концепцию полигонов типа: Mirai и Nendo
Bender Bending
kolts
Bender Bending
http://www.rubengarza.com/maxscript-S02-VertTool.htm
GoodMan
На "экспортный вариант" с красивыми менюшками UI уйдет не больше часа..
Учите скрипты - это не так сложно как выглядит на первый взгляд..
kolts
Shanaya
Скрипт выше юзала, он прекрасен, но интересно, есть ли где скрипт, который копирует координаты не одного вертекса, а нескольких выделенных? И может скопировать эти координаты вертексам другого объекта, при условии, что индексы вертексов у этих объектов совпадают? Например, такую штуку удобно было бы применять в морфинге, но почему-то такого найти я не смогла, видимо, реализовать это не так просто, как мне думалось 🙂.
В максе я ещё новичок, а программированием в последний раз занималась ещё в универе, и благополучно всё забыла. Попытаюсь сама реализовать нечто подобное, но если такое уже есть, то зачем страдать?) Может, кто сталкивался?
igorznag
try destroydialog test catch(); rollout test "Test" ( button btn_copy "Copy" pos:[5,5] width:50 button btn_paste "Paste" pos:[60,5] width:50 local verts_coord=#() on btn_copy pressed do ( if selection.count==1 then ( obj=selection[1] co=modpanel.getCurrentObject() if classof co==Editable_Poly then ( vs=(polyop.getVertSelection co) as array; verts_coord=#() for v in vs where not (polyop.isVertDead co v) do ( v_coord=polyop.getVert co v node:obj append verts_coord #(v,v_coord) )--for v in vs where not (polyop.isVertDead co v) do )--if classof co==Editable_Poly then )--if selection.count ==1 then )-- on btn_copy pressed do on btn_paste pressed do ( undo on ( if selection.count==1 then ( obj=selection[1] co=modpanel.getCurrentObject() if classof co==Editable_Poly then ( n=polyop.getNumVerts co for v=1 to n where not (polyop.isVertDead co v) do ( for vc in verts_coord where v==vc[1] do ( polyop.setVert co v vc[2] node:obj )--for vc in verts_coord where v==vc[1] do )--for v in vs where not (polyop.isVertDead co v) do )--if classof co==Editable_Poly then )--if selection.count ==1 then )--undo on )-- on btn_paste pressed do );createdialog test 120 30Shanaya