UV Tools 2.1

Автор
Сообщение
На сайте c 31.03.2008
Сообщений: 1112
Москва

Ссылка на скрипт

Ссылка на документацию в Блоге

CHANGE LOG:

###################### v2.1.3

- Fix. Garbage collect errors in 3dsMax 2017.

- Fix. Memory leaks in 3dsMax 2017 and 3dsMax 2018.

###################### v2.1.2

- Improved. Show bitmaps in viewport speedup.

###################### v2.1.1

+ NEW. Added Redshift bitmap to bitmaps switch.

###################### v2.1

(Main)

+ NEW. All "by shell" operations can be stopped by Esc.

+ NEW. Hidden setting. Enable borders for all buttons. Set main_iconBorders=true in ini file.

- Improved. Better progressbar behavior.

- Improved. Better high poly mesh handling.

(Mapping)

+ NEW. Select longest UV edges. Right click on Rotate shell to edge.

+ NEW. Relax by shell. By Edges and Poly angles.

- Improved. Get size from selected polygons, not shell.

(Viewport)

+ NEW. Switch material bitmaps in viewport.

+ NEW. Backface Cull selected objects. Click: Enable. Right Click: Disable.

+ NEW. Display material in viewport. Click: Switch. Right Click: Enable.

+ NEW. Checker list replaced by button. Click: Switch checker textures. Right Click: Restore object material.

+ NEW. Checker mapping channel get from UVW Map and UVW Xform.

- Improved. Added small horizontal arrow to Arrow Up checker.

- Fix. Issues with checker tiling update.

(Interactive)

+ NEW. Spinners for scale U and V axes. Lock axes checkbutton for uniform scale.

- Improved. Scale minimum 1% to avoid flip.

(Randomize)

+ NEW. Step button instead of checkbox. No need to setup step mode anymore.

+ NEW. Tootips with randomize values.

- Improved. Scale maximum +-90%.

###################### v2.0.1

- Fix. Full stack collapse if you have Turbosmooth at the top of current modifier.

###################### v2.0

(Main)

+ NEW. Modular Rollouts UI with icons. You can hide rollouts with tools you don't need.

+ NEW. Many tools works with all sub objects.

- Improved. Status bar is now more helpful.

- Improved. Progress bar 3 colors: Green - ok, Yellow - processing, Red - error.

- Improved. Removed UI controls disabling.

- Improved. Auto add Unwrap on start is removed. It's became annoying.

- Fix. SubObjects selection reset.

- Fix. 3dsMax 2009 Angle snap disable error.

- Fix. Closing Unwrap UV Editor at start.

- Fix. Group head selection error.

- Fix. Macro tooltip mistype :)

(Unwrap)

+ NEW. SubObject level checkbuttons.

+ NEW. SubObjects conversions.

+ NEW. Select open uv edges.

+ NEW. Select edges outline from current selection. Doesn't work if you will select whole UV Shell.

+ NEW. Grow selection to UV Shells or Geo Elements.

+ NEW. Select same material IDs.

+ NEW. Select same Smooth Groups.

+ NEW. Loop/Ring like in UV Editor.

+ NEW. Transfer SubObject selection from Unwrap to Editable Poly or Edit_Poly and vise versa.

+ NEW. Collapse and Delete any modifier, not only Unwrap. Multiple objects selection supported.

(Mapping)

+ NEW. Flatten mapping to realworld size.

+ NEW. Box mapping to realworld size.

+ NEW. Get size of selected polygons and paste into Scale To spinner.

+ NEW. Fit and center UV to tile.

+ NEW. Normalize UV Shells. Make mapping scale the same.

+ NEW. Match height and width of UV Shells.

+ NEW. Rotate UV Shells to selected vertices or edges.

+ NEW. Align UV Shells. 18 methods.

(Checker)

+ NEW. Checker materials. 4 bitmaps included, and you can add/remove them.

+ NEW. Original material can always be restored, even after 3dsMax crash.

+ NEW. Checker can use realworld size.

(Tools)

+ NEW. UV Smooth. Create SmoothGroups based on mapping elements.

+ NEW. UV Morpher. Create flat UV object in same size as original and morph it to model. Useful for retopology and skinning.

(Interactive)

+ NEW. Auto multiplier based on selected UV Shells size.

+ NEW. Press Shift while drag Offset to change axis.

(Randomize)

+ NEW. Remaining time.

+ NEW. Press Esc to cancel randomizer.

- Fix. Randomize by polygons removed. It can be extremely slow, you , and alsmost nobody need it.

###################### v1.4.8

+ NEW. Randomizer - 1 Tile Limit.

###################### v1.4.7

+ NEW. Fast and automatic "Reset W position" before "Scale to" procedure.

- Improved. "Reset W position" removed from "Scale to" right click.

###################### v1.4.6

- Fix. Undo UV transform was broken.

###################### v1.4.5

- Fix. Add Unwrap button errors.

###################### v1.4.4

- Fix. Randomizer wrong vertices selection.

###################### v1.4.3

+ NEW. AutoSelect option. Automatically grow selection to UV Shells before transform.

+ NEW. Break buttons is back again.

- Improved. Modes now only for Randomizer.

###################### v1.4.2

- Fix. Toolbar button now pressed if dialog is opened.

- Fix. Primitives re-enabled :) errors fixed. I hope so.

###################### v1.4.1

- Fix. Only poly or mesh now supported. No primitives or splines, to prevent some errors.

- Fix. UI lock behavior.

- Fix. DestroyDialog bug and crash in max2017.

###################### v1.4

+ NEW. Modes radiobuttons.

+ NEW. Polygons Mode.

+ NEW. Auto break selected polygons in Polygons mode. Break button removed.

+ NEW. Auto add "Turn to Poly" modifier if object is not EditablePoly.

+ NEW. Randomizer settings reset by right click on "Randomize" button. Reset button removed.

+ NEW. Optimized prevent freeze on heavy calculations.

- Fix. Unwrap will be added only if one object is selected.

###################### v1.3

- Fix. FlipU and FlipV randomizer was broken.

- Fix. Disable angle snap only in rotate operation.

- Fix. "Reset W fix" behavior.

- Fix. Some tootips and messages.

###################### v1.2.8

- Fix. Interactive UV transform memory leak.

###################### v1.2.7

- Fix. Redraw in randomizer now disabled. Speedup randomizer on small selections.

###################### v1.2.6

- Fix. Randomizer on mesh object was broken.

###################### v1.2.5

- Fix. Randomizer ram issue.

###################### v1.2.4

+ NEW. Scale U and V separately or both (by default).

###################### v1.2.3

+ NEW. Offset multiplier list. Useful to get higher precision UV offset.

+ NEW. Collapse Unwrap will select base object in modifier stack.

+ NEW. "Reset W fix" moved to "ScaleTo" Right Click.

###################### v1.2.2

+ NEW. Collapse Unwrap modifier.

- Fix. Add Unwrap while another modifiers are existed.

###################### v1.2.1

- Fix. Randomize on mesh error.

###################### v1.2

+ NEW. Stepped random mode for each transformation.

+ NEW. Randomize by geometry element option.

+ NEW. Automatically Add/Find unwrap at first start.

+ NEW. Settings saved: window position, scale to value, randomize settings

+ NEW. Reset W position of all mapping vertices when adding Unwrap by button. For correct Scale To function.

- Improved. Scale to now doesn't find different elements to speedup rescale process.

###################### v1.1

+ NEW. Scale to. Scale selected UV elements to realworld size.

+ NEW. Progress bar.

###################### v1.0

- Initial release.

На сайте c 31.01.2007
Сообщений: 171
Ярославль
Привет! Может об этом уже писали. но все же... Если выделен объект, на который назначен модификатор Unwrap UV Tools, то не работают хоткеи.. все не проверял, но такие как Ctrl+S, Ctrl+Del точно не работают..
На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата FreeRacer:
Привет! Может об этом уже писали. но все же... Если выделен объект, на который назначен модификатор Unwrap UV Tools, то не работают хоткеи.. все не проверял, но такие как Ctrl+S, Ctrl+Del точно не работают..

Скрипт к этому не имеет отношения. Я не уверен что на это вообще можно повлиять через maxscript.

Но я знаю из-за чего это. Анврап (и не только анврап) может перехватывать сочетания клавиш в 3дмаксе. Это можно отключить.

На скриншоте показано как это сделать.

На сайте c 31.01.2007
Сообщений: 171
Ярославль

Сори, не подумал об этом.. Переназначил у анврапа "пересекающиеся" хоткеи...

А за скрипт спасибо, очень годное дополнение.

На сайте c 24.05.2009
Сообщений: 10086
Цитата FreeRacer:
Привет! Может об этом уже писали. но все же... Если выделен объект, на который назначен модификатор Unwrap UV Tools, то не работают хоткеи.. все не проверял, но такие как Ctrl+S, Ctrl+Del точно не работают..

Для этого есть кнопка Keyboard Shortcut Override Toggle

На сайте c 31.03.2008
Сообщений: 1112
Москва

Новости про UV Tools 2.1

Я решил подразнить вас демонстрацией новых плюшек. Возможно кто-то подскажет что изменить или добавить.

- Сразу самое интересное. Цикличная смена битмап во вьюпорте. Поддерживаются Bitmaps, FstormBitmaps, CoronaBitmaps. Не важно где они находятся в материале, хоть внутри мультитекстуры. Левый клик - менять текстуры одну за другой. Правый клик - скрыть все.

Если выделен полигон с определенным material id, то текстуры будут меняться только на этом id.

- Интерактивный скейл теперь работает по аналогии с оффсетом. Во первых, появился замок для скейла по обеим осям или раздельно. Во вторых, зажатый шифт меняет ось как в оффсете.

- Интерфейс чекера претерпел изменения. Сделал компактнее и убрал список. Теперь это кнопка меняющая чекеры один за другим. В остальном всё также, вы можете удалять и добавлять свои.

Весь роллаут переименован во Viewport и туда добавились два переключателя, один для Backface Cull, а второй для отображения объектов в виде цвета сетки.

Дальше просто списком.

- Выделение самых длинных UV эджей. Например для выравнивания шеллов по ним.

- Релакс по шеллам. Если выделены полигоны, то by poly angle, в противном случае by edge angle. Почему по шеллам? Точно сказать не могу, но это приводит к иным результатам, нежели обычный релакс всех шеллов сразу.

- Правый клик на ресайзе теперь берет размер маппинга не с шелла а только с выделенных полигонов.

- Канал для чекера теперь будет находиться даже из UVW Map и UVW Xform модификаторов.

- Кнопки Step вместо галочек в рандомайзере запускают рандомайз в этом режиме. Теперь нет нужды это настраивать.

- Улучшено поведение скрипта с хайполи объектами.

- Ну и всякие мелкие багфиксы и улучшения.

____________________________________________________

2.1 готова и ждет модерации.

Не особо заметно, чтобы меня кто-то читал, но я напишу тут вместо создания очередного блога.

Плохая новость в том, что я не буду раздавать 2.1 бесплатно, как обновление. Объясню.

Это не хотфикс, хотя фиксов там хватает. В 2.1 есть новые хорошие фичи и улучшенные старые.

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

PDF документация из 2.1 выкинута, т.к. вся она написана в подсказках на кнопках. 

____________________________________________________

UPD 2018.07.10

Всем привет. Хороших новостей нет, зато есть плохая :)

У некоторых пользователей max2017-max2018 возникает ошибка связанная с garbage collect'ом. Выглядит вот так

скриншот

Текст ошибки - "An unknown error occured while MAXScript was performing garbage collection.If you get this error multiple times, recommended restarting max".

Беглый поиск дал это решение , но оно не помогает. Я пытался поймать эту ошибку на 2018 максе, но не смог её получить и уж тем более исправить.

В скрипте в общем то много комманд "gc light:on". Она нужна для чистки памяти после интенсивных задач, и насколько я знаю используется в очень многих скриптах и не должна вызывать проблем.

Если кто-то знает причину таких ошибок, то пожалуйста посоветуйте. Тем временем, я продолжу свои поиски и если они принесут результат, сообщу здесь.

Нашел упоминания об этой ошибке аж за 2009 год. Были жалобы даже на Forest Pack. Вероятно дело не сколько в скриптах, сколько в сочетаниях системы, макса и скрипта.

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата MastaMan:
В скрипте много callbacks?

Не так что бы много, но они есть т.к. с ними скрипт интересней и интерактивней. Внутри них gc нету.

Интересно к чему ты клонишь, продолжай :) 

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата Jähman':
А не пробовал heapSize  увеличить?

Так ведь это и есть тот метод по ссылке :) нерабочий. Он лишь может отсрочить появление ошибки.  У меня этой ошибки нет вовсе, в этом и проблема её диагностики.

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата MastaMan:
Ты их все после закрытия скрипта чистишь?

Чистю :) И коллбэков там по минимуму (смотря что считать минимумом).

Ошибка может возникать и во время работы скрипта и при его закрытии.

На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата Slazzo:
Много глобальных перемен удерживаться в память?

Только то, что необходимо с моей точки зрения:

1) Сам роллаут по понятным причинам

2) Структура нескольких функций для коллбэков

Цитата Slazzo:
используется референс к переменам типа &var ?

Используется только в getArea функции анврапа, т.к. такие уж аргументы у этой функции. В моих собственных я такого не использовал.

Цитата Slazzo:
список действий можно выплюнуть в лог и итерировать эпохи пока не вылезет ошибка

Можно чуть подробнее?

На сайте c 31.03.2008
Сообщений: 1112
Москва

Ошибка garbage collect в 2017 максе исправлена. Утечка памяти в 2017-2018 исправлена.

Версия 2.1.3

+ NEW. Added Redshift bitmap to bitmaps switch.

- Improved. Show bitmaps in viewport speedup.

- Fix. Garbage collect errors in 3dsMax 2017.

- Fix. Memory leaks in 3dsMax 2017 and 3dsMax 2018.

Заливать пока не буду, так как возможно через какое-то время на сайте можно будет обновлять контент. Тогда и обновлю.

Все кто купил UV Tools 2.x могут послать свою версию скрипта мне на почту nik.gushchin@gmail.com  и я в ответ кину 2.1.3.

P.S. Для тех кому интересно, причина ошибки была какой-то такой . Пока не доказано обратное я считаю это багом 2017 макса :)

На сайте c 15.01.2011
Сообщений: 299
-NiK-, Вопрос UV Smooth. Хотел спросить, можно ли добавить угол по которому разделяются группы сглаживания? Как это сделано в модификаторе Smooth (параметр Threshold). Например рядом с кнопкой UV Smooth можно было бы сделать поле для ввода угла. Просто иногда нужно иметь границу SG между островками и одновременно, что бы сам кусок не сглаживался одной SG.
На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата Al3XXX:
-NiK-, Вопрос UV Smooth. Хотел спросить, можно ли добавить угол по которому разделяются группы сглаживания? Как это сделано в модификаторе Smooth (параметр Threshold). Например рядом с кнопкой UV Smooth можно было бы сделать поле для ввода угла. Просто иногда нужно иметь границу SG между островками и одновременно, что бы сам кусок не сглаживался одной SG.

Эта фича предназначена для того, чтобы сделать смусгруппы по островам маппинга. Если некоторые острова не должны создавать разные группы потому, что между ними на геометрии малый угол, то это всё дико усложняет и боюсь я не смогу это реализовать.

Не проще ли в этом случае выбрать нужные острова маппинга и в editable poly сделать смус по нужному углу?

На сайте c 15.01.2011
Сообщений: 299
Ясно. Так и делаю.
На сайте c 13.10.2011
Сообщений: 220
Алматы
Скажите пожалуйста, можно ли сделать, чтобы текстура в реальном размере также реально по отношению к развертке отображалась в UV Editor? А то сейчас я нажимаю в скрипте кнопку "масштабировать элементы под размер в счетчике", в нем 1, что вроде должно означать реальный масштаб, на самом объекте текстура вроде бы отображается правильно, но в эдиторе кластеры становятся огромными и подвинуть их куда нужно а не могу. Приходится долго и нудно гонять кнопки переноса и поворота, чтобы хоть как-то поставить текстуру на место. Я что-то делаю неправильно или это так должно быть? Версия скрипта 2.1
На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата nnnkkk:
Скажите пожалуйста, можно ли сделать, чтобы текстура в реальном размере также реально по отношению к развертке отображалась в UV Editor? А то сейчас я нажимаю в скрипте кнопку "масштабировать элементы под размер в счетчике", в нем 1, что вроде должно означать реальный масштаб, на самом объекте текстура вроде бы отображается правильно, но в эдиторе кластеры становятся огромными и подвинуть их куда нужно а не могу. Приходится долго и нудно гонять кнопки переноса и поворота, чтобы хоть как-то поставить текстуру на место. Я что-то делаю неправильно или это так должно быть? Версия скрипта 2.1

Ну, во первых, дело не в скрипте.

Это стандартное поведение realworld маппинга, и в этом его суть. Вы пытаетесь совместить несовместимое, rw развертка будет равна одному uv тайлу только если будет наложена на плейн 1х1 юнит :)

На сайте c 13.10.2011
Сообщений: 220
Алматы
Как-то не совсем понятно. У меня кубик 500х500 мм, к примеру, я беру текстуру rw тоже 500х500 мм, почему нельзя сделать, чтобы они совпадали и в эдиторе?
На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата nnnkkk:
Как-то не совсем понятно. У меня кубик 500х500 мм, к примеру, я беру текстуру rw тоже 500х500 мм, почему нельзя сделать, чтобы они совпадали и в эдиторе?

Вам нужно взять кубик, наложить на него стандартный uvw map box в режиме realworld и посмотреть что будет. Это не чудеса 3дмакса, так делает любая программа с rw маппингом. Возьмите тот же Unfold3d RS.

В этом суть realworld маппинга, 1 uv тайл там равен 1 юниту. Это позволяет использовать один маппинг для самых разных размеров текстур, а также это позволяет легко использовать неквадратные текстуры не заморачиваясь с тайлингом. У него есть плюсы и минусы, и есть своя сфера применения.

Сторона кубика 500х500 замапенная в 1 тайл не нуждается в риалворлд маппинге чтобы её текстура была 500х500. Это уже обычный маппинг.

На сайте c 13.10.2011
Сообщений: 220
Алматы
Я же 500х500 для примера привела, с применением rw я давно знакома. Хорошо, в стандартном маппинге 1 тайл равен 1 юниту, но юниты-то одни для всей геометрии и прочего? Не важно, см, мм, дюймы... В таком случае нельзя ли реализовать такую систему масштабирования, при которой бы кластеры отображались сообразно размеру тайла? У меня "кубик" 500х500 и он с тайлом совпал, 100х12,5 соответственно меньше и т.п.? Мне нужно кресло из 25 деталей разложить так, чтобы все строчки были на своих местах и одного размера и принты точно на месте (опять же, к примеру). Это нереально, чтобы детали не только масштабировались друг относительно друга, но и относительно тайла? Я подгоняю, конечно: делаю развертки в разных масштабах для разных каналов, на глаз подбираю масштабы... Ваш скрипт хотя бы позволяет одной кнопкой затайлить, где можно в rw и не надо подгонять, что уже здОрово, но вот если бы еще и такая прелесть была, как соответствие 1 юнита тайла и 1 юнита модели...
На сайте c 31.03.2008
Сообщений: 1112
Москва
Цитата nnnkkk:
Мне нужно кресло из 25 деталей разложить так, чтобы все строчки были на своих местах и одного размера и принты точно на месте

Зачем здесь риалворлд маппинг? Он здесь абсолютно вреден и неюзабелен.

Вы не понимаете одну вещь. Риалворлд маппинг это и есть масштабирование не под 1 тайл. Масштабировать риалворлд маппинг нельзя, невозможно, бессмысленно, вы лишите его риалворлдовости :)

_______________________________________________________

И еще такой момент, может кто-то не знает. Крайне не рекомендую использовать realworld маппинг в загружаемых моделях.

Как только вы сколлапсите uvw map realworld, для 3дмакса этот маппинг ничем не будет отличаться от обычного с большим скейлом. Грубо говоря он перестанет его считать realworld'ом и он превратится в самые обычные uv координаты не зависящие от геометрии. С Unwrap еще хуже, там вообще нет такого понятия как realworld маппинг.

При мерже в сцену с другими юнитами произойдет следующее. Битмапы будучи умными ребятами сконвертируют свои риалворлд размеры и старые 1000мм превратятся в 0.001м (если мержим из mm в m), а маппинг будет представлять из себя всё те же uv координаты. В итоге текстуры будут в 1000 раз меньше.

Так что если не хотите создавать неприятности юзерам с другими юнитами - используйте риалворлд только для себя любимого.

Читают эту тему: