首页 > 其他分享 >给掘金 Logo 快速添加动画效果,并支持全平台开发框架

给掘金 Logo 快速添加动画效果,并支持全平台开发框架

时间:2022-11-15 23:32:23浏览次数:56  
标签:rive 动画 效果 Web 可以 Shape 添加 Logo


如果需要在 Android、 iOS、Web、Desktop 等平台快速实现如上图所示的动画效果,你第一考虑会怎么做

也许你会说使用 Flutter ?不不不,如果还需要兼容多技术栈呢?例如支持 Flutter 、React、Vue、C++ 等不同语言和技术平台呢?

这时候也许你会想到 ​​Lottie​​ ,诚然 Lottie 的动画效果确实十分优秀,也支持 Android、 iOS、React Native、Web、 Windows 等平台,但是它的输入来源于 After Effects 动画特效,并且依赖于 ​​Bodymovin​​ 插件,这对于个人开发或者 UI 设计师来说,从 0 开始学习的门槛还是不低的。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_前端

而本篇将给你推荐另外一个更简单又强大的动画开发平台: ​​rive​​

后来由于 flare 项目被合并所以升级为 rive ,升级后的 rive 开始把动画效果拓展到全平台,这个全平台不只是物理设备的全平台,还包括了跨语言和框架的全平台,不过可惜和第一代 flare 存在断档不兼容

本篇之所以推荐 rive 来实现多端动画,主要有以下几个原因:

  • 支持手机端、Web 端 和PC 端等平台支持
  • 支持 React 、Flutter、Unity 等多种框架,Vue 和 Angular 也有社区支持
  • 支持 JS、Dart、C++ 等多种语言
  • 不用安装工具,直接 Web ​​Editor​​ 就可以进行可视化开发,并附带工程管理

无需安装,打开即用,多平台多语言支持就是本次推荐 rive 的主要原因,那么回到主体,接下来我们将通过 rive 来实现一个掘金动画 logo。

首先打开 rive 的 Web ​​Editor​​ ,这里需要你有账户登陆,注册登陆是免费的,在登陆之后我们就可以进入到 rive 的动画编辑界面。

因为我们是要基于掘金的 logo 实现一个动画,所以开始之前可以先拿到掘金 logo 的 svg ,这里只需要直接从文件夹把 svg 文件拖拽到 Web Editor 里就可以,它会自己自动上传,上传成功之后就可以看到下图的界面效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_动画效果_02

如果你说我没有 svg 文件怎么办?不用担心, rive 提供丰富又简单的绘制工具,如下图 1 所示,通过 Pen Tool 你就可以快速绘制出一些简单的图形,复杂的路径也可以如图 3 一样描绘出来。

回到上传完 svg 的界面,这时候主要看 3 部分:

  • 红框 1 里的是 Artboards 画板(​​brand-with-text.svg​​) 和画板内的各种 Shape 图形
  • 选中 Shape 图形,可以看到红框 2 里对应的图形进入可操作的状态
  • 红框 3 是用于切换设计和动画界面,在设计(Design)界面下是调整 UI ,在动画(Animate)界面是调整动画效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_动画效果_03

如下图所示,当我们选中一个 Shape 的时候,你就可以对图形进行移动、旋转、缩放等操作,从而来调整 UI 的变化,达到我们需要的动画效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Android_04

接下来我们点击切换到 Animate 下,可以看到此时地步多了一个时间轴,这个时间轴就是我们控制整个动画过程的关键,这里为了实现前面的动画效果,首先需要把整个掘金 logo 挪动到了画布的外面,为后面的掉落动画做准备。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_动画效果_05

接下开始我们的动画,开始之前我们随意调整 svg 里图形的位置或者角度 ,比如:

  • 这里对【稀】字进行了55° 的旋转
  • 对【掘】字进行了 -180° 的旋转
  • 对 【金】字行了50° 的旋转
  • 对 logo 上的小方块位置调整移动

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Flutter_06

做完上面的操作之后,可以看到时间轴上多了一排点,这些点就是当前动画 Shape 在这个时间戳上的状态 ,如果你觉得用鼠标控制不够精确,你也可以在右边的窗口上对参数进行精确调整。

另外如上图 2 所示,在时间轴上可以通过调整 Duration 来设定动画的总时长,还可以调整动画循环播放等等。

接下来就是体力活了, 比如我们需要掘金 logo 从顶部掉下来,那么我们可以在时间轴上拖动蓝色的进度到合适位置,然后挪动图形,然后就可以看到时间戳上多了新的状态点,接着点击播放就可以看到动画效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Flutter_07

如果你需要两个 Shape 之间掉落存在时间差,那么如下图所示,你可以直接调整时间轴上对应的点位,就可以轻松实现动画里 Shape 的移动时间差。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Android_08

这里有一个需要注意的是,当你选中时间戳上的某个节点时,在右侧是可以调整动画的插值状态的,默认情况下是线性 Linear ,但是我们可以根据需要设置想要的 Cubic 计算方式。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_flutter_09

不同 Interpolation 效果如下图所示,其中 Cubic 状态下是可以自定义调整动画的插值计算方式,所以一般情况下都会选择 Cubic 来调整动画的插值计算。

Linear

Cubic

Hold

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_flutter_10

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_前端_11

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Android_12

通过调整动画的差值效果,就可以让生硬的动画过度变得更加自然,例如下图就通过调整 Cubic Points 之后,可以实现快进慢出的效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_动画效果_13

而在经历一系列【体力劳动】之后,你就可以看到类似下图的效果,通过对各种 Shape 进行移动,旋转,缩放,然后通过 Cubic Points 调整动画的丝滑程度,最后排布好时间戳,就可以完成最初的动画效果。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_前端_14

这不比你用代码和意念写来的香?

当然,这里还有一个需要注意的是,如果你存在多个画板和动画,那么画板名字和动画名字的命名就很重要,因为如可能会需要在代码里需要用它来指定动画效果,当然,这也代表了你可以在一个 rive 文件你设置多组画板和多组动画效果

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_前端_15

然后你就可以导出 rive 文件到工程里去使用,同时 rive 文件是支持本地加载和远程加载的,官方贴心地提供了分享链接,你可以把动画通过 Embed link 或者 iframe 添加到 Web 里,甚至还贴心地提供了 React 代码复制。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Flutter_16

例如在 Flutter 里,你可以通过 ​​RiveAnimation.network​​​ 或者 ​​RiveAnimation.asset​​​ 来加载动画文件,当然你也可以自定义 ​​RiveAnimationController​​​ 来做一些自定义控制,比如通过 ​​animationName​​ 来指定对应的动画效果。

class SimpleAnimation extends StatelessWidget {
const SimpleAnimation({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return const Scaffold(
body: Center(
child: RiveAnimation.network(
'https://cdn.rive.app/animations/vehicles.riv',
),
),
);
}
}

当然,前面介绍的只是简单的动画效果,rive 其实可以实现很强的各种动画交互,比如:

  • 通过 Bone 来设置骨骼交互
  • 通过 Draw Order 动态设置层级交替

甚至在 rive 里还有 State Machine 模式,从而支持根据不同条件和逻辑状态触发不同的动画效果,节省可开发者需要在代码里进行逻辑判断的部分,并且这部分逻辑是可以跨平台跨语言支持

更多 rive 的丰富功能可查阅 ​​help.rive.app​​

那么到这里,相信大家最关心的问题就是:rive 能不白嫖 ?答案是可以的! rive 默认对于 free 用户来说支持 3 个文件免费,这对于个人而言其实够用,因为前面说的,rive 支持一个文件下创建多个画板和多个动画,所以正常情况下个人使用 3 个免费的限制其实问题不大。

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_Android_17

同时 rive 社区也有很多免费开放的动画资源,对于懒癌患者来说也是不错的选择之一,当然你也可以把文章转发给设计师,安利他们使用 rive,将开发成本“嫁接”给他们,你只负责岁月静安地用几行代码完成动画接入就可以了

给掘金 Logo 快速添加动画效果,并支持全平台开发框架_前端_18

rive 就是这么一个将 “开发不行” 变成 “设计不行” 的工具,相比较 AE ,它不需要安装工具,而且操作更加简单支持,如果没有设计师也可以自己上手,这也是我最近喜欢上 rive 的原因

好了,本文到这里就结束了,如果你对 rive 还有什么想法或者疑问,欢迎留言交流~

标签:rive,动画,效果,Web,可以,Shape,添加,Logo
From: https://blog.51cto.com/u_15641473/5854504

相关文章

  • Tween.js动画
    一,安装及引用#yarnyarnadd@tweenjs/tween.js#npmnpminstall@tweenjs/tween.js--save#引用importTweenfrom'@tweenjs/tween.js'二,基本使用impor......
  • 03.git的添加git add、更新git pull、删除git rm 、克隆git clone
    把不同人写的几个的代码模块组合成整体(注意:模块使用的编程环境不同)推荐使用git,git是目前世界上最先进的分布式版本控制]一、安装、远程仓库的绑定1、安装git通过Git安......
  • tree 动态添加、删除树结构数据
    tree.vue组件<template><div><div@click="getData":style="getDetph(currentItem.level)"class="li"><spanclass="icon"></span>......
  • 给adobe reader 添加书签功能
    Pleasereferto HowtoBookmarkPagesinaPDFDocumentinAdobeReader个人喜欢两种方法:1.打开恢复上次阅读功能。Edit>Preferences->Documents->Restorela......
  • clickhouse 添加只读账户
    vi/etc/clickhouse-server/user.xml<access_management>1</access_management> clickhouse-client-m-h127.0.0.1-udefault--passwordcreateuserzhangsaniden......
  • linux buildroot平台添加gzip
    linuxbuildroot平台添加gzip在ubuntu中通过tar-zcvfxxxxxx.tar.gzxxxxxx命令压缩的文件,在开发板上无法解压,弹出如下提示:待添加发现是buildroot默认没有gzip,需要打......
  • GC日志打印添加以及说明
        项目经常自动重启,但是没有gc日志和dump文件。可以使用一下命令添加日志:    -XX:+PrintGCDetails-XX:+UseStringDeduplication-Xmx100M-XX:+UseG1G......
  • 2022-11-15 如何给rich-text里的标签添加类名
    e.title=e.title.replace(/\<p/gi,'<pstyle="display:inline-block!important"');我这个是遍历一个数组中的所有title,并且给每个title的值都替换掉指定的标签,需要......
  • jmeter 添加断言和查看断言结果
    在对应的请求下添加响应断言,这里我们添加响应文本来作为检查点,来检查上面的这个请求是否成功   断言和断言结果是成对出现的,是为了检查我们添加的断言是否验证成功......
  • 动画缓动效果
    动画缓动效果缓动效果原理缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢停下来思路∶1.让盒子每次移动的距离慢慢变小,速度就会慢慢落下来。2.核心算法∶(目标......