导读
动效平台作为快手举办大型线上活动的坚实后盾,发挥着承上启下的关键作用。本篇文章将全方位地为您呈现Vision动效平台的整体架构及其演进思路,为您揭开这一强大平台的神秘面纱。
1.动效的重要性
2.动效流程中的重重难题
从动效流程简要可概述:
针对上述动效生产、交付及开发环节中存在的种种问题,我们渴望构建一套全面而高效的解决方案,以下图示正是我们对这一理想方案的憧憬与规划:
1.行业内的通用解决方案
在着手开发我们自己的解决方案之前,我们深入调研了行业内的现有方案。排除纯游戏开发的特定场景,当前在常规动效需求的开发中,业界主要呈现出以下三种策略:
2.快手动效开发的特点与需求
考虑到快手在日常业务和大型活动动效开发中的具体特点:
动效数量多但各自相对独立,很少需要多人协同开发一个复杂场景的需求
业务场景对于性能和表现力要求高:需要尽可能用综合最优的动效方案,且可能同时使用多种动效类型进行组合开发
3.Vision平台的演进路线和功能拆解
针对动效流程的三个部分:
进一步的拆解,因为我们专注于活动/日常业务场景的动效,不考虑纯游戏的场景,需求又分为两种类型:
①通用性需求
通用性需求 | |
效果 | 弹窗、气泡、Banner 等常规动效 |
示例 | |
占比 | 约91% |
重点关注 | 效率和稳定性 |
承接方式 | 通过标准化、平台化交付,提升交付链路的效率;通过准入准出检测,提升线上稳定性;通过动效编排 + 统一的 Runtime,提升开发效率,同时要保证功能覆盖度。 |
② 复杂渲染类需求
复杂渲染类需求 | |
效果 | 2D、3D 骨骼动画等复杂动效的简单应用 |
示例 | |
占比 | 约9% |
重点关注 | 能力覆盖度和性能 |
承接方式 | 自研渲染引擎 Crab;实现满足业务需求的渲染和编辑功能,提升功能覆盖度和开发效率;对比其他开源渲染引擎,要做到性能更优、开发效率更高。 |
因此,我们整个平台的演进路线如下:
1.动效的准入与准出
动效资产的静态准入检测:
单动效的性能准出检测:
当设计师上传的动效通过静态检测,并在平台预览验收通过后,研发同学希望能尽快对动效的一些性能指标做验收,以防动效开发完成后,发现动效性能有问题再返工到生产环节。
多动效的性能集成测试:
对于多动效的集成测试,用户需要自主构建测试用例(Test Case),并在页面级别上执行检测。检测的项目与单动效性能测试时保持一致,以确保整体动效集成后的稳定性和性能表现。此外,鉴于不同设备性能差异对动效体验的影响,特别是在低端机上,为保证基本可用性,往往需要对动效进行降级处理。因此,在进行性能测试时,用户可以选择高端机和低端机进行有针对性的测试,并依据各自设备的性能特点设定不同的通过标准。通过这样的测试策略,我们能够更全面地评估动效在不同设备上的表现,确保其在各种环境下都能提供稳定且流畅的用户体验。
1.动效开发提效
此外,针对格式转换的需求,我们提供了标准化的格式转换能力。我们确保导出的格式与我们的Runtime环境完全兼容。这种配套的编码和解码工具不仅提高了动效的兼容性和稳定性,还为用户提供了更多的灵活性和便利性。
动效内容的动态替换和动效代码生成
动效内容的动态替换:
先看一段动效:
修改成本高且易出错:并非所有开发者都熟悉Bodymovin的schema结构,因此手动修改JSON文件不仅成本高,而且容易引入错误。
Lottie数据不支持实时更改:原生的Lottie库并不支持在播放过程中实时更改动效数据。
1、用户在平台上选中图层后,就可以添加占位符:
2、使用 Runtime 提供的替换能力快速替换内容:
就可以做到使用动态的内容进行动效播放,极大减少了过去需要开发组件 + 动效内容的开发成本。
动效代码生成:
用 CSS 开发过贝塞尔曲线运动的读者可能会有体会,这类曲线运动效果实现起来还是比较困难的,因为无法直接用关键帧动画去实现。
类似的这类动效开发难题很多,而且不同水平的开发者还原程度也会有差异。那么我们想到,是不是可以通过系统直接生成代码的方式来解决这个问题?
答案是肯定的,我们系统提供了 Code Gen 的能力,设计师使用 Lottie 进行交付,Vision 会解析 Bodymovin 里的各种 transform 信息,并转换成动画代码片段。在平台上选中一个图层,用户可以复制使用。
例如这是一个复制了代码后实现的曲线运动效果。
这里我们还针对三种不同的场景,提供三种不同的代码生成方式:
普通CSS:适合关键帧可以实现的简单动画
序列帧CSS:适合路径动画的场景
Animated:适合 KRN 动效开发
通过平台提供的代码生成能力,就避免了人工对参数“翻译”不准确的问题,规避了开发者能力导致的差异。
以上便是 Vision 动效平台的设计思路和一些核心功能的分享,其中有很多功能还有很多值得分享的技术细节,后续会有更多的文章来讲解,欢迎大家关注。
- END -
如果业内同仁有其他更好的想法或者建议,请不吝指教。