Render.ru

расстановка объектов на плоскости рандумно

Doodlez

Пользователь сайта
Рейтинг
2
#1
Существует плоскость на ней необходимо разместить кубы определенного количества и цвета в случайном порядке, или окрасить полигоны плоскости определенными цветами и количества. Пробовал применить инструмент Scatter, но выставленные объекты пересекаются и выходят за рамки плоскости и стоять они должны в четкой иерархии, т.е. в сетке
 

Вложения

CannyBaker

Пользователь сайта
Рейтинг
2
#2
Насчет размещения кубов. Мне кажется из системы частиц целесообразно это делать..выбрать как эмиттер плоскость, а частицы инстансед..ну, например, pCloud, или тот же универсальный PFSource.
Насчет цветов не понял ничего..какой смысл полигоны окрашивать? это ж каждому полигону свой матID давай, а потом еще материал настраивай..
 
Рейтинг
24
#3
Multi Scatter это все может. Ни разу не пользовался, но посмотрите уроки на ютубе - там такое есть.
 

Doodlez

Пользователь сайта
Рейтинг
2
#5
вообщим ворде все хорошо но вот не могу в нем разобраться, не хотят кубикаи становиться в определенном порядке...
 

CannyBaker

Пользователь сайта
Рейтинг
2
#6
Даже не знал о существовании такого плагина..жаль только что под сканлайном не работает
 

igorznag

Мастер
Рейтинг
103
#7
Существует плоскость на ней необходимо разместить кубы определенного количества и цвета в случайном порядке ... и стоять они должны в четкой иерархии, т.е. в сетке
Пример:
1. В новой сцене создаем один объект Plane с названием "DistributionObject" и конвертируем его в Editable Poly.
2. Создаем 5 объектов Box (куб). Для каждого из этих 5 объектов "куб" устанавливаем вручную свой цвет (или материал).
3. Выделяем по очереди объекты "куб" с нужным цветом и с помощью инструмента Array создаем нужное количество копий.
Количество всех объектов-копии "куб" всех цветов не должно быть больше чем количество полигонов объекта "DistributionObject". Сейчас на объект "DistributionObject" нужно разместить все объекты-копии "куб" всех цветов таким образом, чтобы в центре каждого полигона объекта "DistributionObject" находился только один объект-копия "куб" (или пустое место). Чтобы быстро это сделать, можно написать небольшой скрипт с помощью MaxScript (язык программирования для программы 3Ds Max). В сцене должен быть только один объект (Editable Poly) с названием "DistributionObject".
4. Выделяем все объекты-копии "куб" всех цветов и запускаем скрипт:
Код:
distr_object=getNodeByName "DistributionObject";
if(classof distr_object==Editable_Poly)then
(
donf=polyOp.getNumFaces distr_object;
if($selection.count<=donf)then
(
array1=#(); for i=1 to donf do append array1 i;
for i=1 to $selection.count do
(
random_index=random 1 array1.count; random_item=array1[random_index];
$selection[i].pos=polyOp.getFaceCenter distr_object random_item;
deleteItem array1 random_index;
)
redrawViews();
)
)
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 

Doodlez

Пользователь сайта
Рейтинг
2
#8
Огромное спасибо, просто суппер, буду учить скрипты теперь!!!)))))
 
Сверху