【发布时间】:2015-09-19 00:35:21
【问题描述】:
我有不同的 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
)
接下来,我单击自动关键帧并前进到第 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。 任何线索为什么会发生这种情况以及如何解决它?真的非常感谢!
(我尝试在 Listener 中只更改一两个顶点,但它再次不起作用......但手动自动键起作用!:'()
【问题讨论】:
标签: c++ animation mesh 3dsmax maxscript