如何在没有 After Effects 的情况下修剪 Lottie 文件

我有一个 95 帧 Lottie 文件,我想修剪开头,使其从 15 帧标记开始。似乎应该有一个简单的方法来做到这一点,但我没有 After Effects。是否有一些在线编辑器或其他方式可以获得一个新的 .json 文件,该文件代表从 15 帧开始的动画?

我尝试像这样使用 LottieRef.current.play(15, 95)

const lottieRef = useRef<LottieView>(null);

useEffect(() => {
    if (lottieRef && lottieRef.current) {
      lottieRef.current.play(15, 95);
    }
  }, [renderVideo, lottieRef]);

return (
    <LottieView
      ref={lottieRef}
      source={SUCCESS.keepReading}
      onAnimationFinish={game.onFinishAnimation}
      autoPlay
      loop={false}
      style={styles.animationContainer}
    />
  );

但是当我添加 onAnimationFinish 道具时,它会立即调用动画完成功能,而不是等到动画播放完毕。所以我想编辑实际的 .json 文件(但如果有一个修复程序,我可以改用这个方法,并且没有 onAnimationFinish 的问题,那也很好)。

stack overflow How to trim a Lottie file without After Effects
原文答案

答案:

作者头像

You can just go in the lottie json file and remove the frames from asset array. frames are have id like 'fr_1', 'fr_2'. Remove id from fr_0 to fr_15 and save it. Also make sure to update the final number of frames after you remove it. The total number of frames is indicated by op key.

enter image description here

作者头像

您可以将 lottie 文件中的 ipop 更改为您想要开始/结束的任何帧。

在您的示例中,将 ip 更改为 15 并将 op 更改为 95

lottie file