动画

creator sp.Skeleton,动画使用

拜拜、爱过 提交于 2019-12-09 18:38:55
获取动画属性 onLoad(){ this.game_pk_ani = this.game_pk_ani_node.getComponent(sp.Skeleton); this.game_pk_ani_node.active = false; }, 调用播放 this.game_pk_ani_node.active = true; //发起pk的人赢了vs2_Lwin,反之是vs2_Rwin this.game_pk_ani.clearTracks();//清理所有播放队列的动画 var annimation_name = win_or_lose ? "vszuowin" : "vsyouwin"; //this.game_pk_ani.timeScale = 0.6; this.game_pk_ani.setAnimation(0, annimation_name, false); this.game_pk_ani.setCompleteListener(function () { this.game_pk_ani_node.active = false; left_ico.removeFromParent(); right_ico.removeFromParent(); //动画播放结束回调 if (ccomplete_event) { ccomplete_event() }

js动画原理

╄→尐↘猪︶ㄣ 提交于 2019-12-09 13:41:10
现如今,许多页面上均有一些动画效果。适当的动画效果可以在一定程度上提高页面的美观度,具有提示效果的动画可以增强页面的易用性。 实现页面动画的途径一般有两种。 一种是通过操作JavaScript间接操作CSS样式,每隔一段时间更新一次; 一种是直接通过CSS定义动画。第二种方法在CSS3成熟之后被广泛采用。 我们今天只讲第一种实现方式。 一、JavaScript中动画原理 ​ 所谓的动画,就是通过一些列的运动形成的动的画面。在网页中,我们可以通过不断的改变元素的css值,来达到动的效果。 ​ JavaScript的动画用的最多的3个api就是setInterval()、setTimeout()和requestAnimationFrame() ​ 据说,普通人眼能看到1/24秒,就是说1秒至少24帧,每次移位间隔需要小于1000/24=41.7毫秒,也就说setInterval要每隔至少40毫秒执行一次,一般地,我们采用10毫秒,当然间隔时间越短,客户端执行计算次数就越多,如果你code计算量大则可以适当调长些。 1.1 setTimeout()和setInterval () 1.2 requestAnimationFrame(回调函数) ​ 像setTimeout、setInterval一样,requestAnimationFrame是一个全局函数

CSS3实现魔方动画

送分小仙女□ 提交于 2019-12-08 13:42:26
本文将借助css3实现魔方动画效果,设计思路如下:   HTML方面采用六个 div 容器形成六个立方面;   CSS方面采用 transform-style : preserve-3d; 形成三维场景; transform : rotateX(-90deg) translateZ(150px); 实现立方面旋转组成立方体; animation : rotate 10s linear infinite alternate; 动画效果添加; 效果图: HTML内容: 1 <div class="box"> 2 <div class="before"> 3 <ul> 4 <li>1</li> 5 <li>2</li> 6 <li>3</li> 7 <li>4</li> 8 <li>5</li> 9 <li>6</li> 10 <li>7</li> 11 <li>8</li> 12 <li>9</li> 13 </ul> 14 </div> 15 <div class="back"></div> 16 </div> 设置before、back等六面分别作为立面的前后左右上下各面; CSS核心: 1 @keyframes rotate { 2 0% { 3 transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg); 4 } 5 6 20% {

CSS3复习之动画

廉价感情. 提交于 2019-12-08 10:18:12
在前端的开发过程中,一般在写CSS的时候,会需要使用到css的动画知识,本文主要是实现一个简单的魔方来对动画和3D进行一个复习: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> ul { list-style: none; margin:0; padding:0; } .box { width: 400px; height: 400px; margin: 200px auto; position: relative; font-size: 50px; /*perspective: 1000px;*/ transform-style: preserve-3d; animation: rotate 10s linear infinite alternate; } .box div { width: 400px; height: 400px; position: absolute; } .right { background-color: transparent; transform: rotateY(90deg) translateZ(200px); } .left { background-color: transparent; transform:

iOS动画实战之Lottie动画

荒凉一梦 提交于 2019-12-08 00:42:59
介绍 如果你还不知道Lottie是什么, 那你真的out了. 如果把iOS动画分为两类: 交互式动画, 播放式动画, 那么其中的播放动画完全可以使用Lottie来完成, 例如: 作为收藏按钮, 是不是很活泼? 返回与菜单之间的切换, 生动有趣! 还有各种形变动画. 这里先放上Lottie的地址: https://github.com/airbnb/lottie-ios 更棒的是, Lottie有各种不同的版本, 安卓, iOS, 前端都可以使用, 理论上动画做一套就可以共用, 大大的减少了工作量. 使用方法 集成环境: 移动端同学集成Lottie框架, UI/UE同学集成AE的bodymovin插件 制作动画, 导出文件, 拖进工程 创建LOTAnimationView, 并播放 非常简单, 下面看两个实际例子 实战 先看第一个例子: 典型的形变动画加上几个普通动画融合在一起, 如果由程序员来写, 确实还要花一番心思, 使用Lottie就非常容易了. viewDidLoad时加载动画, 在视图显示出来时播放, 播放完了移除. 就是这么简单. - (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; if (_launchMask && _launchAnimation) { WeakObj(self)

SVG 拖动以及缩放

心不动则不痛 提交于 2019-12-08 00:03:30
有时候,方法不是没有,而是你找不到 这是找了一上午资源的心路历程 首先我是需要一个SVG图的缩放和平移,svg图是自己做的,然后里面有自己做的动画以及其他时间,但是前几天客户说要改需求,说需要这个图实现SVG的拖动和缩放, MD,我只是一个后端啊,好吧,后端和前端已经感觉没有区别了。 之前做SVG动画的时候,学习了一下svg的一些动画特效,国内的一个博客写的很好 超级强大的SVG SMIL animation动画详解 十分佩服博主 然后转到SVG的平移,看到了这样一个文章 如何使用 SVG 进行缩放和平移 这个能做到缩放和平移,但是平移是用方向键来进行平移,但是肯定客户体验不行,所有放弃 (PS,在谷歌上搜索的时候,也发现完全一样的文章,好像是搬运的,另外也想过自己写SVG拖拽,但是总是感觉不尽人意) 然后又看到了D3..JS 这个很强大的图形化软件,找到类似的方法 d3.js导入SVG d3.js 缩放 但是。。。。之前完全没有研究过d3这个js啊。。。。 然后我又看到了这个 两者合并,当当 唔,(°Д°),我菜啊, 然后我又看到了这个js 实现SVG图片放大缩小 看起来行,但实际不行 然后我顺藤摸瓜看到了 SVGpan.js 想看看有没有类型的教程 但是我找到了另外的一个 jquery.panzoom.js,然后里面的最后一个例子完美的实现了我的需求 md,自己真蠢

ae 2019 mac使用教程

早过忘川 提交于 2019-12-07 15:41:49
After Effects CC 2019 for Mac中的常规工作流程分享给大家,After Effects CC 2019简称AE,是Adobe公司开发的一个视频合成及特效制作软件。高效的视频处理系统,确保了高质量视频的输出;令人眼花缭乱的特技系统使AE能实现使用者的一切创意;AE同样保留有Adobe优秀的软件相互兼容性。让大场面更大。创建电影标题,介绍和过渡。 After Effects CC 2019 for Mac中的常规工作流程 After Effects中的常规工作流程概述 无论是使用 Adobe After Effects 为简单标题设置动画,创建复杂的动态图形还是复合逼真的视觉效果,您通常都会遵循相同的基本工作流程,但您可以重复或跳过某些步骤。例如,您可以重复修改图层属性,动画和预览的循环,直到所有内容都正确。如果要在After Effects中完全创建图形元素,则可以跳过导入素材的步骤。 1.导入和整理素材 创建项目后,将项目素材导入项目面板中的项目。After Effects会自动解释许多常见的媒体格式,但您也可以指定After Effects如何解释帧速率和像素长宽比等属性。您可以在“素材”面板中查看每个项目,并设置其开始和结束时间以适合您的构图。 2.在合成中创建,排列和合成图层 创建一个或多个合成。任何素材项目都可以是合成中一个或多个图层的来源

【Shader】通过Shader实现森林树木随风摆动效果

情到浓时终转凉″ 提交于 2019-12-06 22:15:45
大家首先可以想象一下这样的场景:场景中有一大片森林,我想让这片森林的树木有微风轻轻吹拂而缓缓摆动的效果,应该要怎么实现呢? A:给每棵树加个动画,让动画来控制摆动 方案A如果在树木少的情况下还是属于可接受范围的,而且用美术童鞋做的动画来控制树木摆动会显得更真实更生动。不过注意,当是“森林”的时候,这一动起来,CPU估计就吃不消了,若是美术童鞋为了让树木更生动,加的是骨骼动画,那CPU和DrawCall将会爆表! B:用代码控制树木位移来实现 方案B当然不可能是每棵树挂个脚本,那对性能是极大的浪费。若是直接控制整片森林的位移,首先是要把整片森林形成一个整体,然后是用代码每帧循环地去控制位移。虽然能达到摆动,但是动起来会非常的怪异,很难达到理想的效果,大神们可以去尝试一下。 C:使用Unity自带的Tree和WindZone 方案C不失为一个好方法,能够实现很真实的效果。不过使用Unity自带的Tree有很多美术上的限制,而且配置Tree和Wind Zone也是非常麻烦,性能也有一定的消耗。有时候当我们只需要实现简单的摆动功能,就会显得有些得不偿失,性价比不是很高。 D:… 总而言之,方案各式各样,种类繁多,选中最适合自己的那一个才重要。综上所述,要实现符合简单、仿真、高性能的三大条件,通过Shader的帧动画变换UV采样贴图来实现效果,将是一个不错的选择。 简要说一下原理

Unity Avatar动画系统

狂风中的少年 提交于 2019-12-06 21:29:55
Unity Avatar动画系统使用的一些基础属性和方法。以方便日后查找和使用。 using UnityEngine; using System.Collections; public class AnimationTest : MonoBehaviour { private Animator MasterAnim; public GameObject GMaster; public bool ikActive; // Use this for initialization void Start () { } // Update is called once per frame void Update () { MasterAnim = GMaster.GetComponent<Animator> (); AnimatorStateInfo stateInfo=MasterAnim.GetCurrentAnimatorStateInfo(0);//获取当前状态机 float Statelength=stateInfo.length;//动作的总共时间 Debug.Log ("StateLength" + Statelength); float normalizedTime=stateInfo.normalizedTime;//返回了当前动作的时间,整数表示已经循环了几次

Unity - Animator Avatar Mask

孤街浪徒 提交于 2019-12-06 21:29:16
Unity - Animator Avatar Mask Avatar Mask允许你丢弃的一些动画数据,只允许某些部位的动画起作用。很经典的例子是一边播Run、Walk、Idle动画时一边挥手。 创建Avatar Mask 像创建脚本、材质的步骤一样。Humanoid里点击设置遮罩的部位,红色为剔除。如果动画没有Humanoid,或者需要控制更多细节,需要使用下面的Transform。 创建好后在Animator的Layers中设置。注意,也可以在运行时创建和设置Avatar Mask,参考: AnimationLayerMixerPlayable.SetLayerMaskFromAvatarMask 比如我们按上图设置BaseLayer中的AvatarMask,该层的任何动画只会改变两个胳膊的位置: 另一个Layer 所以要实现一边播Run、Walk、Idle动画时一边挥手,我们需要加另外一层Wave Layer,将挥手的动画移到这一层中。即Base Layer播放普通动画,Wave Layer播放遮罩后的挥手动画,然后两者按Layer的Weight混合。 效果: 来源: CSDN 作者: 吴雨葵 链接: https://blog.csdn.net/Teddy_k/article/details/82462629