把一个瞬间放慢、停住、再倒回去

一次按实速做好的跃水,一条时间重映射曲线,两帧之间交给像素运动。

你会做出什么

  • 一段按实速做好的动作,单独放在一个合成里:这里是一条锦鲤跃出池塘,110 帧,每秒 30 帧。
  • 一段 12 秒的成片:先按实速播一遍,再慢慢停在弧线最高点,停住时镜头往前推,最后倒着放回去。
  • 一个支持 WebGPU⁠ (外部网站,在新标签页打开) 的浏览器,比如较新的 Chrome、Edge 或 Safari。

1. 按实速做好动作

  1. 在一个单独的合成里,按真实速度把整段动作做一遍。这里是绑在骨骼链上的锦鲤(见骨骼绑定⁠ (在新标签页打开)),加上粒子世界做的水花和波形世界做的涟漪(见模拟⁠ (在新标签页打开))。

  2. 另建一个更长的合成做成片,这里是 12 秒,把动作所在的合成作为一个图层放进去。

先在实速下把动作做对,再去动它的节奏。慢放会把每个毛病放大,实速下站不住的跃水,放慢了更站不住。里面凡是算出来的东西,骨骼和它的跟随、模拟、风,之后都能免费地放慢、停住和倒放。

2. 打开时间重映射

  1. 在成片里选中动作所在的图层,在属性面板打开图层设置。

  2. 选择启用时间重映射(见变换与时间⁠ (在新标签页打开))。图层会多出一个时间重映射属性,带两个关键帧:第一帧和最后一帧。

  3. 顺手把帧混合设成像素运动,这样任何落在两帧之间的时刻都会画得顺滑(见运动模糊⁠ (在新标签页打开))。

成片里选中动作所在的图层,图层设置里帧混合设为像素运动,时间重映射已打开
  1. 时间重映射:成片每一帧显示动作的第几帧。
  2. 帧混合:两帧之间的时刻怎么画。

3. 给四段打关键帧

  1. 把时间重映射的两个关键帧换成表里的这些。每个关键帧的意思是:成片的这一帧,显示动作的这一帧。

  2. 第一段的最后一个关键帧和定格的最后一个关键帧用定格插值,时钟才会干脆地跳回去、停下来。

段落成片帧跃水帧关键帧
实速0 → 624 → 66线性,最后定格
重放、减速74 → 86 → 2008 → 20 → 28线性,再缓入最高点
定格200 → 25028定格
倒放250 → 32228 → 6缓出,最后定格
出水弧线最高点入水水面平静01234567891011秒直接播放按表里的关键帧
成片的时间轴,动作图层展开到时间重映射的关键帧:实速的一对、一次跳回、缓入弧线最高点的几个、定格和倒放
  1. 动作图层,它的时间被重新安排了。
  2. 速度每变一次,就有一个关键帧。
  3. 定格关键帧:时钟在这里跳回或停下。

斜率为一是实速,斜率很缓是慢放,一段平线是定格,往下走的斜线是倒放。曲线落在动作两个整帧之间的地方,就由像素运动补出中间那一帧。

4. 缓缓停进定格

  1. 选中时间重映射的关键帧,选择显示图表编辑器(见图表编辑器⁠ (在新标签页打开))。

  2. 把弧线最高点那个关键帧的入速度设为 0、影响约 75%,倒放开始那个关键帧的出速度也设为 0、影响相同。

  3. 检查曲线:进入定格和离开定格都应该平滑地变平、再平滑地离开,不出现拐角。

图表编辑器里的时间重映射曲线:一段上升的直线、一次跳落、一段缓缓变平进入定格的曲线、一段平线和一段下降的曲线
  1. 减速:曲线越来越平。
  2. 定格:一段平线。
  3. 倒放:曲线往下走。

5. 检查中间帧

  1. 在慢放段逐帧往后看。像素运动会把每个时刻前后的两个整帧都渲染出来,再把每个像素挪到两者之间的位置。

  2. 注意一帧之内移动很远的东西,比如甩得很快的尾巴,那里可能出现重影。出现了就给那一段更多真实的帧:那里少放慢一点,或者用更高的帧率做这段动作。

  • 成片里的四帧并排:锦鲤按实速跃出水面;在上升中慢下来;停在弧线最高点,镜头往前推;倒退着滑回水里。
    四段
成片第 20、100、230、300 帧。

骨骼在任何时刻都是准确的。粒子世界这类一帧一帧推进的模拟,在两帧之间显示前一个整帧,所以它们慢放时的顺滑来自像素运动。实速段和定格段的每一帧都是整帧,什么也不混合。

6. 定格时往前推

  1. 把动作图层的锚点和位置都放到弧线最高点的锦鲤上,让画面绕着锦鲤放大。

  2. 缩放从定格前几帧的 100% 打关键帧到定格结束时的 112%,倒放时再回到 100%,每个关键帧都用缓动(见关键帧与缓动⁠ (在新标签页打开))。

7. 导出

  1. 打开导出视频或图片,选 WebM 或 MP4(见导出⁠ (在新标签页打开))。每一个中间帧都会和预览里一模一样地渲染进文件。

接下来

接着看