- Мои скрипты для 3dsMAX

Здесь представлены скрипты написанные мной для облегчения некоторых задач и используемые в реальной работе. Скрипты не оптимизированы, не отлажены, не все ошибки обрабатываются, но это неважно..:)

    - новостной rss фид

    - http://maxscript111.blogspot.com/ - собственно сам новостной блог

    - this page translated with translate.google.com (not perfect)

    - коротенький тутор про то как превратить обычные скрипты в макроскрипты



111_extrudeFaceZero_v0.1 скрипт выдавливает выбраные полики на ноль расстояния. это чтобы не возиться с экструд тулом.

111_VrayHDRI_MonoOutput2Alpha_0.3 для выбранных объектов скрипт ставит параметр Mono Output в карте VrayHDRI, которая находится в слоте Opacity врайматериала в значение Alpha
 

111_split_to_smaller_parts_v01
111_split_to_smaller_parts_v02

скрипт разбивает объекты в сцене на небольшие части (по умолчанию по 50 поликов или около того, см внутри срипта), нужно для оптимизации некоторых игровых движков.
  111_podporki_v0.1 скрипт который создаёт подпорки для того чтобы печатать модель. с контролом меняется толщина подпорки. первая версия.
** 111_ImagesAsPlanes_v0.1 скрипт создаёт плейны из указанного файла картинки, создаёт и назначает стандартный материал с указанным файлом в качестве текстуры.
**

111_EditVertexDirect_v0.1
111_EditVertexDirect_v0.2
111_EditVertexDirect_v0.3
111_EditVertexDirect_v0.4
111_EditVertexDirect_v0.5
111_EditVertexDirect_v0.6

111_EditFaceDirect_v0.1

давно чесались руки написать такой скрипт, вот наконец дошли. скрипт заходит в уровень редактирования объекта, несмотря на то что в модифаер стаке выбран какой нибудь модифаер типа увмап, при нажатии стандартной 1 попадаем на подуровень модифаера, а нам надо бы вертексы потягать. в общем этим скриптом попадаем на вертексы и возвращаемся где были в модифаерстаке. если есть в стаке едитполи (и подобные модифаеры) открывается самый высокий из них. в общем всё как надо, главное чтобы багы не полезли. вешаем его на клавишу 1 и тестируем. скрипт сразу макроскрипт, ничего редактировать не надо - можно сразу в макс кидать.
  111_dropMe_v0.1
111_dropMe_v0.2
скрипт роняет выбранный объект вниз, во всяком случае пытается это сделать, стреляет по 4 точкам габаритов в мировых координатах вниз по всем объектам которые видны. без интерфейса, кому надо на кнопки - допиливайте сами до макроскрипта
v0.2 - обрабатывает тепер ьмного выбранных объектов, раньше только один ронял.
*** 111_cameraMatch_v0.1
111_cameraMatch_v0.2
111_cameraMatch_v0.3
111_cameraMatch_v0.4
скрипт создаёт камеру на основе перспективных линий
мануал-тутор тут
v0.4 - добавлена обработка случая когда камера смотрит вниз
с какой-то версии максов (2014 чтоли) аналогичный функционал добавили в саму программу, то есть скрипт стал неактуальным
.
 

111_randomObjects_v.01
111_randomObjects_v.02
111_randomObjects_v.03

скрипт заменяет выделенные объекты случайным из ранее определённого списка
0.2 - появилась опция которая заменяет объекты на объекты из списка только один раз. то есть клоны будут уникальные.
0.3 - опция для сохранения объектов по которым раскидываются другие

  111_sliceMulti_v0.1

скрипт делает много параллельных катов в едитполи

** 111_xrefSceneManager_v0.1
111_xrefSceneManager_v0.2
это замена стандартному диалогу управления xrefscenes который очень уж громоздкий. основная цель этого манагера - включать/выключать иксрефсцены
 

111_convertAllTexturesToJPG_v0.1
111_convertAllTexturesToJPG_v0.2

скрипт конвертирует все текстуры сцены в jpg (создаёт новый файл и меняет ссылку в материале, в первой версии если в текстуре жепег, то его переписывает по новой)
v0.2 - работает в максе 2014 (там появилась внутренняя функция с таким же именем), плюс теперь существующие жепеги скрипт не конвертирует.

  111_deleteNodesInRange_v0.1 этот скрипт удаляет все объекты которые находятся на растоянии менее какого то значения друг от друга, без UI пока, значение расстояния задать в самом скрипте
* 111_reflectionHelper_v0.1 скрипт создаёт сплайны, какбы лучи и отражение их от бъектов, для того чтобы было видно где будут отражения. выбрать объекты от которых будут отражаться лучи, запустить скрипт, тыркать мышкой в объекты, с зажатыми ctrl меняется длина луча который отражается.
  111_particles2splines_v0.1 скрипт создаёт сплайны из частиц. из простых (не партикле флоу) эмиттеров
  111_movePivotToFirstKnot_v.01 скрипт перемещает пивот сплайна в первую точку сплайна. по умолчанию у сплайнов пивот по центру сплайна.
* 111_pathCloneZ_v0.1
111_pathCloneZ_v0.2
111_pathCloneZ_v0.3
скрипт клонирует объекты вдоль кривой с заданным растоянием между клонами. отличие от стандартного spacing tool в том что клоны поворачивают по локальной оси Z вдоль пути, но вертикально остаются прямостоящими... в общем чтобы балясины на перила по пути пускать, вот для этого скрипт :)
v0.2 - добавлено в UI поле с количеством копий. если сплайн состоин итз нескольких полдсплайнов то скорее всего будет считать неправильно, то есть юзабельно на сплайне из одного подобъекта. плюс я не ставлю в конце копию, потому что в последней точке тангент не берётся как надо, а разруливать это дело нет никакого желания. в общем скрипт заточен на то чтобы делать много балясин.
v0.3 - переписан алгоритм расположения объектов по сплайну. спиннер количеста работает как нужно.
  111_ConvertGrayscaleImageToMaxscript_v0.1 просто выложил какие тообрывки кода для того чтобы не пропало - тут про то как сконвертировать чёрнобелую картинку в массив данных, который можно запихнуть в максскрипт, и функция который можно этот массив прочитать. сгодится для того чтобы в максскрипт запихнуть какую нибудь графику не отдельным файлом, а прямо в тело скрипта в текстовом виде.
  111_materiaLIB_v0.1
111_materiaLIB_v0.2

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

  111_cinemat_v0.1 скрипт который временно назначает стандартный материал, а потом возвращает те материалы что были. написан для того чтобы удобнее в синему было пихать объекты с враевскими материалами
  111_copyUVWchannels_v0.1 этот скрипт заточен на посылку объектов в синему4д для раскраски. так как туда лезут только ув координаты из первого канала, а в максе часто используется гораздо больше каналов, то приходится копировать увэшки из разных каналов в первый и обратно. вот этот скрипт и копирует увэшки плюс доп. удобности для посылки объектов в синему на раскраску.
  111_paint_mover_v0.1 что-то типа софт селекшина но на уровне объектов. как пользоваться - смотри внутри скрипта
  111_toggleVrayProxyDisplay_v0.1
111_toggleVrayProxyDisplay_v0.2
этот скрипт переключает отображение vrayproxy между боксом и превью
 

111_randomElementsMatIDs_v0.1
111_randomElementsMatIDs_v0.2

этот скрипт рандомизирует мат айди на уровне элементов.
во второй версии убрал принудительную уонвертацию в едитабл поли, всё кроме едитабл поли пропускает

*

111_selectSimilar_v0.1
111_selectSimilar_v0.2_byProperty

- этот скрипт выбирает объекты с похожими параметрами. в первой версии пока есть только один параметр - количество вертексов в объектах. возможно в следующих версиях появятся какие-то другие параметры. в общем, по мере необходимости, ну или запроса.
- версия 0.2 сканирует все проперти у исходного образца и выводит их в список, в списке можно выделить свойство, с чьим значением нужно выбрать среди всех остальных объектов. первая версия актуальна - там выбирается о количеству вертексов. я пока ещё не решил, лепить всё это в один скрипт или делать два разных, пока пусть так висит, как два разных, с одним названием но разной версией. дальше видно будет.
- в 2014 максе появился интересный хоткей ctrl+Q который выбирает похожие объекты.
  111_showTextures_v0.1 - включает/выключает отображение текстур для всех материалов в сцене.

111_randomMatIDs_v0.1 - скрипт назначает каждому полигону случайный материал айди, отрезок значений айди править в саом скрипте
* 111_gridScatter_v0.1
111_gridScatter_v0.2
111_gridScatter_v0.3

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

при определённой сноровке скрипт можно использовать и для заполенеия крыши черепицей, нужно будет ещё подумать на эту тему, как упростить процесс. - в версии 0.3 появилась кнопка align pivot to normal - ставит пивот перпендикулярно пикнутой нормали и поворачиваеть ось Х параллельно земле так чтобы ось У была вверху. процесс поворота пивота может повернуть немного и саму модель, будем надеяться что несущественно.

* 111_ExplodeElements_v0.1
111_explodeElements_v0.2

- разбивает объект на подэлементы element (соёдинённые полигоны). работает не очень шустро, перед работой выделенные объекты конвертит в поли и на выходе тоже поли получаются
версия 0.2 переписана по новой, с другим алгоритмом, работает на порядок быстрее с объектами в которых много элементов.


   

111_points_from_file_v0.1 - скрипт создаёт объекты (кубики) читая из файла координаты для каждого объекта.

111_selectObject_Nfaces_v0.1

- выделяете объекты, запускаете скрипт, скрипт оставляет выбранными только объекты с количеством фейсов менее какого то значения, в данном случае 10, если другое число - нужно править в скрипте

111_massTexturePath_v0.1 - скрипт позволяет заменить часть строки путей к файлам текстур. например можно поменять расширения для всех текстур ну и т.д. насколько хватит фантазии. первая версия с ограничениями - нельзячтобы заменяемая и заменяющая строки имели одинаковые части.
* 111_randomSelect_v0.1
- выбираете объекты, запускаете скрипт, имеете выбранными случайным образом некоторые объекты
* 111_selectBadVertices_v0.1
- скрипт выбирает вертексы к которму примыкают 2 ребра, которые образуют прямую линию. очень часто такое нужно чтобы чистить меш после булевых операций.
**

111_removeVrayGlossyInterpolation_v0.1
111_massVrayMatTweaker_v0.1
111_massVrayMatTweaker_v0.2
111_massVrayMatTweaker_v0.3

- скрипт выключает интерполейт глосси на враевских материалах (полезно если старая сцена с глосси интерполэйт)

111_massVrayMatTweaker_v0.1.ms - новая версия про то же. только есть юзер интерфейс и громе глосси ещё некоторые параметры можно массово настраивать
v0.2 - исправлен страшный баг, и изменение интерфейса
v0.3 - добавлены параметры reflection max depth, refraction max depth (полезно для оптимизации рендеринга анимаций, хватит и двух отражений вместо стандартных 5)

** 111_xCopy_v0.1
111_xPaste_v0.1
- скрипт копирует-вставляет объекты. полезно тягать объекты из одного макса в другой (2 одновременно)
** 111_selectInstances_v0.1 - скрипт выделяет инстансы и рефересны выбранных объектов
- - в 2014 максе появился интересный хоткей ctrl+Q который выбирает похожие объекты.
**

111_massGammaColor_v0.1
111_massGammaColor_v0.3
111_massGammaColor_v0.4
111_massGammaColor_v0.5
111_massGammaColor_v0.6
111_massGammaColor_v0.7
111_massGammaColor_v0.8
111_massGammaColor_v0.9

- скрипт пересчитывает цвета материалов (color) из одного gamma space в другое

v0.6 - добавлена возможность пересчёта цвета из колор пикера
v0.7 - исправлен баг в максе2010, атм появиласть своя внутрення переменная с таким же именем как у меня переменная.
v0.9 - опция пропуска цвета отражений, опция обработки только текущего выбранного материала в медиторе.

  111_VrayBlockRender_v0.2
111_VrayBlockRender_v0.1

- этот скрипт должен помочь тем кто часто рендерить враевские анимации на сетевом рендере. скрипт разбивает анимацию на куски и сам засылает эти куски в виже сетевых задач. причём скрипт точно так же разбивает просчёт ирмапы, то есть ирмапу можно ренжерить кусками на разных компьютерах одновременно. скрипт предназаначен для связки ирмапа + лайткэш. другие режимы не будут работать (нужно будет дописвать или править скрипт, хотя не проверял)
vbr
  образец макс-файл с контроллерами-лимитами - контроллеры - лимиты
сначала кружочек привязывается к квадратику. всё, кружочек начинает работать в координатах парента, то есть квадратика. в контроллерах и назначаются лимиты. для этого нужно знать размеры квадратика в реальных юнитах (пожалуй единственное неудобство), по оси z можно лимиты в 0 поставить.
аттач - всё работает и при масштабировании и вращении. чтобы выжрать значения получившегося манипулятора в процентах. нужно опять же взять размер квадрата за 100% и кружочек.pos.x и кружочек.pos.y пересчитать в проценты.
  running text scripted controller - пример бегущей строки в элементе текст с помощью контроллера
  normalized planar map - попытка решить проблему нормальизация коастеров при анврапинге через написание своего планар мапа который бы планарил всё в одном масштабе. работает но через жо.. неюзабельно короче. ради интереса.
  scripted quickdirt - этот скрипт рассчитывает амбиент окклюжин в вертекс колоры, очень медленный и из-за того что сам скрипт не оптимизирован и из-за того что сам макссскрипт тормозной. писалось ради интереса, неюзабельно, проще радиоситей воспользоваться.
  car rear axis scripted controller example
собсвенно ядро кода
- в аттаче максовский файл, и там у дамми есть на скейле скриптовый контроллер в которм всё написано. просто так, к сведению, может кому нибудь будет интересно, а вообще я это сюда выкладываю чтобы не потерять:)
  111_interpolateTWOsplines_v0.1
interpolateTWOsplines_v0.2
- этот скрипт создаёт новые сплайны основываясь на 2х родительских - как бы интерполирует 2 родительские сплайны. но родительские сплайны должны быть идентичны за исключением положения точек и ручек в пространстве.
v0.2 - скрипт корректно обрабатывает замкнутые сплайны, by Ecximer
  111_combo_select-move-rotate-scale_v0.1 - этот скрипт циклирует режимы селект мув ротейт скейл автоматически, то есть сам.
** 111_clearMatEditor_v0.1
- этот скрипт заполняет матедитор одим стандартным материалом dummy material. полезно, когда вы делаете модель и чтобы к ней не цеплялись всякие тестовые материалы.
** 111_clearObjectMaterials_v0.1
этот скрипт удалит материалы с выбранных (или всех) объектов в сцене
  111_fix_nonquad_polys_v.01
111_fix_nonquad_polys_v.02

- этот скрипт ищёт полигоны с количеством эджей больше 4 и пытается разбить эти полигоны на четырёх или трёхугольники - берёт точку и ищет ближайшую к ней другую точку.

и как часто бывает, нашлась шатная альтернатива этому скрипту. аналогичные результаты можно получить с помощью модификатора turn to poly и ограничить в нём длину пебра полигона. или в некоторых случаях может помочь конвертация объекта в стандартный максовский булеан и обратно в поли.

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

  111_texture_scatterer_v0.1

- этот скрипт раскибывает оъекты по текстуре, наложенной на другой объект, там где белый пиксел - будет создан клон другого объекта

отдельное большое спасибо товарищу VG за помощь в побеждении барицентрических координат.

* 111_paint_scaler_v0.1

- этот скрипт позволяет рисовать мышкой масштаб объектам
** 111_random_materials_v0.1
111_random_materials_v0.2


- скрипт рандомизирует материлы для выбранных объектов, материалы разными способами загружаются в интерфейс, и им можно назначать веса
.
  BigRender_111
BigRender_111_VrayFBedition
- это чуть чуть подправленная версия чужого скрипта, предназначен он для того чтобы рендерить большие картинки кусками.
  111_viewport_count_display_v0.1
- этот скрипт по типу максовского на клавише 7 - отображает во вьюпорте количество полигонов, вертексов и эджей - всего и выбранных
  111_batch_materials_creator_v0.1
- этот скрипт предназначен для решения следующей задачи: есть куча файлов с маской (например людей или деревьев), нужно из этой кучи файлов сделать кучу материалов. этот скрипт сканирует папку, .сопоставляет имена файлов и создаёт материалы с диффузом и картой прозрачности.
* 111_BuildMe_v0.2
111_buildMe_v0.3
111_buildMe_v0.4
111_buildMe_v0.5

- этот скрипт анимирует параметр визибилити на выбранных объектах исходя из положения или объёма контрольного объекта. например, этим скриптом можно быстро сделать строящийся дом. или вообще просто постепенное появление группы объектов. в версии 0.5 сделано плавное проявление объектов.
- инструкция - минитутор
.
  RHTools-QuickMaximize2 - этот скрипт максимизирует вьюпорт под мышкой, и не нужно лишний раз кликать чтобы сделать нужный вьюпорт активным. скрипт чужой, но я его чутка подправил, чтобы совсем хорошо было.
**

111_batch_preview_maker_v0.1
111_batch_preview_maker_v0.2
111_batch_preview_maker_v0.3
111_batch_preview_maker_v0.4
111_batch_preview_maker_v0.5
111_batch_preview_maker_v0.6
111_batch_preview_maker_v0.7
111_batch_preview_maker_v0.8_DXF
111_batch_preview_maker_v0.9
111_batch_preview_maker_v0.10


- этот скрипт делает превьюшки из максовких файлов. опции видны на скриншоте.
 

111_Missed_Maps_Remover_v0.2
111_missed_maps_remover_v0.3
111_missed_maps_remover_v0.4

- скрипт находит ссылки на текстуры которых нет по указанному пути и позволяет удалить битмапы с такими текстурами.
врай материал какой то хитрый, не позволяет убивать текстуры, поэтому специально для врай материалов версия 0.4 которая всего лишь убивает значение имени файла в текстуре а сама битмапа остаётся висеть в материале, хотя это по идее ни на чт оне влияет. для стандартных материалов лучше пользоваться старой версией.

**

111_massFiltering_v0.1
111_massFiltering_v0.2
111_massFiltering_v0.3
111_massFiltering_v0.4
111_massFiltering_v0.5

этот скрипт меняет параметр blur и тип фильтрации по всем картам в сцене, в выбранных объектах или материал едиторе.
0.3 - появилась возможность обрабатывать только текстуры которые на прозрачности.
0.4 - опция для обработки только бамп мапов.
0.5 - blur offset параметр добавлен

*** 111_unwrapUI_mode_v0.1
111_unwrapUI_modeR8_v01
111_unwrapUImode_v0.3

- этот скрипт предназначен для улучшения удобства работы в uwvunwrap в максе. при запуске этого скрипта интерфейс макса становится похожим на картинку. при повторном запуске скрипта или нажатии на кнопку закрытия всё возвращается как было. данная версия скрипта сделана для разрешения экрана 1600. меньшее разрешение считаю неудобным (владельцы флэток - извиняйте:). да, размеры и положение самого окна надо прописывать в файле конфигурации - там внутри скрипта написано.

111_unwrapUI_mdeR8 - это версия для макса8 и возможно 9, так как достаточно сильн оизменился анврап и старый не совсем корректно работает

v0.3 - полностью переписана маленькая дополнительная панелька под новый авнврап с макса этак 9ого... теперь там ест ьвсе инструменты что и в основном интерфейсе который прячется. пришлось делать что-то типа закладок.

  111_showMap_selected_toggle_v0.1
111_showMap_selected_toggle_v0.2
111_showMap_selected_toggle_v0.3
включает-выключает отображение текстур во вьюпорте для выбранных объектов на уровне материалов.
** 111_SetKnotTo_v0.1
в одном файле 5 скриптов. 4 - для ывставления типа выделенных кнотов на сплайне в corner smooth bezier и bezier corner. 5ый скрипт - это циклическая переключалка межу этими режимами. если не выделено ни одного кнота то будет действовать на все. работает даже на заходя на уровень подобъекта.
  111_MovePivotToVertSelCenter_v.01 - этот скрипт ставит пивот в центр выбранных вертексов. работает на едитабле поли. надо зайти в вертексы и выбрать какието. запустить скрипт и пивот станет по центру от выбранных.
* 111_MovePivotToBottom_v.01
111_MovePivotToBottom_v.02

- этот скрипт двигает пивот поинт к низу по z оси мировых координат. полезно например камешки раскидывать и опускать их потом на землю. в версии 0.2 исправлен глюг с группами
  111_combo_insert+targetweld_v0.1

- этот скрипт представляет из себя комбо insert vertex + target weld этого созданного вертекса. скрипт экспериментальный, реализован через одно место, но в общем работает.

вообщето комбо insert + move было бы куда удобнее, но для этого есть чужой скрипт draw poly которы в общем то делает ту же работу.

  111_MoveStackUp_Down
- тут два макроскрипта с помощью которых можно двигаться по стеку модификаторов
.
  111_replace_opacitymaterial_v0.1
111_replace_opacitymaterial_v0.2
- этот скрипт заменяет материалы выбранных объектов на материал в первом слоте материал едитора. но при этом сохраняя опасити мапы из оригинальных материалов. это нужно например чтобы рендерить отдельно пасы, например ги, и если у вас есть в сцене объекты с масками на прозрачность. поддерживаются только стандартные материалы и мультиматериал, остальное вё заменяется без сохранения карты прозрачности.
** 111_assignMaterial

- этот скипт присваивает текущий материал в материал едиторе выбранным объектам. странно, но стандартный максовский скрипт работает через ж... точнее он не работает если материал едитор спрятан. и это не единственный случай того, что дискриты делают через ж..
.
  111_AnimationRange_tool

- этот скрипт позволяет по быстрому менять отрезок времени оражающийся в тракбаре (навеяно маей)

!!!!!!!!!!!!
позже была обнаружена возможность делать это штатными средствами - ctrl+alt и средняя и правая кнопки мыши:)

  111_positionalConnect_v0.1

- этот скрипт делает коннект но с возможностью изменения положения соединяющих ребёр, а не строго посередине как в стандартном

!!!!!!!!!!!!!!!!!!!!
как оказалось, это можно заменить стандартными максовскими констрейнтами в едитполи или скриптом csSlide:) но не всегда стандартная штука помогает. уже пару раз этот скрипт меня выручал. видмо в самом максе этой штуки в интерфейсе нету, потому что она глючновато работает. но я эту глючноватость не убирал (то что начало одного эджа может быть с другой стороны чем у других, по идее надо какие то проверки писать.... может быть в будущем....)

*** 111_SmartMenu_v.0.1

- этот скрипт сканирует папку и создаёт меню из которого можно эти скрипты запускать. если его положить в стартап, то меню обновляться будет при каждом запуске макса
** 111_togglePivotMode

- этот скрипт переключается в режим редактироавния пивот поинта и обратно
** 111_CenterPivot

- этот скрипт помещает пивот воинт в центр объекта (объектов). может есть стандартный шорткат, но я его не нашёл.
** 111_move_node_to_current_layer
помещает выбранный объект на текущий слой, максовская стандартная реализация почему то глючит на группах.
**

111_coordsys_cycler_v0.1
111_coordsys_cycler_v0.2

- 0.1, 3dsmax5,7 - два скрипта, один переключает reference coordinate system циклически через все положения, второй только View и Local.
- 0.2 - третий скрипт переключает с вью на скрин и обратно
  111_path_speed_v0.3

- version 0.3, 3dsmax7 (на пятом максе не тестировался)
этим скриптом можно задавать скорости на участках кривой, чтобы в определённом участке кривой объект ехал с такой-то скоростью, например, чтобы машинка притормаживала на поворотах. подробнее внутри скрипта (на английском)

в максе есть хорошая альтернатива этому скрипту - ease curves. хотя я погорячился назвав их хорошей альтернативой, всё таки с ними не так наглядо.а с эим скриптом получается, особенно при ста кадрах. изначально каждый фрейм = 1%, т оесть можно легко расставить скорости. а если надо 200 кадров, то лучше сначала сделать 100 для наглядности а потом смасштабировать кривую до нужного количества кадров. в общем надо ещё поразбираться... рановато в утиль списывать...

*** 111_carWheel_v0.1
111_carWheel_v0.2
111_carWheel_v0.3
- version 0.2, 3dsmax5,7
скриптик позволяет анимировать вращение колеса. то есть сначала анимируется кузов, например по сплайну, а потом запускается этот скрипт и колесо анимируется так, чтобы колёса крутились, чтобы руль поворачивался и т.д. подробное описание внутри файла (правда на английском, долго набирать, хватит с меня что один раз на английском набрал:)
***

111_scriptedGlue_v0.1
111_scriptedGlue_v0.2
111_scriptedGlue_v0.3
111_scriptedGlue_v0.4
111_scriptedGlue_v0.5
111_scriptedGlue_v0.6
111_scriptedGlue_v0.7
111_scriptedGlue_v0.8
111_scriptedGlue_v0.9
111_scriptedGlue_v0.91
111_scriptedGlue_v0.92

- version 0.1, 3dsmax5
этот скрипт аналог плагина от itoo - glue. им можно опускать предметы на поверхность по разным осям (кстати можно придумать фишку чтобы не только по осям а по вектору приклеивало, в следующей версии сделаю). так вот, можно приклеенные объекты потом ставить перпендикулярно поверхеости, и почти самое главное - им можно проецировать сплайны на поверхность (опускает на поверхость кноты, и делает их корнерами, если надо точно спроецировать то нужно сначала нормальзовать сплайн с большим количеством сегментов)
- version 0.2, 3dsmax5
в этой версии добавлена обещанная возможность проецировать не только по осям но и по лучу котоый задаётся объектом линейка (Tape). также подправил небольшую лажу с проецированием кривых - раньше только line ножно было спроецировать а теперь можно и line и editable spline, точнее SplineShape объект
- версия 0.3 - поддержка undo (с некоторыми ограничениями по опусканию узлов сплайнов)
- версия 0.4, 3dsmax2009 - улучшение точности опускания и теперь можно проецировать по виду вьюпорта, и главное можно меши опускать на поверхности вместо неудобного conform. надо бы ещё оффсет добавить...
- версия 0.5 - поддержка перспективного вьюпорта и камер для объектов только.
- версия 0.6 - поддержка приклейки вертексов мешей и узлов кривых в перспективном или виде из камеры.
- версия 0.7 - добавлена кнопка для автоматического выбора ближайшего объекта на который опускать, в зависимости от настроек
- версия 0.8 - добавлен оффсет - отодвигает от точки пересечения
- версия 0.9 - негативный оффсет, изменение юзер интерфейса, сохранение ориентации объекта при опции ориентировать по нормальи поверхности куда опускаем
- версия 0.92 - режим проекции к точке (к пивоту base object), некоторые улучшения алгоритмов

*** 111_turboHide_v0.1
111_turboHide_v0.2
111_turboHide_v0.3
111_turboHide_v0.4
111_turboHide_v0.5

скрипт позволяет быстро прятать и показывать объекты. можно запомнить группу объектов и прятать и показывать их (lock selection), а можно это делать только с выбранными объектами - стандартный режим.
0.3 - добавилась возможность прятать-показывать невыбранные объекты
0.4 - защита от падений (иногда после удаления объектов и анду получается что скрипт хочет обратиться к удалённому объекту)
0.5 - turbohide isolate корректно работает если вызван из уровня подобъекта, например во время редактирования
в 2015 максе уже не столь актуален

** 111_properties_ByLAYER_v0.1
111_properties_ByLAYER_v0.2
- version 0.2, 3dsMAX 5
В общем этот скрипт позволяет быстро рулить слоёвыми пропертями типа color by layer. Старался сделать это дело удобным, так как часто проперти любят соскакивать на byOBJECT. так вот нажав на кнопку или хоткей проперти ставятся в положения указанные в опциях, опции вызываются с зажатым CTRL, клик с SHIFT скидывает проперти на byOBJECT. и ещё, если выбраны объекты то действует только на них, если ничего не выбрано, то действует на все объекты.
  111_mass_supersampling_v0.1

- version 0.1, 3dsMAX 5
этот скрипт позволяет менять настройки суперсемплинга для материалов выбранных объектов. поддерживаются только стандартные и мультиматериалы. полезно для управления скоростью_рендера\качеством

неактуально для новых максов - там ессть это встроенное - global sampler

***

111_NURMS_toggle_v0.1
111_NURMS-meshsmooth_toggle_v0.2
111_NURMS-meshsmooth_toggle_v0.3
111_NURMS-meshsmooth_toggle_v0.4
111_NURMS-meshsmooth_toggle_v0.41

- version 0.3, 3dsMAX 5
этим скриптом можно включать/выключать NURMS на editpoly или первый в стаке meshsmooth.можно увеличивать или уменьшать степень сглаживания. также можно проводить операции над группой объектов. хорошие кнопки ` - toggle CTRL+`- iterations down SHIFT+` - iterations up

- version 0.4 (0.41), 3dsMAX 7
добавлена поддержка turbosmooth плюс некоторые мелкие оптимизации и расширенные сообщения для пользователя.

  111_matID_randomizer_v0.1
111_matID_randomizer_v0.2
111_matID_randomizer_v0.3

скрипт меняет в группе выбранных объектов mat id, может случайным образом поменять некоторые существующие mat id на указанные. полезно для быстрой рандомизации подматериалов в группе объектов. В первом поле пишем те матайди которые хотим поменять, во втором те на которые хотим поменять, список можно задавать через пробел, запятую, дефис и ещё что-то не помню уже :)
- v0.2, 3dsMAX 5 - во второй версии добавлена поддержка мешей (editablemesh) и флажок make unique (полезно если вы меняете матайди в инстансах - собственно убивает инстансы)
- v0.3 - в новых максах что-то неправильно работало, пришлось поправить, заодно и ЮИ переписал. Также выше можно найти ещё пару скриптов которые тоже рандомизируют айдишки материалов, но работают немногжко по другому.

***

111_mouse_oriented_cloner_v0.1

111_mouse_cloner_v0.1
111_mouse_cloner_v0.2

111_paint_cloner_v0.1
111_paint_cloner_v0.2
111_paint_cloner_v0.3

mouse_oriented_cloner - если нужно расставлять много объектов причём не просто так а ориентированных в пространстве, то этот скрипт вам поможет. вместо того чтобы слонировать объект а потом его крутить так как нужно, можно просто двумя кликами поставить объект и сориентировать его на второй клик
Конечно с теперешними знаниями макроскрипта я бы сделал это и без констрейнта, ну да бог с ним, пусть будет как есть...

mouse_cloner - это просто клонер который создаёт объекты в месте клика, без последующей ориентации, полезен в сочетании с random transforms

paint_cloner
- v0.1:
- можно рисовать клоны, а можно их создавать кликами, плюс несколько интересных мелочей, типа автоопределеия минимального расстояния между клонами, выборка созданных клонов или добавление созданных к текущей выборке. Хотел сделать ориентацию клонов по движению, но пока не сделал, если понадобится сделаю в следующей версии.
- v0.2:
- добавлена ориентация по z оси. то есть копии будут поворачиваться по движению мыши. (галочка новая fZ)
- добавлен режим прямых линий, специально для заборостроителей :) (нажать shift)
- нажав shift + ctrl и кликнув можно указать точку на которую будет ориентация. таким образом можно двумя кликами ориентировать объекты. клик с шифт+контрол - указываем точку куда смотреть. и следующий клик с контролом (и галочкой fZ) создаёт один клон которй смотрит на первую точку
- один моментик есть, на который меня уже больше нет сил. если создать сначала один клон (с контролом) а потм сразу линию нарисовать, то в месте первого клона будет 2 копии. в общем типа known bug
- v0.3 - редизайн интерфейса

* 111_object_transform_replacer_v0.1
111_object_transform_replacer-distributor_v0.2
111_objectReplacerDistributor_v0.3 111_objectReplacerDistributor_v0.4
111_objectReplacerDistributor_v0.5

- version 0.2, 3dsMAX 5
скрипт заменяет выбранные объекты на указанный в опциях, при этом сохраняются трансформы (положение, поворот и масштабирование) оригинального объекта.
во второй версии добавлена возможность распространения объекта с копированием трансформов и пару юзер-френдли сообщений

в седьмом максе появилось clone and align чем-то отдалённо напоминающее это.

- v0.3
ранее учитывались только трансформы того объекта на место которого ставился новый. теперь же также учитывают трансформы объекта который размножается, т оесть если его отмасштабироввать и покрутить то он размножится отмасштабированный и покрученный. плюс добавился ещё объект для оффсета. то есть этот второй объект как бы из себя представляет тот объект который будет заменён на новый, так вот смещение копируемого объекта относительно его и масштаб и вращение тоже учитываются. короче учитывается всё что можно. осталось только потестить хорошо на предмет ошибок. а строенный в макс clone and align вот таким оффсетным объектом похвастаться не может - там просто спинеры выведены. а нужно это для того чтобы например быстро добавить в групу объектов новый объект, или заменить старый на новый не заморачиваясь с пивотами.
- v0.4 - редизайн юзер интерфейса.
- v0.5 - обработка отмирореных объектов (кроме офсета), сохранение старых имён

  111_curb_unwrapper_v0.1
- version 0.1, 3dsMAX 5
собсвенно скрипт который может иногда помочь в тяжёлом деле текстурирования всяких бордюров, дорожек и прочей чепухи, которые вылезли из автокада или ещё чего нибудь в этом духе (где нет поддержки текстурных координат). по сути просто выстраивает текстурные вертексы в полоску. как пользоваться: сначала создать модификатор анврап, автоматом оно наложить планарные координаты (если нет никаких), выбрать хвостик курба - крайние вертексы (главное чтобы были выбраны все крайние вертексы одного края, иначе скрипт не туда пойдёт), ну там настройки какие-то, я уже точно не помню:)
***

111_random_transforms_v0.1
111_random_transforms_v0.2
111_random_transforms_v0.3
111_random_transforms_v0.4
111_random_transforms_v0.5
111_random_transforms_v0.6

111_random_mover_v0.1
111_random_rotator_v0.1
111_random_scaler_v0.1

- v0.1 - скрипт делает рандомные изменения в трансформах в пределах указанных величин. ну например нужно вам камешки какие покрутить или помасштабировать или подвигать случайным образом, вот оно это и делает. есть отдельные скрипты на двиганье, вращение и масштабирование и собранные вместе в одну интерфейсину
- v0.2 - добавлена поддержка undo
- v0.4 - добавлена галочка для перемещения, которая лочит оси x и y, а z остаётся неизменной. так более часто нужно.
- v0.5 - редизайн интерфейса
- v0.6 - небольшое улучшение юзабилити


(c) andrei kletskov (111)
</div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-620326-1"); pageTracker._trackPageview(); } catch(err) {}</script> </body> </html>