Render.ru

Дерево

Рейтинг
26
#1
Итак, значит, делаю дерево. Ну как делаю, запустил TreeStorm, импортировал в 3д макс 2013 болванку, и уже тут столкнулся с проблемой. В гугле ничего толкового не нашел. Вот у меня есть отдельные обьекты: ствол и листва. Листва - все листики (элементы обьекта) собраны в кучу. Мне нужно заменить все эти элементы своими листочками (даже веточками). Какие действия я перепробовал:
1. Выделил обьект, нажал Файл -- Реплэйс -- выбрал файл с моей веточкой, предварительно задав ей такое же имя. Результат - Вся листва заменилась на одну веточку. А нужно, чтоб каждый листик заменился на эту ветку.
2. Выделил все елементы, применил модификатор Substitute, выбрал мою ветку - результат тот же.
3. Нашел в интернете скрипт для того чтоб сделать Detach всем елементам обьекта, и уже потом заменить их на ветку. Результат - комп тупо зависает. Скрипт:
  • rollout rolTest "Detach Elems"
    (
    button btRun "Detach!" width:90 align:#center offset:[0, -2]

    function detachToNodes oPoly =
    (
    if (classOf oPoly != Editable_Poly) then
    throw "Wrong input in function: detachToNodes()"

    local iNumFacesLastElem = 0
    local baElemFaces = #{}
    local sName = ""

    while (true) do
    (
    baElemFaces = polyOp.getElementsUsingFace oPoly 1
    sName = uniqueName oPoly.name
    polyOp.detachFaces oPoly baElemFaces delete:true asNode:true name:sName

    if ((polyOp.getNumFaces oPoly) == 0) then
    (
    delete oPoly
    exit
    )

    if (keyboard.escPressed == true) do
    throw "** escape key pressed **"
    )
    )

    on btRun pressed do
    (
    local currSel = selection as Array

    for obj in currSel do
    if ((classOf obj) == Editable_Poly) then
    detachToNodes obj
    )
    ) -- End Rollout

    createDialog rolTest 96 27 style:#(#style_toolwindow, #style_border, #style_sysmenu)
Прочие танцы с бубном тоже не помогли. Делал по вот этому уроку: http://www.render.ru/books/show_book.php?book_id=661. Но у меня 2013 макс, и плагин более поздней версии, так что отклонился от урока уже на этапе отделения листвы и ствола...
У кого-нибудь есть идеи по поводу того, как заменить каждый елемент обьекта другим обьектом?
 

igorznag

Мастер
Рейтинг
103
#2
Листва - все листики (элементы обьекта) собраны в кучу.
Сколько примерно листочков (элементы обьекта) имеет дерево?
Результат - комп тупо зависает
У меня комп умно зависает.
Нашел в интернете скрипт для того чтоб сделать Detach всем елементам обьекта, и уже потом заменить их на ветку.
Каким способом вы заменяете много отдельных объектов на ветку?
У кого-нибудь есть идеи по поводу того, как заменить каждый елемент обьекта другим обьектом?
Допустим дерево имеет только 2 листочка (элементы обьекта). Как вы вручную заменяете каждый листочек (элемент обьекта) на ветку?
 
Рейтинг
26
#3
Сколько примерно листочков (элементы обьекта) имеет дерево?
Очень много) это при том что в 1 листочке всего 2 полигона. Вручную все не заменить. Разве что за неделю...
У меня комп умно зависает.
Хех, ну как сказать, просто видно что он над чем-то думает, но результата я так и не дождался, даже уменьшая количество отделяемых елементов.
Каким способом вы заменяете много отдельных объектов на ветку?
А вот до этого я не дошел. Их ведь надо сначала отделить...
Допустим дерево имеет только 2 листочка (элементы обьекта). Как вы вручную заменяете каждый листочек (элемент обьекта) на ветку?
Я бы поставил их на место листьев, а потом последние удалил бы. В уроке, по которому я делал дерево нарисована кнопка в свитке Саб-Обджект: Replace_with..., у меня же ее просто нету. Ставить тот софт, что и в уроке? Это ведь не выход... Должна же быть в максе функция отделения елементов, или их замены...
Может тот скрипт не подходит для 2013 макса?
 

igorznag

Мастер
Рейтинг
103
#4
в 1 листочке всего 2 полигона
Сколько треугольников имеет каждый полигон? Полигоны являются планарными? Предоставьте картинку модели и сетку листочка.
А вот до этого я не дошел.
Есть такой способ: Одинаковые объекты и функция Instance Сообщение 5, 7.
Я бы поставил их на место листьев, а потом последние удалил бы.
Как вы узнаете точное место листьев? Как вы узнаете точное вращение листьев? Вы подгоняете вручную нужное место и вращение для ветки с помощью способа "проб и ошибок"? Элементы, в отличие от объектов, не имеют опорную точку (pivot). Поэтому скрипту тяжело объяснить как найти нужное место и вращение листика, чтобы присвоить это место и вращение для ветки.
Должна же быть в максе функция отделения елементов,
В новой сцене создаем один чайник-Teapot и конвертируем его в Editable Mesh. Чайник состоит из 4 элементов. Выделяем все полигоны чайника, устанавливаем Explode Angle=180, выбираем to=Objects и нажимаем кнопку Explode.
Может тот скрипт не подходит для 2013 макса?
Скрипт должен работать. Попробуйте выполнить простой пример: В новой сцене создаем один чайник-Teapot и конвертируем его в Editable Poly. Чайник состоит из 4 элементов. Выделяем чайник. Запускаем скрипт и нажимаем кнопку. Получаем 4 объекта.
 
Сверху