如何在不使用After Effects的情况下裁剪Lottie文件

10
我有一个95帧的Lottie文件,我想要从第15帧开始剪切。似乎应该有一种简单的方法可以做到这一点,但我没有After Effects软件。是否有一些在线编辑器或其他方法可以获得代表动画从第15帧开始的新的.json文件?
我尝试使用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 相关的问题,那就太好了)。
2个回答

12
你可以在Lottie文件中更改ipop,以便从任何帧开始/结束。
在你的例子中,将ip更改为15,将op更改为95lottie file

JSON文件中可能会有多个“ip”和“op”。我的文件里有两个。 - Ashish Sharma
谢谢你,汤姆!你帮我省去了手动删除很多关键帧的麻烦。 - undefined

2

您可以直接进入Lottie JSON文件并从资源数组中删除帧。帧的ID类似于“fr_1”,“fr_2”。从fr_0到fr_15中删除ID并保存。还要确保在删除后更新最终帧数。总帧数由op键指示。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接