欢迎参与讨论,转载请注明出处。
前言
恰逢假期,在家继续推进Demo,骨骼动画相关的调研算是告一段落了,遂以本文记录相关要点。
首先要明确一点,本文所说的骨骼动画皆是3D模型的骨骼动画,与2D精灵的骨骼动画无关,虽然原理大致相通。
网格、骨骼、绑定
了解过3D相关知识的都知道,模型(Model)是由一个个三角形组成的,而这种三角形的学名则是网格(Mesh)。当然在DCC软件里为了方便创作,会用2个三角形组成四边形作为网格:
然后便是骨骼(Skeleton)了,它是驱动模型运动的根本,如下图所示,这是一种彼此之间有父子关系连接在一起的长条状玩意:
最后便是让模型跟着骨骼一起运动了,这个骨肉融合的过程称为绑定,具体要做的事便是将某节骨骼与相关的网格建立关系:
如上图所示,模型上有着不同的颜色,这表示该节骨骼所影响到的网格权重值(蓝色为0,红色为1),所以绑定也俗称“刷权重”。权重值越高,该节骨骼对相应网格的影响便越大(存在多节骨骼对相同网格存在影响,此时便要通过权重值来决定优先级了)。
随着时代的发展,现代DCC软件基本配备自动刷权重的功能了。做好模型部件的划分(每个部件拥有独立的骨骼,通过各骨骼之间建立关系来联系模型),减少每个模型的权重复杂度,如此通过自动刷权重基本可以应对一般情况了。
模型与动画
生成给Unity使用的模型与动画我选择FBX格式,毕竟这算是最流行的3D格式了。对于动画,我选择一个动画一