2015-07-01 3 views
0

У меня есть разные наборы из 2000 точек, которые определяют положения вершины сетки. Например, один набор делает сетку формой X, другой - формой Y и т. Д.Maxscript - Анимация, изменяющая положение вершин в сетке

Я хочу сделать анимацию с этой меняющейся сеткой, но Autokey не сможет разместить ключевой кадр.

Моя процедура заключается в следующем:

импортировать сетку, используя следующую MAXScript, который появляется в 3dsmax, как Object001:

vert_array = #() 
face_array = #() 
in_name = ((GetDir #export)+"/meshdata.dat") 
in_file = openFile in_name 
if in_file != undefined then 
(
num_verts = readValue in_file 
num_faces = readValue in_file 
vert_array.count = num_verts 
face_array.count = num_faces 
for v = 1 to num_verts do 
(
    vert = readValue in_file 
    vert_array[v] = vert 
) 
for f = 1 to num_faces do 
(
    face = readValue in_file 
    face_array[f] = face 
) 
close in_file 
new_mesh = mesh vertices:vert_array faces:face_array 
) 

рядом, я нажимаю на автоключей и заранее кадр 100 (для пример) и выполнить следующий МАХЗспр:

N=$Object001 
animate on 
(
    at time 0 (N.pos=[0,0,0]) 
    at time 100 (
vert_array = #() 
face_array = #() 
in_name = ((GetDir #export)+"/meshdata2.dat") 
in_file = openFile in_name 
if in_file != undefined then 
(
num_verts = readValue in_file 
num_faces = readValue in_file 
vert_array.count = num_verts 
face_array.count = num_faces 
for v = 1 to num_verts do 
(
    vert = readValue in_file 
    vert_array[v] = vert 
) 
for f = 1 to num_faces do 
(
    face = readValue in_file 
    face_array[f] = face 
) 
close in_file 
for v=1 to num_verts do 
(
    N.verts[v].pos=vert_array[v] 
) 
) 
) 
) 

объекта удается изменить свою форму к желаемому (хотя ее форма не меняется в окне, на при оказании). ОДНАКО, autokey НЕ работает, он не кладет ключевой кадр на 100 и нигде. Он работает, когда вручную меняет положение вершины. Но у меня 2000 вершин, мне нужно использовать MAXScript. Любая подсказка, почему это происходит и как ее исправить? Спасибо Вам большое!

(я пробовал в приемнике Changin только одну или две вершины, и опять не работает ... но Вручную Autokey работает: '()

ответ

2

Используйте meshOp.setVert метод установки позиции вершины объекта. Изменения будут отображаться в окне просмотра, если вы будете использовать update, когда вы закончите:

N = convertToMesh (Box length:10 width:10 height:10) 
with animate on at time 100 (meshOp.setVert N 1 [5,5,10]) 
update N 
Смежные вопросы