• MaxScript 清除超出范围的关键帧


    最近在unity3d中使用魔兽世界的导出资源时,发现有些动画会有一些莫名其妙的残留帧,导致一个动作导进unity3d后的长度变成几分钟,并且很大一部分是毫无动作的,所以写了这个脚本来清除多余的帧。

    View Code
    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
    )
    )
    for tempObject in Objects as Array do CleanOutRangeKeys tempObject
  • 相关阅读:
    java 多线程 day01 创建线程
    mysql 时间处理函数
    导出excel
    mysql 从零学习
    java 读取xlsx
    跳出多重循环
    mysql 基础
    spark 快速入门 java API
    java 反序列化PHP
    完整mybatis应用
  • 原文地址:https://www.cnblogs.com/sitt/p/2094864.html
Copyright © 2020-2023  润新知