Урок для начинающих Game-девелоперов
Как создать много разных низко-полигональных деревьев, кустов, хлама на земле, травы и т.п. простым способом, с использованием mel-скрипта. Подойдет для многих жанров, пожалуй, что кроме вида от первого лица, там придется или доделывать ручками или проще написать другой скрипт.
- Моделим ствол дерева (желательно попрямее) и одну ветку, переименовываем ветку в Branch.
- Накладываем текстуры (ветку рисуем с алфа-каналом), лучше делать в одной текстуре и ствол и ветку (быстрее будет работать в движках). Устанавливаем Pivot ветки в ствол дерева.
- Затем в Script Editor вставляем этот незатейливый скриптик.
_____________________________
// Low-Poly Tree
int $i;
float $x, $y, $z, $x1, $y1, $z1, $x2, $y2, $z2;
// 30 - количество повторений (поставьте сколько веток Вам надо)
for($i = 0; $i < 30; $i++)
{
// если не переименовали ветку впишите сюда ее название
select -r Branch;
duplicate -rr;
$x = rand (-5, 5) ;
$y = rand (-5, 5) ;
$z = rand (-5, 5) ;
$x1 = rand ( -20, 30) ;
$y1 = rand ( 0, 360) ;
$z1 = rand ( -20, 30) ;
$x2 = rand ( -1, 2) ;
$y2 = rand ( 1, 2) ;
$z2 = rand ( -1, 2) ;
// Если ветки начали расти не туда куда хотелось бы, значит Вы моделировали // не из того вида, из которого я, просто поменяйте координату в Move
// Перемещаем каждую новую ветку только в верх или низ
move -r 0 $y 0;
// Поворачиваем каждую новую ветку, но не очень сильно
rotate -r $x1 $y1 $z1;
// Увеличиваем или уменьшаем каждую новую ветку, но не очень сильно
scale -r $x2 0 $x2;
}
_____________________________
Вот приблизительно то, что у Вас должно получится, причем каждый раз при использовании скрипта у Вас будет получатся другое дерево.
Если у кого есть желание можно покопаться в скрипте и поставить производство на рельсы, что бы скрипт записывал то что получилось в файл, делал Undo, потом опять генерил дерево и снова записывал, но уже в другой файл и так столько раз сколько надо, а в это время можно пока по изучать mel.
Можно так же сделать кустик, папоротник и травинку. Помещаем все это в начала координат и переименовываем с приличными названиями Bush, Paporotnik, Grass.
Затем собираем все в одну сцену с деревом, получаем что то вроде вот этого
Используем скрипт. Он внутри поделен на отдельные кусочки, что бы было понятно где что, выделяем нужный, вставляем в Script Editor (можно потом перенести в Shell) и запускаем все по очереди. Получается примерно следующее.
Само собой каждый раз, все получается по разному.
Всем спасибо за внимание и удачи.