有什么工具或skill 可以把App动效UI设计和多邻国一样丝滑

多邻国那种“丝滑”不是靠某个特效库,核心是把动效当成状态机系统来做,而不是当成装饰动画。官方博客里写得很清楚:他们角色动画用 Rive,因为 Rive 的 State Machine 能用代码里的状态去驱动动画状态、过渡和混合;嘴型同步是先用自己那套 20+ viseme 的嘴型库,再通过文本转语音(TTS)和自研发音模型算出每个音素的时序,导出成单个 runtime 文件塞进 App;数据传输极小,还能实时响应用户点击。所以工具选型先看这一层。 工具分两条线: 1. 状态驱动的那一层(关键) Rive:最贴近多邻国的做法。设计端做状态机,代码里只设 input(布尔/数值/trigger),动画自己决定“庆祝”“失望”长什么样。iOS/Android/RN/Flutter/Web 都有 runtime,包体和内存都小。要复刻那种“角色有情绪、反馈即时”的感觉,这个基本是首选。 Lottie、dotLottie:设计用 AE 出,只适合线性播放的特效(比如那个火焰闪光),控制不了状态。可以用,但别指望它做交互逻辑。 Spine:游戏圈老牌骨骼动画,也能做状态混合,但生态偏游戏。 2. App 侧的过渡和手势流畅度 原生路线:iOS 用 SwiftUI 的 animation 和 matchedGeometryEffect,或者 Core Animation;Android 用 Compose 的 AnimatedContent、共享元素。 跨端 RN:Reanimated 3 是必需的,worklet 跑在 UI 线程,60/120fps 才稳;配合 Gesture Handler 做手势跟随;Moti 提供类似 Framer 的声明式 API;Skia 或者 Skottie 处理高性能绘制和 Lottie 渲染。 Flutter:内建隐式动画和 Hero,复杂曲线用 flutter_animate。 3. 光有库不够,还得有这几样“配方” 时长和曲线——多邻国那种手感往往是 200 到 300ms、带一点回弹的 ease-out,全 App 统一成一套 token,别每个页面随手写。 触觉反馈——动效和 haptic 一起给,丝滑感有一半来自这个。 帧预算——动效期避开主线程重活,列表里别开大动画。 状态入口设计——和前端一样,动画输入只有几个枚举(idle、active、success、fail、urgent),别让设计稿和代码各写一套逻辑,这是最难但最值的一步。 如果只是想要“看起来像”,最省事的组合是:Rive 出角色和关键反馈动效,列表和页面转场用框架自带的过渡加统一曲线 token,RN 的话加 Reanimated。真要复刻到那个程度,投在“状态机设计”上的时间会比投在工具选型上多得多。 你用的是哪套技术栈?RN、Flutter,还是原生?我可以按你的栈给更具体的一套。