......话说,Unity酱作为形象代言人,真是忙啊o((>ω< ))o,每天都来帮我们实现各种效果,任劳任怨,还默默无闻。但是有一说一,主要原因还是因为Unity酱各个设计,制作都是比较规范,且考虑周全,适合制作各种效果的。 好了,我们进入正题,如何从零开始制作人物的物理效果呢?

此功能需要美术大大和程序大大们参与

当然了,厉害的技美大大们也是可以独当一面的。制作人物物理效果,有很多方式,常见的方法,就是在做人物动画的时候就设计好,但是这样就出现一个问题,人物衣服动画都是提前设计好的,就会导致有时候动画与实际交互不符,对于高要求项目来说,明显不可取。 我们都知道,制作人物动画一般都是基于骨骼绑定来制作,那么衣服,头发等我们需要和交互结合的骨骼部分,最好的方法当然是通过代码来控制其走向啦~ 这就要求我们在制作模型的时候,就必须给衣服、头发、胸部、首饰等地方也绑定骨骼,骨骼绑定越精细,人物的物理效果越自然,当然性能要求也会增加。 CG上的制作有时候还需要绑定肌肉,游戏中少见。 先放一张,汪汪最近在弄的一个模型骨骼,这里胸部并没有添加骨骼支持: 我们看一下更改裙子骨骼会发生什么: 裙子更加蓬松了! 于是乎,我们想到,通过程序,来控制骨骼的旋转,移动方式。 假如这是一个后裙摆,当我们人物往前走的时候,以我们的人物中心为参考,这些骨骼按照惯性影响,移动的时间,距离,都是不同的。骨骼越往前,延迟越小,越往后,延迟越大。紧贴身体的部位,肯定没有多大活动空间,但是没有紧贴的,就会在人物的带动下,过了一段延迟后,才会受到力的影响。女性胸部物理,同样是这个原理,只是胸部倾向于上下延迟位移。 说明完原理后,我们进入正题: 这里汪汪并不贴代码,因为Unity官方已经在不经意间把这个插件提供给我们了,当然,小伙伴们如果觉得效果不好的,可以尝试自己实现,就是利用延迟移动。 小伙伴们可以在商店里找到SDUnity-chan的资源,里面的脚本就是骨骼物理脚本,这个脚本最早应该起源于Unity日本的Unite In the Sky工程文件: 现在给出测试动画,我们不使用官方动画,使用汪汪自己找的人物骨骼动画,动画里只有人体骨骼信息: 我们可以看到动画是挺好看的,但是感觉没有灵魂啊~ 我们先观察Unity酱的骨骼: 我们可以看到,Unity酱的骨骼其实很细致,丰富,该有的都有,我们现在要做的,就是让这些没有被动画驱动的骨骼,动起来,大家有兴趣,可以在Unity的骨骼界面中,拖动各个骨骼来查看模型的效果,这里我们使用官方脚本来实现: 首先设置SpringBone: child下设置此骨骼的子骨骼,子骨骼又添加SpringBone,再设置,不停重复,最后一个不添加。 这里汪汪为了方便,自己写了一个添加工具,在最顶级添加脚本后,点击Add,就能一并加到底,不需要进入PlayMode: 然后是碰撞的添加: 这个主要用来控制我们骨骼碰撞的,避免头发,裙子穿过身体。 最后一步,就是添加一个SpringManager,并在SpringBones下添加我们刚开添加的脚本物体: 同样,为了方便,汪汪也写了一个小工具,一键添加,一键查错: 最后我们看看效果吧!!
Logo

分享前沿Unity技术干货和开发经验,精彩的Unity活动和社区相关信息

更多推荐