【Rive】眼睛互动动画
1 前言
本文基于 Rive 社区开放的眼睛动画,进一步加工处理,实现更有趣的眼睛互动动画。
原始资源见 → Eye Joysticks Demo,效果如下。

原始资源只有一只眼睛,并且没有事件交互,动画比较单一。本文在该资源的基础上进行了以下修改。
- 绘制两只眼睛;
- 无事件时,眼睛在微眯和张开之间循环动画;
- 移动鼠标(或手指)时,眼睛看向鼠标(或手指)位置;
- 鼠标(或手指)移至眼睛附近时,眼睛聚焦,眼睛和瞳孔逐渐变小;鼠标(或手指)远离眼睛时,眼睛和瞳孔逐渐恢复原来大小;
- 单击背景时,眨下眼(逐渐闭眼,然后逐渐张开,再逐渐微眯,再张开);
- 单击背景或鼠标(或手指)离开背景区域时,眼睛恢复到中间位置。
2 眼睛动画
本节只展示 Rive Editor 中的案例实现步骤,Rive 在 Android 中的环境配置详见 → Rive在Android上的简单应用。本节完整资源详见 → Android中基于Rive实现眼睛互动动画。
1)对象层级结构

2)时间线、输入变量、监听器

说明:Scale_Small、Trans 里只有一帧。
3)状态机

说明:Blink_Idle_Large→Blink_Large_Idle、Blink_Large_Idle→Blink_Idle_Large、Blink→Blink_Large_Idle 的 Exit Time 都设置为 100%,表示左边的动画执行完后才能扭转到右边的状态,不能被打断;Blink_Idle_Large→Scale_Small、Blink_Large_Idle→Scale_Small、Scale_Small→Blink_Idle_Large、Blink→Blink_Large_Idle 的过渡时长(Duration)分别为 500ms、500ms、300ms、200ms;None→Trans(Trans)、None→Trans(Blink) 的过渡时长(Duration)分别为 800ms、350ms。
4)插值器变换
Blink 时间线中,在眼睛张开到最大后补了一些关键帧:渐变到微眯,再渐变到最大,在张开到最大和微眯时插值器曲线是对称的。假设插值器 A 的贝塞尔参数为 (x1, y1, x2, y2),则对称的插值器为:(1 - x2, 1 - y2, 1 - x1, 1 - y1)。

5)运行效果
浅色模式运行效果如下。

深色模式运行效果如下。

声明:本文转自【Rive】眼睛互动动画。
【Rive】眼睛互动动画的更多相关文章
- 12个值得关注的顶级可视化JS库 涉及图表、动画、时间处理,表格操作
本文是译文,原文是https://da-14.com/blog/top-11...我在原文的基础上加了百度的Echats图表库,这个也是毫不逊色其他图表库的.另外Handsontable电子表格库也是 ...
- CG资源网 - Maya教程
Maya中mentalray灯光渲染终极训练视频教程 http://www.cgtsj.com/cg/f/vx3627/index.html Maya无人机建模制作训练视频教程第一季 http://w ...
- cg tut
Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...
- 收藏了4年的Android 源码分享
Android 超过2个G的源代码集合~~几乎涵盖了所有功能效果的实现,一应俱全~~应有尽有~~ 360云盘地址:Android 各类源码集合汇总 (提取码:f930) 另外,附上Github上及自己 ...
- anime.js 简单入门教程
anime.js是一个强大的用来制作动画的javascript库,虽然功能没有GASP(greensock)强大,但胜在它足够轻便,gzip压缩完只有9kb左右,麻雀虽小,却五脏俱全. 下面就来看看如 ...
- Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么(转)
Web 建站技术中,HTML.HTML5.XHTML.CSS.SQL.JavaScript.PHP.ASP.NET.Web Services 是什么?修改 建站有很多技术,如 HTML.HTML5.X ...
- 哆啦A梦欺骗了你!浏览器CSS3测试遭质疑
首先,说明,此处只是告诫各位参与CSS3.0学习使用或者将要使用或者学习CSS3.0的朋友,不要完全信任网络资源,依靠网络资源,我们需要利用网络资源的方便和可取的部分,结合自己的理解,学好,理解好! ...
- 纯CSS打造萌萌哒大白
HTML部分: <body> <div id="baymax"> <!-- 定义头部,包括两个眼睛.嘴 --> <div id=" ...
- App复杂动画实现——Rive保姆级教程
作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式.一种是直接用代码编写,像平移.旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底.图形 ...
- HTML5 Canvas眨眼睛动画
效果请看: http://keleyi.com/a/bjad/p9exlcwi.htm 请使用支持HTML5的浏览器查看效果. 以下是代码: <html> <body> < ...
随机推荐
- 2022年6月中国数据库排行榜:TiDB卷土重来摘桂冠,达梦蛰伏五月夺探花
排行榜风云又起,各产品墨坛论剑.2022年6月的 中国数据库流行度排行榜 再掀风云,6月排行榜共有231个数据库参与排名,两名新成员的加入,注入了新活力.本月排行榜用一句话可以概括为:TiDB卷土重来 ...
- 前端面试题axaios携带 cookies
配置 axios.default.widthCredentials = true;
- JS实现斐波那契数列的几种方法及代码优化
一.斐波那契数定义 斐波那契数列又被称为黄金分割数列,指 1,1,2,3,5,8,13,21,... 等数列. 在数学中有递推的方法定义: F(0)=0,F(1)=1, F(2)=1,F(n)=F(n ...
- CUDA编程学习 (1)——CUDA C介绍
1. 内存分配和数据移动 API 函数 CUDA编程模型是一个异构模型,需要CPU和GPU协同工作.在CUDA中,host 和 devic e 是两个重要的概念,我们用host指代CPU及其内存,而用 ...
- 干货分享:Air780E怎么连接华为云?
众所周知,市面上有很多云平台,阿里云.腾讯云.中移OneNET.华为云.百度云.涂鸦云.TLink云等等......并且每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对 ...
- Manjaro/Arch用怎么安装天翼云电脑(Ctyun-cloud-desk)?感谢信创,感谢国家
最近微信出了linux版,用vmware装linux不过瘾,把一台闲置的笔记本装上了Manjaro KDE Plasma,经过一段时间的发展,Linux桌面可用性大大提高. Kindle->Ki ...
- 人工智能模型训练技术:随机失活,丢弃法,Dropout
前一篇:<探索训练人工智能模型的词汇大小与模型的维度> 序言:Dropout 是神经网络设计领域的一种技术,通常我们把它翻译成 随机失活 或者 丢弃法.如果训练神经网络的时候不用 Drop ...
- 货店管理(delphi+sqlserver)
之前给朋友做的货店管理程序,个人使用,数据量小,delphi开发的,sqlserver express版,fastReport做的报表(报表可以修改). 源代码全给他的,呵呵,他也可以简单修改了. ...
- vue 子组件data属性为啥必须是一个函数
其实就是一个原因,实例化出来的根组件只有一个,你可以将它写成对象,或者是返回一个对象的函数.但是子组件不够健壮,容易在内存的地址中互相影响,就像我们常用的深浅拷贝所能解决的那样.所以为了防止意外的发生 ...
- 教育账号无法登录OneDrive的一种解决方法
众所周知,微软的服务总是能出现一些奇奇怪怪的问题,比如说教育账号无法登录OneDrive,尝试使用网上的临时解决方案失败 onedrive学生账号无法登录win10 OneDrive客户端 用户可以在 ...