灵感来源:https://www.bilibili.com/video/BV1Qf4y167Fq

有技术爱好者做了个 JS 版的 Manim,以方便用户使用 JS 编程来生成想要的视频动画,生成动画视频文件以分享到社交媒体。

为什么大家不想用 Adobe 全家桶?

Flash 做复杂动画实在太繁琐了,AE 太重量级,而且闭源收费启动慢。
而且很多软件细节都是为了历史兼容性,渐渐与时代脱节。

我看了一下他的 源码库 感觉他灵感思路很好。但 alpha 版设计思路槽点太多了,不如自己撸一个 JS 动画渲染框架。我的设计原则是:

  • 引入 Flash / AE 的设计模式:MovieClip、图层、素材箱……使其写成类似的面向对象 JS 模型,方便设计师理解使用、减轻编程学习负担
  • 如无必要,无添麻烦。简单就是美
    • 以 HTML5 Canvas 画布标准为核心,而非 three.js。减轻图形库制作者的学习成本
    • core 库是轻便级的,数学公式、3D、特效……拆分成不同的包
  • 提供友好的动画编程调试界面(可随时播放、暂停、浏览查找所有素材),以及方便的合成 CLI 接口
  • 动画编程 API 兼备声明式的直观易懂,也具提供命令式的方法,总之让设计师编程时不需要太多的心智负担来理解

高级:

  • 云渲染
  • 可几乎无缝地集成 Echart AntV three.js 等漂亮的前端库

我想要收集一些相关的技术资料或思路,或者是你宝贵的 PR~

刚开始关注BIM的时候关注过个话题,主要关注点是跨平台。

请问这个网站里的动画效果是怎么实现的?感觉好复杂也好精美,达到这种水平的见过的很少。

9 天 后
11 天 后

动画不就是图像的一系列变换的可视化嘛。我对这个挺感兴趣的,并且我还跃跃欲试,目前有两个站在巨人的肩膀上的方案。个人感觉是非常有可行性的,而且难度不会特别大。

一个是利用游戏引擎,例如最近新出的Cocos Creator3.0版本是一个完全3D的游戏引擎,一个游戏引擎已经把开发环境、渲染优化、调试等非常多的方面做好了,可以实时做到在浏览器上调试。Cocos Creator可以用JS或者TS进行开发,利用它实例化一个sprite节点就可以在屏幕上渲染出一个实例,再利用缓动系统 cc.Tween就可以实现sprite的动画效果(例如移动、放缩、旋转、染色、透明度等),甚至可以给它加一个shader来实现更加高级的动画效果。缓动系统已经包含了许多已经写好的缓动函数(类似manim那样),例如smooth,fadeIn,fadeOut,sineIn,sineOut等等。

使用Label就可以创建文字,当然可以设置字体样式、颜色等属性,如果结合KaTeX或者MathJax来生成图像,就可以渲染公式了。

不过其还是有劣势的,就是Cocos Creator游戏引擎对SVG的支持并不是很好,但自己造个轮子实现SVG的渲染,然后实现像Manim那样的TransForm应该是可行的。

第二个方案是使用3D建模/动画软件 Blender ,不过这就是一个Python的故事了。Blender这个软件完全开放了大量的Python API,可以直接使用这些API进行操作(例如放置一个立方体、设置材质、改变位置、缩放、质量等等),同样也支持通过设置shader实现非常高级的动画效果。当然,三维的物体也不过是一堆三角形的面和点嘛,也可以像Manim那样实现点的映射,然后通过点的平移动画实现看起来非常高级的TransForm动画。当然在调试方面就直接依赖于Blender了,优势是这个的扩展性非常高,不仅可以直接在软件内预览,还可以使用Blender渲染导出任意分辨率格式的视频(Blender正如它的名字,几乎干啥都行<三维建模、三维或者二维动画、绘画、渲染器、视频剪辑等等>)。劣势是这个工作量会比较大。

如果觉得我的想法不错的话,其实我们可以一起去把它实现 : )

    没看懂,跟已有的图形库 three / pixi 等相比有什么不同和优势吗?以及为什么提到学习成本,难道要做到可见即可得?或导出生成即可用?

    像这种的话,开项目最重要的还是搞清楚这些事情:

    这个东西

    1. 想要解决谁的问题?
    2. 解决什么问题?
    3. 怎么解决这个问题?

    具体到这个项目,是要给程序员用吗?还是要给设计师?是什么导致程序员/设计师目前做这件事情不方便?这个项目又如何使得它变得方便?这些才是能产生价值的东西,缺少这些思考的话,技术上的先进也只是华丽的玩具而已。

    当然我个人是不反对以探索技术为出发点的“造玩具”,相反我认为这样是很锻炼的一件事情。不过如果是希望这个项目能够吸引到一定的开发者,并且形成一定的社区的话,思考清楚这前几个问题还是十分必要的。

    HK-SHAO 看到你今天在Cocos上分享的文章了哦。我也是Cocos社区的老人了。如果不嫌弃,邮件联系下我(josephpan[AT]tencent.com),咱们加个微信聊聊 🙂

    © 2018-2025 0xFFFF