СообщенияДата

Maxscript. Проверка по куску имени из переменной.

Цитата -NiK-: Цитата kolt_050: Нет, не относительно вида из камера. А именно относительно обычных осей X Y Z. Я и не писал про миррор относительно вида :) Обычные оси это мировые координаты или координаты объекта? Какая часть у вас не работает (не реализована)? Я видел гифку, что-то уже явно готово. Определить доминантную ось вьюпорта несложно. Ориентация готова, сделал по аналогии с вот этим скриптомhttps://www.scriptspot.com/3ds-max/scripts/rotation-axis-snap Мирор нужен именно относительно Мировых осей, иначе запутаешься, если объект повёрнут в своих локальных координатах.
11.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата In-design: Граждане, кто в курсе как это сделать? Есть, допустим переменная name="Box" И есть куча объектов, в именах которых содержится или не содержится этот "Box". Нужно устроить всем объектам в сцене (или в выделении) проверку на содержание в их именах этого Box'а, и объекты содержащие в имени Box уложить в другую переменную-массив. Есть такое https://docs.google.com/document/d/1cDxNIXZ3OeqmbWOtzxwjIVHL6MElaGXph5fwm5pvOzs/mobilebasic#h.lcfrvhh0ecci Если в сцене есть куча объектов, разнесённых по разным слоям, имеющих одинаковый элемент в имени, то легко выделяем их посредством MaxScriptarCollision=For i in $*Coll collect i; unhide arCollision; select arCollision;  max hide inv /*В переменную arCollision передаётся результат цикла, в котором  каждый элемент i из объектов, содержащих слово “Coll” заполняется в массив (collect i). То есть: [ $-- указатель на объект *-- знак указывающий на то что вместо звёздочки может стоять сколько угодно, каких угодно символов Coll--имя, по которому ищем объекты] */  -- unhide arCollision; select arCollision;  max hide inv раскрыть объекты; выделить -- объекты; скрыть невыделенные Развил тему :) Вот готовый скрипт macroScript naneHUnH  category:"Niklit Scripts"   toolTip:"Name obj Hide Unhide"   icon:#("TrackViewTools",114) ( StuffName=#() try DestroyDialog naneHUnH catch() rollout naneHUnH "Name obj Hide Unhide" width:235 height:47 (         editText edt1 "" pos:[-2,2] width:235 height:14         checkbox chk1 "Hide inv" pos:[170,26] width:77 height:16         button btn_UnHide "Unhide" pos:[2,22] width:80 height:23         button btn_Hide "Hide" pos:[84,22] width:80 height:23         on chk1 changed hInv_State do hInv_State=off         on edt1 entered txt do         (                 if txt != "" do        NameForFind=execute ("$*"+txt+"*")                 global arO=For i in NameForFind collect i         )         on btn_UnHide pressed do        with undo on (                 select arO; unhide arO                 if chk1.checked then (max hide inv) else ()         )                 on btn_Hide pressed do with undo on  (hide arO) ) CreateDialog naneHUnH ) Цитата -NiK-: Камера это типа наш вьюпорт. Тогда вертикальный миррор выбирает ось (1), а горизонтальный (2)? Это если выбраны локальные координаты объекта. Если выбраны мировые координаты, то соответственно выбирать нужно из них? Поправьте меня. Нет, не относительно вида из камера. А именно относительно обычных осей X Y Z. Положения камеры только даёт нам информацию к какой оси мы сейчас повёрнуты, т.е. вокруг объекта всего 4 сектора, которые как-бы перпендикулярны плоскостям XZ и YZ. Скрипт это распознаёт и зеркалит относительно нужной оси, по горизонту это X или Y, а по вертикали это Z. Если же смотрим на объект сверху или снизу, то тут только оси X и Y нужны. Вертикальной осью будет либо X, либо Y, в зависимости от поворота камеры. Но зеркалить объект нужно ещё относительно активной опорной точки, которую мы выбрали в меню выше. ____________________________ Кто-нибудь знает, как проверить номер выбранного модификатора и записать в переменную? Везде инфа только по проверке названия модификатора либо класса. Просто названия модификаторов могут совпадать, а нужно найти именно выделенный модификатор.
11.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата QuixelMega: для мирор под камеру, если нужно выбрать обсолютную ось достатончо просто сдеьать крос вектор камеры и вверх, потом выбрать самую длиную ось, если не обсолютную ось а прям под камеру все тоже самое только перпендикулярный вектор камеры и верх переводим в угол поворота относительно поворота обьекта, скармливаем в mod.Mirror_Center.rotation Нашёл ещё такой вот приём, но как использовать не совсем понятно. Нормализованные XYZ векторы камеры въюпорта Их можно использовать для рассчёта положений, трансформаций и перемещений относительно камеры въюпорта VectViewX=(inverse(getViewTM())).row1 VectViewY=(inverse(getViewTM())).row2 VectViewZ=inverse(getViewTM())).row3 point wirecolor:red        size: 1        pos: VectViewX point wirecolor:green        size: 1        pos: VectViewY point wirecolor:blue        size: 1        pos: VectViewZ
10.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата Evilis: по второму, мне немного сложно вас понять :) возможно это Mirror, и это coordsys вам поможет Скрипт нужен для того, чтобы не париться на счёт выбора осей по которым нужно отзеркалить объект и не тратить время на диалоговое окно стандартного инструмента Mirror в максе. Мне гораздо быстрее просто повернуть камеру вокруг объекта, выбрав нужный ракурс для отображения объекта по горизонту или по вертикали. Вот пример:https://gifyu.com/image/SsW3q Пока я сделал его только для локальной опорной точки самого объекта. Осталось только в скрипте прописать ноду координат [in] coordsys <matrix3> которую он должен считывать с выбранной опорной точки вида. Вот в этом и загвоздка, не понимаю, как можно считать её координаты в пространстве. [[link:image_uri:565426,]][[image:565426,sky_image_forum]][[/link]]
07.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата dontpiter: А чего все до сих пор на макскрипте пишут? Макс вроде Пайтон поддерживает давно.. Давно уже хочу на нём научиться программировать, но руки всё не доходят)
06.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата -NiK-: Цитата kolt_050: А где можно посмотреть список всех супер-классов? superclasses :) Спасибо! Сейчас ещё пишу скрипт для Mirror по горизонту или вертикали, в зависимости от того, как расположен объект относительно вида или камеры.Пока готова первая часть скрипта с проверкой на ориентацию вида. [[link:image_uri:565332,]][[image:565332,sky_image_forum]][[/link]] Но вот с Mirror относительно опорной точки объекта или вида, которая может меняться в панели меню, у меня проблемы. Нигде не могу найти информацию по этому поводу. Как учитывать именно отображаемую опорную точку, а не локальную или центра координат.
06.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата Evilis: splArr = for s in $ where (superClassOf s.baseObject == Shape) collect s; Спасибо! Очень нужная вещь! А где можно посмотреть список всех супер-классов? А то еле нашёл GeometryClass)) P.s. Туплю, можно же просто через команду superClassOf $ проверить) Всё работает. Вот, что вышло) local NObj= selection.count local GeoArr=( for s in $ where (superClassOf s.baseObject == GeometryClass) collect s).count local SplArr=( for s in $ where (superClassOf s.baseObject == Shape) collect s).count if SplArr==NObj then modPanel.addModToSelection (Edit_Spline ()) ui:on -- Add Edit Spline else    if (GeoArr)+(SplArr) == NObj then modPanel.addModToSelection (Edit_Poly ()) ui:on -- Add Edit Poly    else messageBox "Select SPLINE or/and GEOMETRY objects."
06.05.2022

Maxscript. Проверка по куску имени из переменной.

Цитата Maketer: Ок, эту задачу можно решить разными способами) Вот еще вариант Для всех обьектов: currentName=Box t=currentName as string SelM=#() for i in objects do ( a=(trimRight i.name t) b = (trimLeft i.name t) if a!=i.name or b!=i.name do append SelM i) Select SelM Для выделенных обьектов: currentName=Box t=currentName as string SelM=#() for i in selection do ( a=(trimRight i.name t) b = (trimLeft i.name t) if a!=i.name or b!=i.name do append SelM i) Select SelM У меня похожая задача, но нужно проверить выбранные объекты на наличие среди них только сплайнов, чтобы можно было назначить на них модификатор Edit Spline. Что-то вроде такого, но с программированием у меня туго, поэтому это скрипт не работает, как нужно) if SelChek=( for i=1 to selection.count do isKindOf selection[i] SplineShape!=1 ) then messageBox "Select ONLY SPLINE objects." else modPanel.addModToSelection (Edit_Spline ()) ui:on -- Add Edit Spline ) Т.е. нужно сначала прогнать цикл, записать итоговый результат проверки в переменную и потом уже проверять на условие true или false, но и тут проблема, как прописать правильно условие, чтобы сплайн или шейп отличить от меша или камеры.Прописывать все возможные объекты точно не вариант.
06.05.2022

Вопрос по поводу модерации моделей

Цитата Lestrid: Всем доброго времени суток. Получила следующее сообщение от модератора. "Отсутствие некоторых модификаторов OSM. При пересохранении в предыдущие версии, убедитесь, что Вы сколлапсили геометрию..." [[link:image_uri:535947,]][[image:535947,sky_image_forum]][[/link]] Сохраняла из макса 2021 в 2018. Сколлапсирована геометрия отдельно дивана, отдельно подушек и пледов, только одна подушка с Hair and fur осталась с модификатором, чтобы не коллапсить в мэш и не утяжелять модель(касаемо нее модератор предложил добавить в архив скрин с настройками что я и сделала). На другом форуме человеку с аналогичной ситуацией советовали почистить сцену через скрипт removeMissingPlagins. Я почистила сцену со своим диваном - окон с Dlls не возникало больше, но все равно получила отказ при модерировании по той же причине с последующим удалением. Модератор прислал скрин с отсутствующим dlls класса Arnold. [[image:535950,]] Мне советовали сделать мэрдж в чистую сцену, но я не уверена сработает ли, так как даже при запуске чистой сцены макса у меня вылетает аналогичное окно только с class.Mental Ray, и removeMissingPlaguins избавиться от него не помогает. (пишет что удалил некие CastAttribs, но сообщение при перезапуске снова появляется [[image:535958,]] И я не знаю как проверить сработало или нет и как найти какой объект требующий эти модификаторы или плагины, так как перед последней попыткой загрузить модель, я открывала файл в 2010 версии и мне не выдало никаких вышеописанных окон, а у модератора появляется. В Missing plugin object explorer у меня также пусто. Ни Arnold, ни Mental Ray я никогда не использовала, но всплывают сообщения о потерянных dlls связанных с ними. Подскажите, пожалуйста как решить данную проблему. Модель не жалко, возможно она и по другим причинам бы не прошла, но даже последующие попытки получается обречены на провал, пока я это не исправлю, а информации об этом в интернете не нахожу Возможно просто выбран рендер Arnold и ещё где-то в редакторе материалов затерялись его материалы. Попробуйте в чистой сцене в настройках рендера выбрать Scanline Renderer. Затем скопировать туда всю геометрию и сохранить с выбором версии 2018.
01.02.2022

Вопрос по поводу модерации моделей

Цитата 3drj: Цитата kolt_050: Мне, например, заворачивают мою модель, аргументируя тем, что уровень не дотягивает до PRO. модель у вас хорошая и не примитивная (в отличии от бокса с материалом зеркала). вам бы рендеры и материалы подтянуть и будет гуд. могу помочь с рендерами в студии если в vray. а по материалам рекомендую изучить хоть и очень старые но очень полезные видосы Viscorbel по материалам Благодарю за совет и предложение помочь! Обязательно ознакомлюсь с видеоуроками, т.к. в визуализации у меня пока мало опыта.
27.01.2022

Вопрос по поводу модерации моделей

Цитата 3drj: Цитата duoglass: Да, он самый просмотрел ваши модели, ничего личного - но там даже на фри с натяжкой. чего вы ожидаете от модератора? неужели так трудно адекватно оценивать свой уровень? даже если вы как производитель хотите свои изделия выставлять на сайте  - сами модели таковы, что сделать их за 3-5 мин сможет почти любой начинающий. зачем же тратить и свое и модераторское время на эти модели? просто у себя на оф сайте выставляйте 2д (+3д если вам прям уж очень этого хочется) с уходом pro/lt статуса и убиранием фри. уровень выкладываемых моделей стал катастрофически снижаться и начали выкладывать модели все кому не лень. и модераторы - это последняя стена опоры, чтобы не превратить этот прекрасный сайт в помойку из ненужных боксов и сфер (не принимайте на свой счет). не жаловаться на них надо а смотреть как на учителей.... ИМХО * в свое время именно модераторы 3ддд заставляли меня развиваться. делались работы все лучше и лучше, зная что модерация все жестче и жестче. и тут дело не в цене модели - тут дело в принципе) Полностью согласен. Но если фри убрали, как тогда загрузить простую модель, которая сделана хорошо, только она не для главного кадра, а для окружения, чтобы дополнить сцену. Написали бы тогда в правилах, что для фри теперь повышается качество и всё. Я оцениваю конечно субъективно, но что плохого в том, что на сайте будут модели попроще, чем мегакрутые диваны с пледами и подушками? Мне, например, заворачивают мою модель, аргументируя тем, что уровень не дотягивает до PRO. В интернете моделей таких складных столов очень мало, почему бы её не добавить на сайт, чтобы увеличить вероятность, что в поисковике кто-то таким образом найдёт наш замечательный 3ddd и добавит сайт себе в закладки))  https://disk.yandex.ru/i/QjY8owGvd8wNAA https://disk.yandex.ru/i/l2NHZgyDrz5HZg
27.01.2022

Что слушаем?

Всем привет! Делюсь своим плейлистом для работы. https://music.yandex.ru/users/den.hleb/playlists/1011 С такой энергичной музыкой моё внимание фокусируется только на моделинге и работа ускоряется в разы. Может кому тоже зайдёт))
15.04.2020

Помогите найти/написать скрипт для 3ds max.

Цитата aleksey: Спасибо вам большое!!! Скрипт получился замечательный! Единственно что, с модификатором Edit_Poly, у него не все команды работают. Точнее только 3: при выделении вершин-connect; при выделении нескольких ребер-connect;  при выделении border-cap. Во всех остальных случаях либо ничего не происходит, либо cut, либо create. PS. Скажите пожалуйста, а возможно ли изменить команды, чтобы вместо обычной функции Extrude и Connect_edges, вылетала менюшка с ее параметрами? Еще раз хочу вас поблагодарить за помощь!!! Я очень рад! Всегда рад помочь)) Для изменения операций необходимо отредактировать скрипт. Вот инструкция: "MAXScript"->"Open script" и заменяем текущую операцию на новую, которая просто закомментирована ниже(выделеный зелёным текст). Сохраняем скрипт и переустанавливаем, можно просто перенести его из папки на рабочую область макса. Я хочу прикрутить к нему графический интерфейс, чтобы можно было просто выбирать те или иные операции под каждую комбинацию, но, пока нет времени. Зато теперь можно задавать условия для всех вариантов выбора подобъектов в Edit_Poly, как в оригинальном варианте)) https://yadi.sk/d/p00ApGNjz7YR2 Позже скину подробное описание скрипта.Перезалил скрипт, испраил некоторые ошибки. Вот описание операций в картинках. Слева для Poly Справа для SplineСкрипт завершён. Работает c Line, Edit/Editable_Spline, Edit/Editable_Poly. Вот ссылка на финальную версию: https://yadi.sk/d/cHa2iiC_32iw8B
07.12.2016

Помогите найти/написать скрипт для 3ds max.

Всё, разобрался с Editable Spline. Теперь работает в Editable_Spline/Poly и Edit_Poly. Вот ссылка: https://yadi.sk/d/p00ApGNjz7YR2Только пока остаётся неясным вопрос по программированию условий для одного или нескольких выбранных элементов подобъектов.
21.11.2016

Помогите найти/написать скрипт для 3ds max.

Цитата aleksey: Цитата kolt_050: Есть один замечательный скрипт для разгрузки хоткеев при работе в EditablePoly. Скрипт просто замечательный! Но у него есть, лично для меня, один существенный недостаток - он не может работать с моделью если у нее есть модификатор Edit Poly. Мог бы кто нибудь его дописать? Вот всё, что у меня вышло на данный момент: Работает как в Editable_Poly так и в Edit_Poly, но пока не работает с Editable_Spline. Вот ссылка на скрипт: https://yadi.sk/d/TF7axUoVyuiFj
18.11.2016

Помогите найти/написать скрипт для 3ds max.

Цитата aleksey: Цитата kolt_050: Есть один замечательный скрипт для разгрузки хоткеев при работе в EditablePoly. Скрипт просто замечательный! Но у него есть, лично для меня, один существенный недостаток - он не может работать с моделью если у нее есть модификатор Edit Poly. Мог бы кто нибудь его дописать? Да, было бы круто. Я попробовал, но там совершенно другие команды нужно записывать. А в хелпе вообще ничего ясного по этому поводу нету, только общие команды.
18.11.2016

Помогите найти/написать скрипт для 3ds max.

Народ, нужна помощь. Есть один замечательный скрипт для разгрузки хоткеев при работе в EditablePoly. http://www.scriptspot.com/3ds-max/scripts/magic-hotkey накатал для себя скрипт по образу и подобию для работы в EditableSpline и дописал его после else в исходном скрипте. Всё работает на ура, но хотелось бы сделать так же, как и в исходном скрипте с возможностью программирования условий для одного или нескольких выбранных элементов подобъектов. Например, при выборе 1 vertex в сплайне, включиться chamfer, а при двух fuse. И точно также с Segment и Spline. Облазил весь help по скриптам и даже что-то похожее на это для сплайнов не нашёл: "local vertSel = (polyop.getVertSelection curObj) as array case vertSel.count of" ___________________________ Ещё появилась идея скрипта для оптимизации сплайна с тремя гладкими вершинами. Например, нужно оптимизировать сплайн с тремя "Smooth" вершинами до двух "Bezier", сохранив форму сплайна. Последовательность действий: 1) Выделить все вершины и перевести их в "Bezier". 2) Выбрать вершину под номером 2 и удалить её. Если таких сплайнов несколько, то необходимо выбрать вторую вершину у каждого сплайна. 3)Выбрать все оставшиеся Bezier вершины и увеличить их кривизну в 2 раза с помощью Scale. Все известные оптимизаторы с такой задачей не справляются, а в ручную делать достаточно долго, когда таких сплайнов около сотни. Подскажите, пожалуйста, как это сделать?
16.11.2016