у меня есть различные наборы из 2000 точек, которые определяют положение вершины сетки. Например, один набор делает сетку в форме X, другой в форме Y и т. Д.
Я хочу сделать анимацию с этой изменяющейся сеткой, но 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
)
затем я нажимаю на autokey и перехожу к кадру 100 (например) и выполняю следующий MAXScript:
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]
)
)
)
)
Объекту удается изменить свою форму на желаемую (хотя его форма не изменяется в области просмотра, только при визуализации).
ОДНАКО, автоключ не работает, он не ставит ключевой кадр на 100 и нигде.
Работает при ручном изменении положения вершины. Но у меня 2000 вершин, мне нужно использовать MAXScript.
Любая подсказка, почему это происходит и как это исправить? Спасибо Вам большое!
(Я попытался в Слушателе изменить только одну или две вершины, и снова это не работает … но вручную работает автоключ!! ‘()
использование 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