您当前的位置: 首页 >  unity

Unity - Timeline 之 Setting gap extrapolation(设置空白内容的外插处理)

发布时间:2020-02-26 19:14:57 ,浏览量:5

目录:Unity - Timeline 知识汇总 原文:https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/clp_gap_extrap.html 翻译时Timeline版本:Timeline 1.2.11

Setting gap extrapolation

设置空白内容的外插处理

空白部分内容的外插处理,就是处理Animation轨道中剪辑的前后两边空白内容的数据模拟。

主要意图是为了避免动画剪辑之间空白部分的表现异常的问题。因为动画部分异常表现于两个不同的Transform变换,或是类人动画中的动作差异太大,导致看起来Transform变化或是动作变化太大。

每个动画剪辑都有两个空白内容的外插属性:Pre-Extrapolate前空白外插(左端的外插),控制动画数据播放前的数据模拟。Post-Extrapolate后空白外插(后端的外插),控制动画数据播放完后的数据模拟。

默认的,Timeline会给剪辑外插属性都设置为 Hold。这种设置意思是,动画剪辑Start前的动画数据是使用该剪辑的第一帧来表示的,而动画剪辑End后的动画数据是使用最后一帧来表示的。在动画剪辑的前或后的图标(无限符号)代表着该剪辑有外插模式处理。 Icons indicate the pre-extrapolate and post-extrapolate modes

图标代表着 前外插 和 后外插 的模式

当同一轨道上的两个剪辑有空白内容,那么可以设置靠左边的那个剪辑的 Post-Extrapolate(后外插)。如果左边的剪辑的 Post-Extrapolate 设置为 None,那么可以设置靠右边的剪辑的 Pre-Extrapolate(前外插)属性。动画剪辑的前后图标代表空白内容是否有外插处理。 First track (red box): gap extrapolation from Post-Extrapolate of the left clip. Third track (blue box): gap extrapolation from Pre-Extrapolate of the right clip.

*第一个轨道的空白(红色框那)外插处理是来自左边的剪辑的 Post-Extrapolate(后外插)。第三个轨道的空白(蓝色框那)外插处理是来自右边的剪辑的 Pre-Extrapolate(前外插) *

选择动画剪辑后在Inspector窗口中调整 Pre-Extrapolate与 Post-Extrapolate的动画外插属性。 Use Pre-Extrapolate and Post-Extrapolate to set the extrapolation modes for the selected Animation clip

使用 Pre-Extrapolate和 Post-Extrapolate来给选中的动画剪辑设置外插模式

Pre-Extrapolate 属性在下面其一情况都会被隐藏掉:

  • 动画剪辑的前一个剪辑设置了 Post-Extrapolate 模式(外插模式不是None得都算是设置了,原文这里没有说明)。
  • 动画剪辑左边(原文没有说明方向)没有空白内容。

选中的剪辑的前面空白内容使用了 Pre-Extrapolate 属性来空白外插处理,有以下选项可选择:

  • None(无):关闭Pre-Extrapolate的外插功能。选中剪辑的前面的空白内容,将使用场景中GameObject本身的transform变换,动作,或状态。选择 None,一般你可以是想创建一个场景中的GameObject与动画剪辑之间的淡入效果。查看 Easing-in and Easing-out Clips(剪辑的淡入淡出) 了解详情。
  • Hold(默认值):选中的动画剪辑前面的空白内容将使用:剪辑的起始端的第一帧的数据来模拟。
  • Loop(循环):选中的动画剪辑前面的空白内容将使用:剪辑的循环帧的数据来模拟,循环的起始偏移内容设置 Clip In 属性即可。
  • Ping Pong(回弹,要是用过Mathf.Pingpong函数的话就会好理解一些):选中的动画剪辑前面的空白内容将使用:剪辑的回弹循环帧的数据来模拟,循环的起始偏移内容设置 Clip In 属性即可。
  • Continue(按资源设置持续:loop==true?循环:Hold持续前或尾帧):选中的动画剪辑的前面的空白内容将使用:hold或是loop的方式,取决于原始资源的设置。例如,如果选中的动画剪辑使用的资源是"Recorded(2)"的源资源,该资源设置了 Loop为true,那么Continue就会使用与Loop一样的效果,否则(就是Recorded(2)的Loop是false)和Hold效果一样。

使用 Post-Extrapolate的属性与Pre-Extrapolate的几乎一样,区别就是:Pre-Extrapolate处理的是剪辑前面(左手边)的空白内容,而 Post-Extrapolate处理的是剪辑的后面(右手边)的空白内容。 (上面Post-Extrapolate的说明,我就不按官方文档的来写了,太冗余了。所以我简单描述一下。)

关注
打赏
1688896170
查看更多评论

暂无认证

  • 5浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0370s