精华内容
下载资源
问答
  • Ext Core 通过预置的动画功能,可以让轻松实现动画功能。通过自定义动画配置,可实现更多的动画效果。动画完成后,可通过回调函数实现后续处理 Ext Core 动画 8 个定位点的值与描述 值 描述 tl 左上角 t 顶边...

     

     

    
     

    Ext Core 通过预置的动画功能,可以让轻松实现动画功能。通过自定义动画配置,可实现更多的动画效果。动画完成后,可通过回调函数实现后续处理

    Ext Core 动画 8 个定位点的值与描述

    值 描述

    tl 左上角

    t 顶边中心

    tr 右上角

    l 左边中心

    r 右边中心

    bl 左下角

    b 底边中心

    br 右下角

    下面开始介绍 Ext Core 预置的 12 个动画功能。

    slideIn/slideOut:元素的滑进或滑出效果。默认 slideIn 是从顶部滑进的,而 slideOut 是从底部滑出的,可通过修改第 1 个参数设置滑进或滑出位置。其使用方法请看下面代码。

    var el = Ext.get('elId');

    //从顶部滑进

    el.slideIn();

    //从底部滑出

    el.slideOut();

    //从左边滑进

    el.slideIn('l',{

    easing: 'easeOut',

    duration: .5

    });

     

    puff:元素慢慢向四周扩大并逐渐消失。当效果完成后,元素将隐藏(visibility 属性为hidden),不过元素原来所占位置将继续存在。如果需要删除元素,请设置 remove 属性为true。其使用方法请看下面代码。

    var el = Ext.get('elId');

    //默认方式

    el.puff();

    //自定义方式,元素消失后删除元素

    el.puff({

    easing: 'easeOut',

    duration: .5,

    remove: true,

    useDisplay: false

    })

     

    switchOff:元素闪烁一下,然后往中心折叠(类似关掉电视)。当效果完成后,元素将隐藏(visibility 属性为 hidden),不过元素原来所占位置将继续存在。如果需要删除元素,请设置remove 属性为 true。其使用方法请看下面代码。

    var el = Ext.get('elId');

    //默认方式

    el.switchOff();

    //自定义方式,元素消失后删除元素

    el.switchOff({

    easing: 'easeOut',

    duration: .5,

    remove: true,

    useDisplay: false

    });

     

    highlight:利用设置的颜色高亮显示元素,然后逐渐消隐回原有颜色。默认是设置元素背景颜色,可通过设置 attr 属性设置高亮显示方式。如果没有初始颜色,可以使用 endColor 属性设置消隐后的颜色。其使用方法请看下面代码。

    var el = Ext.get('elId');

    //默认方式

    el.highlight();

    //自定义方式

    el.highlight('0f0f0f',{

    easing: 'easeOut',

    attr: 'color'

    duration: .5,

    endColor: 'abcdef'

    });

     

    frame:从元素边界开始以水波扩散的方式提示用户。其使用方法请看下面代码。

    var el = Ext.get('elId');

    //默认方式

    el.frame();

    //自定义方式

    el.frame('0f0f0f',{

    duration: .5,

    });

     

    pause:在队列中的动画开始之前产生一个停顿。其使用方法请看下面代码。

    el.pause(1); //停顿 1 秒

     

    fadeIn/fadeout:实现渐变效果。fadeIn 方法从透明渐变到不透明。fadeOut 方法从不透明渐变到透明。通过 endOpacity 属性可设置渐变结束后的不透明度。要注意在 IE 中可能要设置useDisplay 属性为 true。其使用方法请看下面代码。

    var el = Ext.get('elId');

    el.fadeIn();

    el.fadeOut();

    //自定义方式

    el.fadeIn({

    endpacity: 1,

    easing: 'easeOut',

    duration: .5

    });

     

    scale:将元素的尺寸从原有尺寸过渡到设置的尺寸。其使用方法请看下面代码。

    var el = Ext.get('elId');

    el.scale(100,200);

    //自定义方式

    el.fadeIn(100,200,{

    easing: 'easeOut',

    duration: .5

    });

     

    shift:元素渐变到新的位置、新的尺寸和不透明度。该方法至少需要位置、尺寸和不透明度其中一项设置,不然元素不会被改变。其使用方法请看下面代码。

    var el = Ext.get('elId');

    el.shift({

    width:100, //元素的新宽度

    height: 100, //元素的新高度

    x: 10 , //元素的新 x 坐标

    y: 10 , //元素的新 y 坐标

    opacity: .8, //元素的新不透明度

    easing: 'easeOut',

    duration: .5

    });

    //以上属性 width、height、x、y、opacity 至少必须有一项

     

    ghost:当元素渐隐时,元素同时滑出。可通过第 1 个参数设置滑出位置。其使用方法请看下面代码。

    var el = Ext.get('elId');

    el.ghost();

    //自定义方式,从左边滑出

    el.ghost('l',{

    easing: 'easeOut',

    duration: .5,

    remove:false,

    userDisplay:fase

    });

     

    animate:通过该方法可自定义复杂的动画效果。其使用方法请看下面代码。

    var el = Ext.get('elId');

    el.animate(

    {

    borderWith:{to : 3,from:0},

    opacity: {to: .5, from:1}

    height: {to 100 , from:el.getHeight()},

    widht: {to 200 , from:el.getwidth()},

    top:{by:-100,unit: 'px'}

    },

    1,//动画长度,单位为秒,该参数可选

    null, //回调函数,该参数可选

    'easeOut',//渐变方式,该参数可选

    'run' //动画类型

    );

    在定义中,borderWidth、opactiy 等属性可以为元素的任何样式属性。动画类型包括以下几个类型:

    run:默认类型。

    color:动画渐变背景、文本或边界颜色。

    motion:在渐变过程中使用 Bezier 曲线作为运动轨迹。

    scroll:已垂直或水平滚动方式运动。

     

     

     

    转自:Extjs动画效果(自定义动画)

     

    展开全文
  • paraview高级动画功能

    万次阅读 2018-07-27 20:51:57
    下面通过一些实例展示一下paraview的高级动画功能,下面演示的实例来自paraview自带的算例,位置如下图所示: 1 、熟悉动画视图(Animation View) 打开can.ex2,选中所有变量,然后Apply 左键拖动模型,直到...

    下面通过一些实例展示一下paraview的高级动画功能,下面演示的实例来自paraview自带的算例,位置如下图所示:

    1 、熟悉动画视图(Animation View)

    • 打开can.ex2,选中所有变量,然后Apply
    • 左键拖动模型,直到可以看到灰色的部分
    • 将时间步调整到5
    • 选择变量DISPL进行显示
    • 在View → Animation View中对动画视图进行显示
    • 可以通过鼠标左键拖动黑色滑块,自己感受一下

    2 、以real Time进行动画播放

    • 继续上面的步骤,在动画视图(Animation View)中,改变播放模式为Sequence,然后将No. Frame2设置为200
    • Filters → Temporal → Temporal Interpolator(不适用于AMR),这个操作是对每一帧之间进行插值,从而可使动画更加逼真,没有间断感
    • 点击Play

    3 、移动camera

    一共有四种移动camera的方式,分别是Orbit、Follow Data、Interpolate Camera Locations及Follow Path。

    Orbit Camera

    • Edit → Reset Session
    • 打开can.ex2,选中所有变量,然后Apply
    • 显示+Y方向
    • View → Animation View,打开动画视图
    • 添加一个camera,运动方式选择orbit,点击蓝色+号
    • Create Orbit会弹出来,默认参数即可,然后点击OK
    • 点击Play

    Camera Follow Data

    • Edit → Reset Session
    • 打开can.ex2,选中所有变量,然后Apply
    • 显示+Y方向
    • View → Animation View,打开动画视图
    • 添加一个camera,运动方式选择Follow Data,点击蓝色+号
    • 点击Play

    Interpolate Camera position

    • Edit → Reset Session
    • 打开can.ex2,选中所有变量,然后Apply
    • 显示+Y方向
    • View → Animation View,打开动画视图
    • 添加一个camera,运动方式选择Interpolate Camera Position,点击蓝色+号
    • 左键双击刚添加camera的白色区域,Animation Keyframes对话框出现
    • 双击上面的Position,use current,然后点击OK
    • 将时间步调整到最后,然后手动将数据集拖动到屏幕中心
    • 双击下面的position,use current,然后点击OK
    • 点击Play

    Follow Path

    • Edit → Reset Session
    • 打开can.ex2,选中所有变量,然后Apply
    • 显示+Y方向
    • View → Animation View,打开动画视图
    • 添加一个camera,运动方式选择Follow Path,点击蓝色+号
    • 左键双击刚添加camera的白色区域,Animation Keyframes对话框出现
    • 双击Path,然后点击Camera Position
    • 然后在3d视图中,缩小并旋转模型,可以看到一条带白色圆点的黄色圆圈
    • 连点两次OK
    • 点击Play

    动态效果如下:

     

     

     

     

     

    展开全文
  • java的图片,动画功能

    千次阅读 2013-10-24 20:46:47
    java的动画功能的实现是最基础的,通过不断刷新图片及其坐标实现动画是java动画的思想,通常这是在线程下完成的。而android的动画可以使用动画类进行,常见的有Property Animation,Tween Animation,Frame ...

            java的动画功能的实现是最基础的,通过不断刷新图片及其坐标实现动画是java动画的思想,通常这是在线程下完成的。而android的动画可以使用动画类进行,常见的有Property Animation,Tween Animation,Frame Animation,并且由android是从java演化来的,所以android可以使用java的几乎是一切的类以及思想。而libGDX动画的思想与java类似,但是libGDX的刷新是自动进行的,同时作为游戏引擎,他也是动画类最多的。

            java的动画可以使用Thread建一个线程,然后让这个线程不断刷新,而线程里面的图片及其图片的坐标也会随着刷新不断更改,这里使用到Graphics.drawImage()进行,因为这个方法在加载图片时会确定坐标。(另外还有使用到,Display,Shell的,这种方式较为罕见,仅作了解)。

            而一旦涉及到动画,则一定会涉及到图片,这里使用的是Image抽象类,BufferedImage类,加载到Graphics,在使用Graphics加载到JComponent,这样就可以使用JFrame进行添加显示了。(其实主要设置好JFrame的相关设置,就可以单独显示JFrame了,因为JFrame就是一个窗口,同时JFrame继承自Window)。而加载图片有两种方法,一般使用ImageIO.read()进行,但是还可以使用Toolkit.getDefaultToolkit().getImage()加载。但这里有一个很头疼的问题,那就是使用JComponent进行类创建,在添加到JFrame中,而如果不进行类创建,那么应该怎么进行图片显示还没找到方法。。。。

    (图片加载这里注意理清ImageObserver,Component,Container,Window,JComponent,JFrame,JPanel关系)

    (Bufferedimage可以实现缩略图,切图Image image=BufferedImage.getScaledInstance(),BufferedImage image=BufferedImage.getSubimage())

    (Component.getGraphics()可以得到图片处理类Graphics,而Graphics2D在后面用到)

    (使用ImageIcon还可以进行图标设计,即使用Image实例化ImageIcon,淡然还可以使用ImageIcon.getImage()得到Image,而Icon,Image都是抽象类,BufferedImage才是我们一般使用的类。同时还有ToolkitImage等可用类)

    (java的View是用于一些控件的相关设计的,android的View由于SurfaceView而被用于自定义控件,应该说两者之间在用途上几乎一样,只是存在于不同系统而已。这里需要明确,加载图片与自定义控件的区别,容易混淆)


            对于实现图片的叠加,以及动画的实现,其实还有一个重要的概念,那就是层。将不同的层放置不同的东西,层与层之间叠加就会形成图片图片合成的效果,以及动画在图片上移动的效果。而层的概念的实现在java/android中都是使用布局,也就是Layout概念进行的。不论java还是android都有Layout的存在,但是两者略有不同,这是由于平台的差异造成的。这里Java的布局主要的有BoxLayout,BorderLayout,CardLayout,FlowLayout,GridLayout。而java中布局的父类是LayoutManager(他的子类中还有一个LayoutManager2,注意不要混淆。)








    (未完成)

    展开全文
  • Cocos骨骼动画功能解密

    千次阅读 2017-07-07 23:15:18
    Cocos在更新到2.x版本之后,便没有了骨骼动画功能,使得开发者非常困扰。终于在本次更新中,Cocos编辑器将骨骼动画添加了回来!(注:新版本骨骼动画需要Cocos2d-x3.8版本) 骨骼动画与序列帧动画 序列帧...

    在游戏中,人物的各种动作是必不可少,一般实现人物动作的方式有两种,序列帧动画或骨骼动画。Cocos在更新到2.x版本之后,便没有了骨骼动画的功能,使得开发者非常困扰。终于在本次更新中,Cocos编辑器将骨骼动画添加了回来!(注:新版本骨骼动画需要Cocos2d-x3.8版本)

    骨骼动画与序列帧动画

    序列帧动画是将,动画的每一帧都是人物动作的一个快照,序列帧的帧数直接决定动画的流畅度和平滑效果,但是同时,序列帧的数量也严重影响着资源包体积及图片资源加载速度。而骨骼动画则是把人物拆开成碎块,然后将人物各个部分拼接到一起,并为其各部分图片绑定到一根根互相作用连接的"骨头"上,通过控制这些骨骼的位置、旋转方向和放大缩小便可以做出非常流畅细腻的动画。同时骨骼动画编辑方式和Flash非常相似,对于擅长使用Flash的动画编辑师来说上手非常容易。

    新建骨骼动画

    首先点击屏幕右上角的 文件->新建文件(快捷键:Command+N),打开如下界面,选择骨骼动画,点创建:

    未标题-1.jpg

    主界面介绍

    首先我们需要了解一下编辑器界面中各个部分的功能,

    我们常用的空间的位置已经不需要使用了

    未标题-1.jpg

    1.资源列表,这里显示你项目中所有资源,如果想编辑骨骼,首先需要将骨骼动画的图片导入进来。

    2.渲染区域,也就是我们的画布。这里是资源布局的编辑区域,在这个区域可以各个图片和骨骼进行移动,缩放,旋转的操作,所有的图片、骨骼、动画的绑定与编辑都在这个区域完成

    3.快捷菜单栏,快捷菜单栏中包涵一些常用操作,这里的每个按钮的用途会在下边介绍。

    4.属性栏,当选中一个对象(图片/骨骼)时,属性栏会显示出该对象的所有属性。通过属性栏可以非常精准的修改对象的属性设置,并且立刻在渲染区域显示出来。

    5.帧曲线设置面板,在这个面板中,可以设置动画的动画曲线。其中预设了一些效果,也可以自己通过修改曲线自定义效果,以修改动画的播放曲线(例如,挥剑动画,开始时候挥剑速度慢,然后逐渐变快,就可以通过这里轻松设置)。

    6.动画列表,这个面板会显示出所有的对象,以及对象的关键帧。通过设置在关键帧中骨骼及图片的变化就可以编辑出流畅的骨骼动画了。

    快捷栏介绍

    未标题-1.jpg

    1.移动画布,永远移动渲染区域(画布)的显示位置

    2.平移,用于移动对象的位置,修改对象Position。

    3.旋转,对象进行旋转操作

    4.缩放,对对象进行缩放操作

    平移、旋转、缩放三个操作选中对象时候,会出现如下图形:

    未标题-1.jpg

    对于平移或缩放操作,两个箭头会分别修改x,y方向的位置或大小。点击中间方形区域,则可以同时修改x,y的位置或大小。

    未标题-1.jpg

    对于旋转操作,两个箭头则会逆时针/顺时针旋转对象。

    5.创建骨骼,该工具可以快速连续创建骨骼,选中该工具后,在画布上进行点击鼠标左键,然后移动鼠标,选择合适的大小后,再次点击鼠标左键,则会创建一个骨骼,并且开启下一次的骨骼创建操作,点击鼠标右键,退出编辑状态。

    未标题-1.jpg

    (指向渲染区域中心的坐标系表示该骨骼没有父骨骼)

    未标题-1.jpg

    (黄色箭头指向点为骨骼的头端是旋转、缩放、位移的中心(锚点),红色箭头指向则是骨骼的尾端,旋转骨骼时候,点击骨骼尾端可以很方便的对骨骼进行准确的旋转)

    6.绑定,绑定工具用于将骨骼和图片资源进行绑定,选中该工具后,点击要绑定的图片,会出现一个小箭头,再点击要绑定的骨骼即可将骨骼和图片进行绑定,绑定后的图片,会根据骨骼的旋转、移动、缩放等操作进行同步的改变。

    同时,绑定工具亦可将骨骼与骨骼之间进行绑定,骨骼间绑定的方式与图片绑定方式类似:选中快捷菜单栏绑定工具,点击子骨骼a,移动鼠标会出现一个黄色的线,然后点击父骨骼b就可以了。将骨骼a绑定到骨骼b时,当骨骼b旋转、移动时,骨骼a相对于骨骼b的位置和旋转将不会改变。

    (注:当勾选动画列表栏中的自动记录关键帧选项时,无法进行骨骼绑定操作)

    未标题-1.jpg

    (骨骼与骨骼间的绑定)

    未标题-1.jpg

    (图片与骨骼之间的绑定)

    7.解绑,解除绑定操作,与第6个绑定相反。

    8.隐藏/显示骨骼,可以切换骨骼对象的显示状态,关闭骨骼显示后,可以更好的查看各个图片。只针对图片进行操作,无需担心误修改骨骼对象。

    未标题-1.jpg

    (隐藏骨骼状态)

    9.隐藏/显示皮肤,与第8个功能类似,可以切换图片(皮肤)的显示状态,只针对骨骼对象进行操作,无需担心误修改图片。

    未标题-1.jpg

    (隐藏皮肤状态)

    10.查看骨骼关系,这个功能可以更好地对骨骼对象及图片进行绑定管理操作,通过列表形式清楚的展现出各个对象之间的绑定关系。

    未标题-1.jpg

    对编辑器的各个功能有了初步了解后,我们就可以开始编辑骨骼动画了。

    编辑骨骼动画

    1.首先在资源列表区域点击右键,选择 导入资源 ,也可以将资源直接拖拽进入资源列表(注意,这里不同动画之间的骨骼也尽量不要出现命名重复)

    未标题-1.jpg

    2.将资源列表中的图片拖拽到渲染区,并一一摆好位置

    未标题-1.jpg

    3.根据摆放好的图片,创建骨骼:选中快捷菜单栏中的创建骨骼按钮,在人物身体部位(图片)的轴心(旋转中心)上单击左键,将鼠标移动到旋转半径的另一头,再次点击左键,便可以创建出一个骨骼,然后点击鼠标右键,取消骨骼编辑。(重复以上操作直至创建好所有骨骼)

    未标题-1.jpg

    4.将人物身体各部分图片与骨骼绑定:点击快捷菜单栏中的绑定按钮,然后单击左键选择要绑定的图片,这时移动数遍会出现一个黄色的箭头,将鼠标移动到要绑定的骨骼上边,再次点击左键,便可将图片与骨骼绑定。这时,黄色箭头会变为红色箭头。(重复以上操作直至将所有图片与骨骼绑定完毕)

    未标题-1.jpg

    如果希望解除绑定,选择要解除绑定的骨骼,点击快捷菜单栏中的"解除"按钮即可。

    5.创建骨骼的父子关系:本步骤操作是将骨骼与骨骼之间进行绑定,形成一种父子关系,当父骨骼产生位移或旋转时候,子骨骼也会跟随父骨骼变化。

    操作步骤与绑定图片相似,首选点击快捷菜单栏的绑定按钮,然后左键单击要绑定的子骨骼,然后将鼠标移动到要绑定的父骨骼上,再次单击左键即可。

    未标题-1.jpg

    (骨骼间的父子绑定关系)

    6.编辑动画,当所有的骨骼和图片之间的关系设置完毕后,就可以开始编辑骨骼动画了。

    (1)先添加第一帧(初始位置的关键帧),先将0帧位置的所有对象都选中,然后右键选择 "添加帧"

    未标题-1.jpg

    将初始位置添加关键帧后,为了让动画能够形成一个闭环,我们需要将动画的首尾状态设置的一致,全选所有对象的初始位置的关键帧,右键->复制,然后到动画最后一帧(例如1秒的动画,最后一帧默认为60帧),右键->粘贴。

    (2)勾选自动记录关键帧的复选框,开始编辑其他帧,将时间轴拖动到到某一帧上(如10帧),对人物骨骼的位置角度进行编辑,这时,编辑器将会自动记录一个关键帧,两个关键帧之间会自动进行补帧,以保证动画播放流畅。(补帧是不会显示出来的)

    未标题-1.jpg

    (3)编辑完动画后,需要对动画进行分组,以方便后边播放,点击动画栏中的小加号,输入一个动画名称,然后选择动画在时间轴的帧数范围即可

    未标题-1.jpg

    (4)将动画编辑好后,点击三角按钮可以进行播放,查看动画效果

    未标题-1.jpg

    (图中60fps表示每秒包涵多少帧,帧数越高动画越细腻,一般保持与屏幕刷新帧数相同即可(默认60帧)即可)

    (5)为骨骼动画添加帧事件:帧事件的意思是在骨骼动画播放到某帧的时候,会产生一个事件,程序可以对事件进行监听,当收到事件时候,进行不同的动作,例如播放另外一个动画,开枪,或者播放技能效果等。

    首先我们需要选中一个帧作为帧事件触发的时机。

    未标题-1.jpg

    接下来,在属性面板中,展开高级属性菜单,在帧事件栏中输入帧事件的名字(可以重复,除非特殊需要,请不要重复)即可。

    未标题-1.jpg

    7.导出骨骼动画:点击屏幕左上角的使用上次设置发布图标,可以导出骨骼动画,默认是csb格式,可以通过点击边上的小箭头进行导出设置。

    未标题-1.jpg

    8.在Cocos编辑器的Layer或者Scene中加载编辑好的骨骼动画

    新版骨骼动画在Cocos的加载方式比加载1.6版本的骨骼动画要方便一些,只需要从资源面板中直接拖入Layer或者Scene的画布上即可。(1.6版本的骨骼动画需要使用自定义控件加载)

    未标题-1.jpg

    加载动画后,我们可以在属性面板中对骨骼动画进行一些设置,在特写栏目下,我们可以设置动画的播放。

    嵌套动画的类型有三种

    未标题-1.jpg

    SingleFrame表示只显示一个静态的动画(也就是骨骼动画的某一帧,下边的帧就是设定显示的帧数)

    未标题-1.jpg

    NoLoopAction与LoopAction的界面是一样的,这个用于设置播放的动画,下边名称指的是播放哪个动画。(NoLoopAction不循环播放,LoopAction循环播放)

    9.最后,我们可以在Layer或者Scene的动画栏中,设置在某关键帧切换骨骼动画所播放的动画以及是否循环的状态:

    未标题-1.jpg

    在程序中应用骨骼动画

    Cocos编辑器导出的骨骼动画可以很方便的放到Cocos的项目中使用,首先将导出的骨骼动画和图片资源拷贝到项目的Resource目录下。

    在Cocos项目中使用骨骼动画很简单(以C++为例)(注意:新版骨骼动画加载方式与1.6版本不同)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    //首先通过CSLoader读入Cocos编辑器导出的csb文件,并将CSLoader返回的Node转换为SkeletonNode*类型
    SkeletonNode* skeletonNode = static_cast(CSLoader::createNode("DemoPlayer.csb"));
    //获得到骨骼节点之后,可以对骨骼节点的Scale、Position等进行设置
    skeletonNode->setScale(0.2f);
    skeletonNode->setPosition(150, 150);
    //然后将骨骼节点添加到父节点上
    this->addChild(skeletonNode);
    //接下来,再次通过CSLoader读入Cocos编辑器导出的csb文件,创建一个ActionTimeline对象,这个对象存储着骨骼节点的所有动画
    ActionTimeline* action = CSLoader::createTimeline("DemoPlayer.csb");
    //我们为骨骼节点的动画设置一个tag值方便后边取出动画,建议这里使用枚举的形式来定义tag值(为了方便这里直接写100了)
    action->setTag(100);
    skeletonNode->runAction(action);
    //播放action中的动画(参数1:动画名称   参数2:是否循环播放)
    action->play("animation0"false);
    //我们可以通过每个骨骼节点上边的某个皮肤(图片)的名字来获取这"块"骨骼
    const std::string weapBoneName = "Layer20";
    auto weaponHandeBone = skeletonNode->getBoneNode(weapBoneName);
    //我们可以创建一个Sprite并把它加到刚刚获取到的那"块"骨骼的皮肤中
    auto weapSkinToAdd = Sprite::create("ArcherPeng/girl_arms.png");
    weapSkinToAdd->setName("Knife");
    weapSkinToAdd->setPosition(Vec2(135, 23));
    weapSkinToAdd->setScale(3.0f);
    weapSkinToAdd->setRotation(86);
    weaponHandeBone->addSkin(weapSkinToAdd, false);//加载到皮肤中
    //然后将新加入的皮肤显示出来
    weaponHandeBone->displaySkin(weapSkinToAdd, true);
    //当然也可以换回原来的("3"指的是"3.png"原先皮肤的名字)
    weaponHandeBone->displaySkin("3"true);

    上边我们谈到骨骼动画支持帧事件,下边我们来看一下如何注册一个帧事件的监听

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //通过我们之前设置的tag,从骨骼节点中把action取出来,然后给其设置一个事件监听函数
    skeletonNode->getActionByTag(100)->setFrameEventCallFunc([](Frame* frame)
    {
        EventFrame* evnt = dynamic_cast(frame);//先对frame的类型进行转换
        if(!evnt)
            return;
        std::string str = evnt->getEvent();//取得事件的名字
        if (str == "testEvent")//根据事件名字进行相应处理
        {
            CCLOG("testEvent");
            //TODO
        }
       }
    )

    通过以上步骤,我们就可以灵活的使用Cocos的骨骼编辑器制作出非常流畅且节约资源的骨骼动画了。

    对于1.6骨骼动画的兼容

    对于之前1.6版本制作的骨骼动画,Cocos编辑器是可以直接导入的, 文件->导入->导入1.6版本项目,选择1.6的骨骼动画项目即可

    未标题-1.jpg

    展开全文
  • 如何在Unity5.0 下实现贴图材质的Animation动画功能
  • unity如何播放父级的父级物体所绑定的动画功能
  • Unity 5.0 中酷炫的新动画功能

    千次阅读 2015-08-02 00:10:54
    作者:Unity - Pierre Paul Giroux  ...下面为你介绍有关新动画功能的简要概述,希望可以对Unity 开发者们有所帮助!  状态机行为(State Machine Behaviours)  在Unity 5 中,你将能够将StateMachineBe
  • CSS3中的动画功能之transtions和animations详解Transitions和Animations功能,这两种功能都可以通过改变CSS中的属性值来产生动画效果。一.Transitions语法:transitions: property duration timing-functionproperty...
  • (六)Unity5.0新特性------新动画功能

    千次阅读 2015-04-01 09:00:57
    unity 5.0 中的新动画功能这里是你可以期待的新动画功能快速概述 !State Machine Behaviours状态机行为在Unity 5 中,你会能够将StateMachineBehaviour 脚本添加到您的states,当played状态时能接收callbacks回...
  • 敬请期待新动画功能,下面是有关新动画功能的简要概述,希望可以对Unity 的用户们有所帮助!State Machine Behaviours在Unity 5中,可以在某些状态中添加StateMachineBehaviour脚本。某些状态出现时,将出现以下几种...
  • Unity5.0新特性------新动画功能

    千次阅读 2015-04-08 05:06:55
    unity 5.0 中的新动画功能 这里是你可以期待的新动画功能快速概述 ! State Machine Behaviours状态机行为 在Unity 5 中,你会能够将StateMachineBehaviour 脚本添加到您的states,当played状态...
  • C#实现幸运水果机抽奖动画功能

    千次阅读 热门讨论 2018-09-22 17:43:14
    由于最终奖励位置是已知的,此篇源码只是做出转动动画并停止在目标位置功能 public List<GameObject> rewardList;// 所有奖励列表 public GameObject signNode;// 停止标记 ...
  • # 参数self.listView就是要进行动画设置的组件,用返回的对象来进行设置 self . listView_Anim . setDuration ( 3000 ) # 设定动画时间 self . listView_Anim . setStartValue ( QRect ( 601 , 371 , 0 , ...
  • 在线展示 打开页面,网页会慢慢淡入; html: < .../* 动画只播放一次 */ } style > 解析: 通过在开始帧与结束帧中改变页面的opacity属性的属性值来实现页面的淡入淡出效果。
  • 一个常用网站点赞动画功能实现

    千次阅读 2016-11-22 15:11:25
    function dz(o){ $(o).find(".dianzan").toggleClass("on"); }
  • Cocos在更新到2.x版本之后,便没有了骨骼动画功能,使得开发者非常困扰。终于在本次更新中,Cocos编辑器将骨骼动画添加了回来!(注:新版本骨骼动画需要Cocos2d-x3.8版本) 骨骼动画与序列帧动画 序列帧动画是将...
  • Unity Mecanim动画系统 之 模型动画的复用(动画重定向)功能的简单实现 目录 Unity Mecanim动画系统 之 模型动画的复用(动画重定向)功能的简单实现 一、简单介绍 二、实现原理 三、效果预览 四、实现步骤...
  • 实现动画的停止功能

    千次阅读 2017-08-03 22:23:06
    本安全是实现动画的一个停止功能,我们的动画停止方法stop(),里面可以没有参数,也可以有参数,也就是说我们动画有3种停止状态,采用的方法就是”对象.stop()”。而且还能设置停止的参数,比如一个图案上面有三个...
  • MecAnim的动画融合功能

    千次阅读 2015-02-21 08:04:34
    其实MecAnim除了有状态机和动画分享功能以外,还有一个比较重要的功能,就是动画融合。  什么是动画融合?举个例子,就是你有一个人物跑步的动画,又有一个开枪射击的动画,那么你就可以把这两个动画融合成一个...
  • 动画系统的一些功能

    千次阅读 2013-08-21 00:23:20
    最近在做动画系统的一些重构工作, 顺便就看了下成熟的引擎的动画部分. 之前做过一个动作游戏的预研, 所以对这部分感触比较大, 因为相比业界一流的厂商, 动画技术可以说是国内游戏开发最落后的的一部分了在我看来, ...
  • css3动画与js动画比较

    千次阅读 2019-07-08 09:23:19
    优点 css3 CSS3动画在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来...部分动画功能无法实现(如滚动动画,视差滚动等) js S运算预渲染性能不如CSS3动画,因为CSS动画的transfor...
  • 3D动画实现游戏翻牌功能

    千次阅读 2016-02-01 12:12:39
    前言:最近项目要做一个类似游戏翻取宝箱的功能来代替以前的签到打卡的功能,一开始完全没有思路,就连3D的翻转动画都不知道怎么实现,更别说还要结合一些特别的UI交互,更是无从下手;在我两天按我的思路实现之后,...
  • Android开机动画总结

    千次阅读 2019-04-10 19:46:34
    开机动画制作开机动画两个要点启动开机动画开机动画运行过程代码位置运行简介开机动画遇到的问题 制作开机动画两个要点 压缩时选择“存储”模式...若要关闭开机动画功能,在device目录下的mk文件中配置,确保系统开...
  • Android动画框架(二)----属性动画

    千次阅读 2016-02-20 20:20:40
    Android提供三种形式动画:视图动画,帧动画,属性动画。...属性动画功能非常强大,几乎可以实现任何动画效果。本文首先介绍属性动画的工作原理,然后全面的介绍了属性动画的使用技巧,为了更好的使用属性动画,还详细
  • Extjs动画效果(自定义动画)

    千次阅读 2012-06-18 08:57:35
    Ext Core 通过预置的动画功能,可以让轻松实现动画功能。通过自定义动画配置,可实现更多的动画效果。动画完成后,可通过回调函数实现后续处理 Ext Core 动画 8 个定位点的值与描述值 描述tl 左上角t
  • 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很...
  • Libgdx播放Spine动画(2)-功能

    千次阅读 2016-03-11 12:14:35
    但在实际项目中,仅仅会这些还是远远不够,我们必须掌握Spine的一些高级功能,这样才能充分发挥Spine的特长,为我们的项目增添色彩。Spine的高级特性很多,但大多都是提供给动画设计师用的,程序这边只负责调用就行...
  • WPF翻转动画示例

    千次下载 热门讨论 2013-04-10 17:29:29
    本示例利用WPF中的三维模型,以及三维变换,再加以动画功能做出来的水平翻转效果,即图形绕Z轴旋转。
  • 最近在做动画系统,关于...例如我们的动画系统下有一个默认的Idle动画,Idle动画有Jump动画分支和Walk动画分支,而Walk动画分支下又有一个Jump1动画分支,当我们同时满足两个Jump动画的切换条件时,Interruption So

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 286,391
精华内容 114,556
关键字:

动画功能