Сообщения | Дата |
---|
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 |