这是个可以帮助艺术家快速删除无用帧的工具,比如客户做文件的时候是整场做得Layout,有时间长度达到上千帧;但到动画环节的时候,就不需要那么多帧了,只需保持镜头范围内的帧数就行了;只需设置对正确的时间滑块范围,点击按钮,就可快速地删除调无用的帧。
fn CleanOutRangeKeys inputObject =
(
startTime = AnimationRange.Start
endTime = AnimationRange.End
for i = 1 to inputObject.numSubs do
(
tempSubAnim = GetSubAnim inputObject i
tempController = tempSubAnim.Controller
if tempController != undefined do
(
tempKeyList = tempController.Keys
outEndKeysIndex = for i = 1 to tempKeyList.Count where tempKeyList[i].Time > endTime collect i
if outEndKeysIndex.Count > 0 do for i = 1 to outEndKeysIndex.Count do DeleteKey tempKeyList tempKeyList.count
outStartKeysIndex = for i = 1 to tempKeyList.Count where tempKeyList[i].Time < startTime collect i
for i = 1 to outStartKeysIndex.Count do DeleteKey tempKeyList 1
)
if tempSubAnim.numSubs > 0 do CleanOutRangeKeys tempSubAnim
)
)
fn RemoveAllObjectKeys = (
for tempObject in Objects as Array do CleanOutRangeKeys tempObject
)
try destroyDialog ::deleteKeysOutOfRange catch()
rollout deleteKeysOutOfRange "Delete Keys" (
label lab1 "Please set correct frame range before deleting invalid keys" pos:[10,8]
Label devider1 "________________________________________________"
button btn1 "DeleteKeysButton" pos:[100,50]
on btn1 pressed do (
RemoveAllObjectKeys()
)
)
createdialog deleteKeysOutOfRange width:300 height:80
这里删除代码是从网上找到的一段,自己找不到那个网页了,没法在这里贴链接了。