我正在尝试使用MAXScript从我的场景中删除所有动画关键帧。目前,我正在使用鼠标并按CTRL+A选择所有对象,从而调出场景中所有对象的键。然后,我使用鼠标选择动画时间线上的所有关键点,然后选择时间线上的全部关键点,再删除它们。如何在MAXScript中执行此操作?
我在MAXScript文档中找到了这个,但我不知道如何使用它:
deleteKeys <controller> [#allKeys | #selection]
我试过使用
deleteKeys globaltracks #allKeys
但这似乎没有任何作用。
这是我在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
max select all
macros.run "Animation Tools" "DeleteSelectedAnimation"
clearSelection()
或者将此代码拖动到工具栏以生成宏!
或者只从有限的对象组中删除键,请尝试
for o in objects where matchpattern o.name pattern:"*somename*" do deleteKeys o #allKeys
或者选择要删除密钥的对象,然后尝试此
for o in selection do deletekeys o #allkeys
我曾经使用以下命令删除所有密钥:
deletekeys $*.controller #allkeys
不使用脚本:点击Ctrl-A,然后点击主菜单>动画>删除选定的动画