Render.ru

Как привязать вершины ffd к другому объекту?

KOSHIKI

Пользователь сайта
Рейтинг
2
#1
Есть ли возможность реализовать привязку вершин модификатора FFD к другому объекту, по типу link? Пересмотрел все параметры, вершины модификатора FFD не имеют параметров трансформации, то есть макс их не видит, но при анимации этих вершин, все таки появляются кривые которые отвечают за xyz но я все таки не могу никак связать трансформацию хотя бы одной вершины с объектом. Есть ли какой способ решить эту проблему? Буду рад альтернативам, а также если кто не пожалеет пару строк, или ссылку где можно найти эти строки, имею ввиду максскрипт. Где реализована эта привязка. Заранее спасибо.
 

igorznag

Мастер
Рейтинг
103
#2
если кто не пожалеет пару строк ... имею ввиду максскрипт
Пример. В новой сцене запускаем скрипт:
Код:
s=sphere(); addmodifier s (ffd_2x2x2());
d=dummy(); d.pos=[-100,-12.5,-12.5]
m=s.modifiers[1]; animateVertex m 1;
m.control_point_1.controller=point3_script()
ps=m.control_point_1.controller
ps.AddObject "pp1" d.pos.controller
str="";
str+="b = $"+s.name; str+="\n"
str+="ffd = b.modifiers[1]"; str+="\n"
str+="objTM=b.objecttransform"; str+="\n"  
str+="modTM=(getModContextTM b ffd)*ffd.lattice_transform.value"; str+="\n"  
str+="modBBMin=getModContextBBoxMin b ffd"; str+="\n"  
str+="modBBMax=getModContextBBoxMax b ffd"; str+="\n"  
str+="pp2 = pp1.value * (inverse objTM) * (inverse modTM)"; str+="\n"
str+="pp1posW =(pp2 - modBBMin)/(modBBMax-modBBMin)"; str+="\n"      
str+="pp1posW"; str+="\n"; ps.script=str
select s; selectmore d; max zoomext sel all;
select s; completeredraw();max modify mode
Чтобы запустить скрипт нужно:
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
 

DDDimaXXX

Мастер
Рейтинг
542
#3
как вариант, можно использовать не модификатор, а Space Warps FDD. Его точки можно привязать через Linked Xform, или заскинить.
 

KOSHIKI

Пользователь сайта
Рейтинг
2
#4
как вариант, можно использовать не модификатор, а Space Warps FDD. Его точки можно привязать через Linked Xform, или заскинить.
Огромное спасибо, ваш вариант меня больше чем устраивает, я еще по тестирую на пару примерах, но думаю все будет замечательно. Предыдущий вариант с максскрип тоже неплох, но для того чтобы использовать все возможности нужно больше изучить язык, но в целом конечно же заскриптованный вариант даст намного больше возможностей, как в настройке привязок, так и в анимации.
 
Сверху