2012-02-19 99 views
4

我想使用MAXScript从我的场景中使用MAXScript删除所有动画键。此刻,我正在使用鼠标并按下CTRL + A选择所有对象,从而为场景中的所有对象启动按键。然后使用我的鼠标在动画时间轴上选择所有的键,然后选择时间轴上的所有键,然后删除它们。我怎样在MAXScript中做到这一点?在全局3ds Max中使用MAXScript删除所有动画键

我在MAXScript documentation发现了这一点,但我不知道如何使用它:

deleteKeys <controller> [#allKeys | #selection] 

我尝试使用

deleteKeys globaltracks #allKeys 

,但似乎并没有做任何事情。

回答

3

这是我作为this挑战的一部分张贴在CGTalk上的一种方法。我修改了它以删除动画控制器上的所有按键。它操作内置的Trackbar自定义过滤器函数来自动迭代所有对象的所有控制器,而不必检索自己的所有控制器。

( 
fn filterCallbackFunction theAnimatable theParent theSubAnimIndex theGrandParent theNode = 
(  
    if isController theAnimatable do deleteKeys theAnimatable #allKeys 
    true 
) 

with redraw off 
( 
    trackbar.filter = #all 
    local filtind = maxops.trackbar.registerFilter filterCallbackFunction undefined "." 1 active:on 
    disableRefMsgs() 
    local sel = getCurrentSelection() 
    select objects 
    maxops.trackbar.redraw forceRedraw:on 
    maxops.trackbar.unregisterfilter filtind   
    select sel 
    enableRefMsgs() 
    ok 
) 
) 

编辑:对不起,或者只是使用这个:)

deleteKeys objects #allKeys 
0

没有脚本:按下Ctrl-A,然后主菜单>动画删除所选的动画>

1
max select all 
macros.run "Animation Tools" "DeleteSelectedAnimation" 
clearSelection() 

或拖动这段代码给一个工具栏做一个宏!

+0

欢迎LoneRobot,并感谢您的建设性答案。如果我知道这是否正确,我会改变模式(回顾首次回答,而不是专家)。 – 2012-05-07 23:14:28

1

,或者只是从有限组删除键的对象尽量

for o in objects where matchpattern o.name pattern:"*somename*" do deleteKeys o #allKeys 

或选择要删除的对象从按键和尝试这个

for o in selection do deletekeys o #allkeys 
1

我用来删除使用此命令的所有键:

deletekeys $*.controller #allkeys 
+0

如何在相机和相机上使用此目标? – Dariusz 2017-01-23 14:45:52

+0

'deletekeys camera.controller#allkeys'?也可能是'deletekeys camera.position.controller#allkeys',但它已经有一段时间了,因为我没有碰到3ds max。 – 2017-01-24 10:00:59