Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: А нет-ли такого скрипта?
Форум .:3DCenter.ru:. > Пакеты 3D моделирования > 3ds Max > Maxscript
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
C00PER
Вот решил темку создать, где народ мог бы интерисоваться о существовании того или иного скрипта, чтобы не писать самому впустую. Мне в данный момент нужен скрипт, котрый бы брал наугад битмапку из указанной папки и присваивал наугад выделенному объекту. А точнее множеству объектов. Например, есть много дверей, и есть несколько похожих текстур дерева, все лежат в одной папке. Нужно их произвольно присвоить.. Идеально было бы, еслиб скрипт ещё и работал с мультиматериалами, и остальные субматериалы не трогал, а связывал инстансом. Но думаю, это я уже слишком размечтался, наверное придётся самому писать ninja.gif
Antosha Marchenko
а вот нате
а вот извольте скачать

ща, погодь, описалово накатаю.
Antosha Marchenko
хех, значится так...
Давно ваще эту хрень написал. Оформлена как утилита (звиняйте, лохом был, как 1асс, бр-р-р-р-р)

Ща подредактировал, добавил своё имя с фамилией smile.gif

Простой вариант:
Нажав на кнопку Сhoose МultiМaterial, нужно выбрать мультиматериал из списка находящихся в матедиторе.
Галка Compare Near - выключена.
Кнопка Assign, внизу интерфейса случайно раскидает подматериалы выбранного средь выделенных объектов.

Вариант усиленный:
Compare Near - включена
Эта галка для того, чтоб одинаковые материалы рядом не оказались.
Near Radius - это расстояние, ближе которого одинаковые материалы не окажутся. Оценивается естесственно расстояние между координатами объектов, на которые кладутся материалы.
Test Radius- кнопка чтоб проверить правильно ли вами выбрано расстояние. Жмёте (а объекты на которые хотите раскидать материалы должны быть уже выбраны) и чуть ниже этой кнопки увидите надписи Max Group - столько-то, Aver Group - столько-то. Это скрипт пройдётся по каждому объекты и посчитает сколько у него соседей отстоят от него на расстояние меньше указанного в счётчике "Неар Радиус" Максимальное количество соседей, это естессна Макс Груп, усреднённое, это Авер Груп. При этом раскиданы материалы не будут, это просто проверочка. С помощь неё можно подбирать значение Неар Радиус...
Когда Макс Груп равно количеству подъобьектов в выбранном мультиматериале, и при этом Авер Груп максимально велико... при таких настройках одинаковые материалы будут расположены наиболее далеко друг от друга.
Если макс груп больше чем кол-во подматериалов, ничего критичного, просто у объектов, относящихся к той группе одинаковые материалы могут оказатьсярядом друг с другом.

вот.

да, канешна, алгоритм ещё тот, легко можна былоб сделать, чтоб без всяких там Тест Радиусов, чтоб само опредиляло оптимальные расстояния и расположение, ну да ща переделывать лень, и так дел навалом.
C00PER
блин, читаю описалово и диву даюсь! не перевелись ещё мастера на земле %) огромное спасибо, щас буду посмотреть
C00PER
ага, насколько я понял, он берет исходные материалы из одного бооольшого мультиматериала.. немного другой воркфлоу. я видел это так: у объекта мультимат из 3х материалов.. и таких объектов 30.. и у всех них этот материал. скрипт должен на каждый объект сделать копию исходного материала, в котором 2 материала будут инстансами со всеми остальными аналогичными, а третий будет отличаться.. вот. но может как нибудь и твой приспособлю wink.gif
111
у меня есть скрипт который меняет матайди на другие, можно по рандому.

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

Есть идея скрипта, с помощью которого можно нарисовать полилинию быстрее, чем в автокаде.
Суть: зачем вбивать координаты или приращения, если по положению курсора можно определить направление линии и просто с клавы, без всяких текстовых полей набирать одно число и давить Enter. Если нужна точка по Z, допустим, или косая линия, то забивать x100y200z400. Числа можно печатать хоть в Листенере, или еще где-нибудь.

Вообщем вопрос: видел-ли кто-нибудь подобный скрипт?
Если нет, то я приступаю к реализации.

2 Antosha Marchenko: z nt,z buyjhbhe.
secco
народ, никому не попадался скрипт для корректного, без искажений пускания текста по кривой, вроде Купер писал,
Найти не могу.

TextAlongSpline он что ли, назывался
C00PER
вроде поиск находит нормально.. http://www.3dcenter.ru/forum/index.php?sho...%F2%E5%EA%F1%F2

только учти, он недоделанный и увы не обещаю никакой поддержки. но вроде, на тот момент он делал всё исправно.
C00PER
хм. а чегото его там уже и нет.. тогда придется искать на харде, но не уверен что он там остался
Duche
Ну раз зашел разговор про материалы, то нет ли такого скрипта, чтоб находил в сцене и выделял объекты у которых не назначен никакой материал.
C00PER
(
myobjs = #()

for i in objects do
(
if i.material == undefined then append myobjs i
)
select myobjs
)
dEAffY
Народ, а кто знает про скрипт, который может разместить сплайн по неровной поверхности? Шибко нуно... smile.gif
1асс
Это можно сделать обычными средствами макса.
GoodMan_
В дополнение к COOPER-у:

А можно вообще одной строчкой:

select (for i in objects where i.material == undefined collect i)
C00PER
2 secco, вот, что-то нашел, вроде работает... попробуй
secco
спасибо, доктор!
Здесь, конечно, ллучше не флудить, но не поблагодарить не могу - это сильнее меня ! drinks.gif
Track
А не не подскажете ли, господа smile.gif как выделить объекты замешенные без увв.И еще очень бы хотелось какой-то шоткат повесить на отображение битмапы на выбранном объекте во вьюпорте (вкл/выкл)
А спасибо я заранее скажу, чтоб не флудить wink.gif
111
show map in viewport есть и так - поищи хорошенько.

meshop.getNumMapVerts <Mesh mesh> <Integer mapChannel>
будет валиться если нет координат.
Track
To 111 show map in viewport работает для всех объектов, а нужно чтоб работало только на выбранном.
И меши без увв не выделяются 54[1].gif
homyak (gremlin)
никто незнает, нет ли скрипта который меняет положение пайвота у выделенных вершин, полигонов, вертексов?
C00PER
homyak (gremlin), таких скриптов уйма. В блурскриптах есть Pivot Placer, а есть вот такой, где ты просто кликаешь: http://scriptspot.com/download.asp?ID=1222
111
у меня такой есть. один - центровать пивот. второй - переходить в режим редактирования пивота
Shultz
и он для вершин (и др.) работает?
111
2 Track

это включалка выключалка show in viewport
с мультиматериалами не работает, хотя можно сделать например чтобы первый включался-выключался. но думаю этого не нужно.

CODE


for i in selection do
(
try
(
 i.material.showInViewport = not i.material.showInViewport
)
catch ()
)
111
QUOTE(Shultz @ May 17 2005, 23:04)
и он для вершин (и др.) работает?
[right][snapback]377552[/snapback][/right]



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

вот такая херота. это вам не рино:)
homyak (gremlin)
всем спасибо за посильную помощь
Archi
мужики скажите,есть ли на свете метода - вельдящяя при бевеле эти места(автоматически ессно) -->
LiveR
А нет ли такого скрипта котрый создавал атомы веществ (органическая химия). хотя бы алканов. Количество атомов вводится с клавы. Если нет такого то может кто знает как енто делается.
Shultz
QUOTE(111 @ May 17 2005, 22:31)
QUOTE(Shultz @ May 17 2005, 23:04)
и он для вершин (и др.) работает?
[right][snapback]377552[/snapback][/right]



...
у вершин пивота нету. есть центр трансформации
..
[right][snapback]377572[/snapback][/right]


я ж это и имел ввиду
Archi
Сорри,ктонить ответит про бевел?
-=VG=-
2 Archi: я такого скипта не знаю, если только написать такой
Archi
-=VG=- блин а полезный скриптец бы был а?согласись...ну настаивать не буду так сказать,фиг его знает как его там реализовать можна,может геморой полный.

зы: для инфо:эджи всегда пересикаются в одинаковых координатах,тоесть одной точке.
D-d Man
не стану создавать новую тему т.к. возможно решение уже есть:
так вот есть проблема-создаём бокс 100*100*100 присваиваем увв тип бокс, видим реальные размеры, то бишь 100*100*100, после этого уменьшаем бокс раз в 10 и видим - объект стал 10*10*10 а увв так и осталась 100*100*100 хотя сама по прежнему обтягивает объект, так вот как это можно решить одной кнопкой 54[1].gif
C00PER
QUOTE(D-d Man @ May 20 2005, 11:52)
не стану создавать новую тему т.к. возможно решение уже есть:
так вот есть проблема-создаём бокс 100*100*100 присваиваем увв тип бокс, видим реальные размеры, то бишь 100*100*100, после этого уменьшаем бокс раз в 10 и видим - объект стал 10*10*10  а увв так и осталась 100*100*100 хотя сама по прежнему обтягивает объект, так вот как это можно решить одной кнопкой 54[1].gif
[right][snapback]379209[/snapback][/right]

нажми Fit
D-d Man
2 C00PER
не смешно nono.gif
после масштабирования размер бокса(да любого другого объекта) фактический размер получается 10*10*10 но в пропертисах объекта стоит домасштабный размер 100*100*100 и накладываемая уввимеет фактический р-р как и у объекта т.е.10*10*10 но пишет так же как и в пропертисах объекта т.е. 100*100*100
попробуй 55[1].gif
C00PER
а, ну тогда после масштабирования сделай Reset Xform, и потом только применяй UWV
D-d Man
ну, ятоже к этому пришел, но хотелось ещё проще 54[1].gif
111
а есть ли скриптик (или сможет стандартное средство) для поиска и чистки missed bitmaps?
111
не особо то что нужно, и глючит... sad.gif

нада список пропавших чтобы выделять можно было и кнопавки remove, remove all, open in mateditor
Ito
поддерживаю 111
именно так как он сказал
QUOTE
нада список пропавших чтобы выделять можно было и кнопавки remove, remove all, open in mateditor


есть конечно в максе кривенькОй bitmap/photomet-рик путь указыватель
он частично справляется с проблемой, но всё же не так как хочется
-=VG=-
2 111. Дак какие проблемы? Напиши сам - быстее будет. Функцию просмотра всех материалов я где-то тут показывал, осталось посмотреть есть-ли в ней битмап-карта, а если есть - проверить действительно битмап лежит там где прописано в мате? Остальное - дело интерфэйса и управления.
C00PER
QUOTE(111 @ May 17 2005, 11:32)
meshop.getNumMapVerts <Mesh mesh> <Integer mapChannel>
будет валиться если нет координат.
[right][snapback]377108[/snapback][/right]



Андрей, ты не против, я развил твою идею smile.gif Одна проблема - если найденный объект находится внутри группы, то выделится вся группа. В ближайшее время постораюсь обойти.
111
вот рулилка блуром и типом фильтрации по материалам сцены, по материалам выбранных объектов, по материалам и мапам в матедиторе. блур бутет рулиться везде где найдётся, да и тип фильтрации тоже, только он наверное только в битмапах и есть.

далее у нас на очереди:
- чинилка пропавших карт
- раскидывалка неких материалов по рандому на объекты (я тут подумал что это хорошо так растительность ониксовскую оживлять, в блурпаке что-то есть такое, но я его боюсь ставить smile.gif
- и наверное надо мод моего анврапа под 1280 сделать (так получилось, что иногда на 17" приходится посидеть:( )
111
QUOTE(C00PER @ May 23 2005, 13:20)
QUOTE(111 @ May 17 2005, 11:32)
meshop.getNumMapVerts <Mesh mesh> <Integer mapChannel>
будет валиться если нет координат.
[right][snapback]377108[/snapback][/right]



Андрей, ты не против, я развил твою идею smile.gif Одна проблема - если найденный объект находится внутри группы, то выделится вся группа. В ближайшее время постораюсь обойти.
[right][snapback]380960[/snapback][/right]



в хелпе где та видел, вместо добавления едитмеша модификатора
obj = snapshotasmesh a
.....
delete obj

если в группе, наверное надо группу раскрывать? причём рекурсией
C00PER
QUOTE
если в группе, наверное надо группу раскрывать? причём рекурсией

ага, так и сделал. вообще странно, что нету команды, показывающей, к какой группе принадлежит тот или иной объект. впрочем, теперь есть tongue.gif

а насчёт
QUOTE
в хелпе где та видел, вместо добавления едитмеша модификатора obj = snapshotasmesh a

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

вообщем, вот, готовая показывалка объектов без UVW меппинга.. Погонял на своих сценах, у меня в среднем несколько десятков таких объектов.. blush.gif А ещё говорят что Врей с ними не дружит. 54[1].gif
111
крута, вроде всё работает
111
QUOTE(-=VG=- @ May 23 2005, 10:15)
2 111. Дак какие проблемы? Напиши сам - быстее будет. Функцию просмотра всех материалов я где-то тут показывал, осталось посмотреть есть-ли в ней битмап-карта, а если есть - проверить действительно битмап лежит там где прописано в мате? Остальное - дело интерфэйса и управления.
[right][snapback]380786[/snapback][/right]



2VG - нашёл твою функцию - просто спас, можно сказать. огромное спасибо!!!!
GoodMan_
Незнал куда написать.. но может кто не знает..

В skin - модификаторе оказываеться один объект может иметь неограниченное кол-во энвелопов.. Т.е. через UI skin-а можно добавить только один объект в качестве энвелопа, но через MSt можно добавлять их сколько душе угодно:

skinOps.addBone $.skin $Bone01 1

при каждом запуске будет исправно добавлять енвелопы с ноды(объекта) 'Bone01'

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2017 IPS, Inc.