美文网首页
spine网页

spine网页

作者: 罗Q | 来源:发表于2019-07-03 19:54 被阅读0次

    今天主要做了spine的研究

    1. spine动画和live2d的区别

    2. 网页动画的原理和分类,为什么spine动画能够在web中运行
      网页中的动画分为属性动画和帧动画。
      属性动画就是通过改变dom元素的属性如宽高,字体大小或者transform的scale,rotate,就是对dom元素的属性改变,在一段时间内:属性值按照时间函数变化来实现。
      帧动画:在一段时间内按照一定速率替换图片的方式来实现。

    spine是针对游戏和软件2d动画的制作的,spine runtime使用一个小图片合成的大图片。
    spine在网页中引用可以用canvas的spine runtime来实现

    1. 如何接入ts项目,实现spine动画的原理
    2. 如何在项目中封装方便创建的动画类和操作动画方法
    3. 分析网页性能包括:内存和cpu占用情况

    待研究的问题

    1. webpack4最大的变化在于:commonplugins的废除改为了splitplugin,并且在实现零配置,可以设置mode为development和production,默认为production,会进行自动分包:自动分包策略是什么,为什么我的项目没有自动分包。
    2. webpack对资源的处理,还是没有彻底搞清楚对比如图片和各类资源的打包策略

    webgl和canvas的区别:
    canvas是载体,canvas 2d相当于获取了内置的二维图形接口,canvas 3d是获取基于webgl的图形接口,相当于三维画笔,你可以选择不同的画笔在上面作画

    [动画特效选择][https://juejin.im/post/5cc08848e51d456e7618a6ee#heading-2]

    游戏引擎:渲染引擎,物理引擎,碰撞检测系统,音效,脚本引擎,网络引擎,场景管理
    白鹭: 本身不支持spine动画,需要插件,本身支持的是dragronbone
    cocos
    layaAir
    phaser: 也不正常
    这类3d的游戏库都是封装的spine-webgl.js,也就是spine-runtime的canvas的webgl版本

    渲染引擎:
    pix.js:2d动画渲染引起 :我用pix.js接入不正常,目前还不知道什么原因,可能是需要3d的支持
    babylonjs
    three.js 3d渲染引擎: three.js接入正常

    结论:可以直接使用spine-webgl runtime来嵌入spine动画,获取选择一个渲染引擎来做动画的渲染。

    spine动画调研背景

    live2d具有性能问题,并且制作成本较高。

    spine动画在网页端运行条件

    spine在网页端能够基于canvas2d或者webgl来运行,官方提供了一些运行库, 第三方的游戏引擎和渲染引擎也有很多集成了spine-runtime,选择其中几个进行测试(ps: 白鹭本身不支持spine动画,第三方的的包在通天塔项目中尝试过动画会出现问题),结果如下:

    官方运行库 结果
    spine-canvas.js 渲染异常,会有重影
    spine-webgl.js 动画效果正常
    第三方游戏引擎或渲染引擎 结果
    pix.js 渲染异常,贴图错位
    phaser 渲染异常
    three.js 动画效果正常

    总结:测试动画需要的运行条件须为webgl,使用three.js和spine-three.js可以方便的接入到项目中。

    spine动画对比live2d内存占用

    利用chrome memory进行内存占用快照

    1. spine动画内存占用


      spine动画内存占用
    2. live2d运行内存


      live2d.png

    结论:初步分析spine动画运行时项目所耗内存平均值大约为87mb,live2d内存平均值大约为105mb,从内存占用来看spine动画具有优势。

    相关文章

      网友评论

          本文标题:spine网页

          本文链接:https://www.haomeiwen.com/subject/mjnflqtx.html