2015-07-01 30 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帧(对于例子),并执行以下的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。 任何线索为什么会发生这种情况,以及如何解决它?非常感谢你!

(我已在侦听尝试了变化只是一个或两个顶点,并再次它不起作用......但手动自动密钥作品:'()

回答

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 
相关问题