先说一下,制作卡通水效果的文章,之后马上就更新。之前学校到期末了,比较忙,没时间写文章了。
大家好,许久不见,今天我来写一期科普文章,主要是为接下来的一篇关于动画的文章做铺垫。好,我们直接开始讲
要理解三维动画的原理,就要先理解三维模型的原理。如下图,一个最简化的三维的立方体就是由八个顶点组成的。
而想要让这个模型发生一点形变,修改其中一个顶点的位置即可了。也就是说,构成三维模型的基本信息,就是点、线、面。
在一个三维的空间里,一个物体所能做到的所有的动作,其实,无外乎也是三种:移动,旋转,缩放。如果我们不考虑改变颜色之类的情况,最基本的三维动画确实都是由前面提到的三者构成的。
这三者可以作用于物体本身,让整个物体移动、旋转、缩放。也可以作用于点、线、面中的任意一个或多个,使得物体产生形变。比如这样:
这便是最基本的动画了,这种动画也可以称为顶点动画,也就是逐个顶点的进行修改的动画。单独修改边或者修改面的动画也被视为顶点动画,因为修改边和面,本质上就是在修改点。这里需要注意的是,一般对于顶点进行旋转和缩放是无意义的,因为顶点和顶点之间的连接一般不受顶点当前朝向角度的影响,而顶点本身是没有空间大小的,因此对于其的缩放也不会产生任何的变化。
虽然依靠着对物体、点、线、面的移动、旋转、缩放,已经可以从理论上帮助我们实现任何现实的三维世界中可能或者不可能出现的动画了。但是,当我们开始制作人物动画的时候,就会很快的遇到麻烦。一个人体的模型,通常有数千个,数万个,甚至百万个顶点。
这个模型算是一个低模。搭配上精细的贴图,放在《DOTA》或者《LOL》等俯视角的端游,或是高画质的手游里是没有什么问题的了。
而他的顶点数有5851个,面数有6994个。如果我们想要手动调整这么多的顶点,已经是个噩梦了,更别说3A游戏或者是电影里的模型了。而且,没有坚硬外皮的生物,在运动的时候,表皮会经常出现各种各样的拉伸和形变,这也给为生物制作顶点动画带来了极大的阻碍。
于是,人们想出了一个妙招,人的皮肤和肌肉等这些顶点很多的柔软组织,实际上都是依附在骨骼上的,而骨骼本身是不会产生多大的形变的,所以我们参考现实中的这种现像,让这些具有柔软表面的生物的模型也依附在骨骼上,不就完成了吗?
因此,骨骼的概念应运而生,人们不需要去移动那么多的顶点,而是去移动和旋转这个虚拟的骨骼,就可以让模型进行合理的形变,使其看起来就像是在运动的一样。
不过,我们好像忽略重要的一步,我们有了模型有了骨骼,但是怎么告诉电脑,骨骼该如何去影响模型呢?这时候我们就有了一个叫做蒙皮(绑定,Rigging)的工作,也就是,我们先需要告诉电脑,每一个骨骼都会影响哪些顶点,以及多大程度的影响这些顶点。这一步,通常可以先交给电脑先进行粗略的自动蒙皮,然后再手动进行精细的调整。
上图就是,当我们完成了蒙皮这项工作之后,我们可以看到一个骨骼都影响了那些节点,以及其影响的程度。上图中我们选择了盆骨的骨骼,可以看到,颜色越接近亮红,则代表盆骨骨骼对其影响越强,越接近纯黑,则代表盆骨骨骼对其影响越弱。
Tips:盆骨骨骼一般是人形生物的根骨骼,所谓根骨骼,就是所有其他的骨骼都是在这个根骨骼的基础上长出来的。移动根骨骼,会带着所有其他骨骼一起动。
如果我们给不同骨骼的影响力用不同的颜色代表的话,那么我们就可以得到如下图所示的所有骨骼的影响力分布图:
这样我们就可以很轻松的完成动画了。而且,相比起记录诸多顶点的顶点动画,只记录骨骼的信息可以大副的减小动画文件的大小。
接下来,很快会更新一期关于利用三维模型制作2D像素动画的文章,再之后就是之前的卡通水特效了,先给各位预览一下效果:
单纯制作这段动画只用了不到20分钟的时间,效率还是非常高的。(这里说的是不包括建模,绑骨骼,和制作渲染器的过程,而只包括三维和二维动画的制作)
评论区
共 29 条评论热门最新