2015-07-01 33 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 
相關問題