Unity3D捏脸+衣服摆动技术介绍

Posted 海洋_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D捏脸+衣服摆动技术介绍相关的知识,希望对你有一定的参考价值。

在前面的博客中介绍过关于变形的实现方式,使用的是球体,本篇博客结合着游戏开发中的捏脸以及角色衣服随动作摆动效果,因为二者在目前的游戏开发中使用的非常多,借此给读者通过案例的方式给读者介绍一下。

捏脸实现

捏脸效果,在MMORPG游戏中使用的比较多,比如:《楚留香》、《荒野行动》、《猎魂觉醒》、《琅琊榜:风起长林》、《九州天空城》等等。MMORPG游戏的捏脸系统还是做的比较强大,但是原理都是一样的,捏脸系统可以采用Morph和骨骼实现,如果实现表情可以使用Morph因为要求比较精细,当然也可以使用骨骼,只是相对来说骨骼比较麻烦一些。Morph实现原理是事先设计多个脸部表情,数据量比较大。而骨骼做捏脸相对来说,可控性较高,而且数据量也小,所以大部分游戏都是用骨骼来实现捏脸的。使用骨骼实现需要设计一些关键点,这些关键点的数量是根据捏脸部位不同而不同。如下图所示:

在改变某个骨骼时,会影响到多个骨骼数据,每个骨骼数据只影响某条骨骼的某个值,实现效果如下所示:

骨骼变换时会涉及到矩阵变换,我们在固定流水线中介绍过,顶点的矩阵变换,模型的顶点在变形之前先从局部坐标转换到世界坐标,变形完后再从世界坐标转换到局部坐标,实现的效果如下所示:


角色的变脸就完成了,详情自己看一下代码下载地址:链接:https://pan.baidu.com/s/1-kQUMZ1tY4pZ3H7Z_8Si3g
提取码:d23h

衣服摆动

衣服摆动实现方式有两种:模型骨骼动画,物理计算;骨骼动画就是通过Max或者Maya对衣服布料进行骨骼绑定,这种方式实现的布料不自然而且摆动样式固定。另一种实现方式是对布料进行蒙皮但是不绑定骨骼动作,只是作为物理计算的关键点。如下图黄色所示的点,这些点就是作为物理计算的关键点。

弹簧的原理大家了解,通过一个点的运动可以带动弹簧上其他点的运动,我们再把骨骼的关键点串联起来,这样就实现了衣服跟随动作的摆动,实现效果如下所示:

上面的动图我们没有做任何动作,只是通过鼠标拖动就实现了衣服摆动的效果,而且效率还是不错的,代码会在后面整理后放上。

总结:
之所以把二者结合起来,因为它们都是通过绑定的骨骼进行变形和做物理运算,本章介绍的3D捏脸和衣服摆动不是新技术了,几年之前就实现过了,这里只是再回顾一下,帮助读者梳理一下思路,实现起来不难的。实现模型以及绑定骨骼需要美术完成,程序在此基础上进行代码编程实现。

以上是关于Unity3D捏脸+衣服摆动技术介绍的主要内容,如果未能解决你的问题,请参考以下文章

Unity 物理系列六 布料

简述unity布料系统可以摸你哪些现实物体

[C#]请问如何消除unity3d中ConfigurableJoint关节的停转后的摆动(惯性引起的)?

转 旧衣服不要扔,竟然还能这样改造,美翻了!

unity3d 中如何让一个物体一端固定,另一端随另一物体运动,就像弹簧一样

Unity3D UGUI之ScrollView弹簧效果