我有不同的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中尝试过一个或两个顶点,而且它不起作用......但手动操作自动键!:'()
答案 0 :(得分: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