主要还是以体验为主,毕竟只有半个学期的流程。实验报告既然写了也就顺便发上来了。
《动作捕捉技术与应用》课程实验报告
-
动作设计及简单描述
动作蓝本选择第三套全国中学生广播体操希望风帆

-
动作数据采集方案设计
使用诺亦腾的惯性动捕设备进行动作捕捉,动作捕捉软件为Axis Neuron,模特为小组三人轮流体验的方式进行。
捕捉动作规划为动作组合的部分采集以及整体的广播体操的动画采集。
-
动作数据采集
- 穿戴设备。设备分别在各自的包里照着说明书只要别看错就没问题。
- 校准传感器。运气比较好大多数传感器以及设备都是一次成功,没有闪烁的传感器予以更换。
- 连接软件。因为在实验过程中发现有线连接方式更加稳定所以选择了有线的方式,但是动作幅度有所限制。
- 采集。开始录制之后结束并导出。Fbx格式一开始因为格式问题无法导入blender导入unity成功,后更换为bvh格式解决。
- 采集图片

-
动作数据与模型绑定
总体分为两部分,blender和unity的动作导入
-
Blender的导入
- 使用bvh格式动画直接在blender中导入,注意导入的方向需要调整,前进方向从-z改为z。


- 模型的导入以及骨骼调整,使用了vroidstudio中生成的模型。Vroidstudio是一个unity编写的3d虚拟人物生成器,可以快捷的制作人物模型并且运用于vr或者虚拟直播。(好像没有版权要求)
- 使用rokoko插件对bvh的骨骼和模型骨骼进行对应映射。插件会根据T字姿势对骨骼进行映射但是还是需要自己对骨骼映射进行微调。注意需要把模型的朝向根据动作朝向进行调整。

-
Unity中的动作导入
- unity中不需要自己去做骨骼映射,因为有内置的骨骼动画引擎。只需要设置humanid动画类型,直接拖进assets里就可以了。

- 在动画编辑器里直接导入对应动作并使用程序进行触发器控制就可以了

-
动画合成
动画合成使用了blender软件。合成的步骤可以简化为导入动作->场景建模->环境光照->相机动作->输出并且微调
- 导入动作:基本参照前文,编辑模式下骨架如图

- 场景建模:简单搭建一个太空场景,使用多个修改器来简化建模操作,实际建模部分只有图中高亮部分,shader也只有4个类型没有去找uv所以比较简陋,世界环境使用hdr贴图实现,背景地球使用uv贴图加透明通道贴图实现。



- 因为使用blender自带的光追渲染器cycles对电脑的gpu性能需求过高,估计借同学的2080ti也跑不出来完整的视频而且对于光追的效果也不需要过度追求,所以采用eevee渲染器(最近刚公测的ue5的新光追渲染器性能开销就很离谱了,lumen的真实全局光照,自发光材质不用再自己加灯光了,nanite的三角面精细模型性能开销也被大大优化了,体验过demo之后发现确实这才是新的图形学发展方向),在已有的自发光材质基础上添加面光实现光照效果。在外太空走廊上面添加一个平面来实现对全局太阳光的遮罩。


- 相机动作其实和之后的调整也是互相结合的,一边调整一边改变相机动作(有大的穿模的时候就考虑切到看不到的角度)

- 最后的微调其实包括了对模型头发和一些部位的运动调整,并没有使用效果更好的布料模拟也是因为性能开销吃不消。使用了wigglebone插件来对模型的头发和没有运动数据的骨骼进行运动解算,需要注意的是每一个部位的骨骼要根据需求进行细节上的微调,例如额头上的头发的旋转振幅较小而长发部分需要加大,下面的缩放设置也需要微调来形成比较好的观感。预览完成没有问题的话记得进行烘焙(模型缩放一定要是1不然会卡死)。还有表情动画要在顶点组里调整权重动画。我这里只用了两个顶点组一个是闭眼一个是打哈欠,其实可以考虑用噪波来实现表情自然的小动作。一大堆东西调整完之后输出差不多就是这样了。



还有一部分就是unity的动作树,把动作导入进去然后绑定到操作上。

-
动画合成结果截图
- gif好像有点太大了,尝试用pr压一压
