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】眼睛互动动画的更多相关文章

  1. 12个值得关注的顶级可视化JS库 涉及图表、动画、时间处理,表格操作

    本文是译文,原文是https://da-14.com/blog/top-11...我在原文的基础上加了百度的Echats图表库,这个也是毫不逊色其他图表库的.另外Handsontable电子表格库也是 ...

  2. CG资源网 - Maya教程

    Maya中mentalray灯光渲染终极训练视频教程 http://www.cgtsj.com/cg/f/vx3627/index.html Maya无人机建模制作训练视频教程第一季 http://w ...

  3. cg tut

    Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...

  4. 收藏了4年的Android 源码分享

    Android 超过2个G的源代码集合~~几乎涵盖了所有功能效果的实现,一应俱全~~应有尽有~~ 360云盘地址:Android 各类源码集合汇总 (提取码:f930) 另外,附上Github上及自己 ...

  5. anime.js 简单入门教程

    anime.js是一个强大的用来制作动画的javascript库,虽然功能没有GASP(greensock)强大,但胜在它足够轻便,gzip压缩完只有9kb左右,麻雀虽小,却五脏俱全. 下面就来看看如 ...

  6. 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 ...

  7. 哆啦A梦欺骗了你!浏览器CSS3测试遭质疑

    首先,说明,此处只是告诫各位参与CSS3.0学习使用或者将要使用或者学习CSS3.0的朋友,不要完全信任网络资源,依靠网络资源,我们需要利用网络资源的方便和可取的部分,结合自己的理解,学好,理解好! ...

  8. 纯CSS打造萌萌哒大白

    HTML部分: <body> <div id="baymax"> <!-- 定义头部,包括两个眼睛.嘴 --> <div id=" ...

  9. App复杂动画实现——Rive保姆级教程

    作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式.一种是直接用代码编写,像平移.旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底.图形 ...

  10. HTML5 Canvas眨眼睛动画

    效果请看: http://keleyi.com/a/bjad/p9exlcwi.htm 请使用支持HTML5的浏览器查看效果. 以下是代码: <html> <body> < ...

随机推荐

  1. 2022年6月中国数据库排行榜:TiDB卷土重来摘桂冠,达梦蛰伏五月夺探花

    排行榜风云又起,各产品墨坛论剑.2022年6月的 中国数据库流行度排行榜 再掀风云,6月排行榜共有231个数据库参与排名,两名新成员的加入,注入了新活力.本月排行榜用一句话可以概括为:TiDB卷土重来 ...

  2. 前端面试题axaios携带 cookies

    配置 axios.default.widthCredentials = true;

  3. JS实现斐波那契数列的几种方法及代码优化

    一.斐波那契数定义 斐波那契数列又被称为黄金分割数列,指 1,1,2,3,5,8,13,21,... 等数列. 在数学中有递推的方法定义: F(0)=0,F(1)=1, F(2)=1,F(n)=F(n ...

  4. CUDA编程学习 (1)——CUDA C介绍

    1. 内存分配和数据移动 API 函数 CUDA编程模型是一个异构模型,需要CPU和GPU协同工作.在CUDA中,host 和 devic e 是两个重要的概念,我们用host指代CPU及其内存,而用 ...

  5. 干货分享:Air780E怎么连接华为云?

    ​ 众所周知,市面上有很多云平台,阿里云.腾讯云.中移OneNET.华为云.百度云.涂鸦云.TLink云等等......并且每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对 ...

  6. Manjaro/Arch用怎么安装天翼云电脑(Ctyun-cloud-desk)?感谢信创,感谢国家

    最近微信出了linux版,用vmware装linux不过瘾,把一台闲置的笔记本装上了Manjaro KDE Plasma,经过一段时间的发展,Linux桌面可用性大大提高. Kindle->Ki ...

  7. 人工智能模型训练技术:随机失活,丢弃法,Dropout

    前一篇:<探索训练人工智能模型的词汇大小与模型的维度> 序言:Dropout 是神经网络设计领域的一种技术,通常我们把它翻译成 随机失活 或者 丢弃法.如果训练神经网络的时候不用 Drop ...

  8. 货店管理(delphi+sqlserver)

    之前给朋友做的货店管理程序,个人使用,数据量小,delphi开发的,sqlserver express版,fastReport做的报表(报表可以修改). 源代码全给他的,呵呵,他也可以简单修改了.   ...

  9. vue 子组件data属性为啥必须是一个函数

    其实就是一个原因,实例化出来的根组件只有一个,你可以将它写成对象,或者是返回一个对象的函数.但是子组件不够健壮,容易在内存的地址中互相影响,就像我们常用的深浅拷贝所能解决的那样.所以为了防止意外的发生 ...

  10. 教育账号无法登录OneDrive的一种解决方法

    众所周知,微软的服务总是能出现一些奇奇怪怪的问题,比如说教育账号无法登录OneDrive,尝试使用网上的临时解决方案失败 onedrive学生账号无法登录win10 OneDrive客户端 用户可以在 ...