Unity【Dynamic Bone】- 关于人物模型头发、衣物等细节的处理

关于Dynamic Bone的介绍:

Dynamic Bone是一个Unity的动态骨骼插件,这个插件允许开发者指定对应的根骨骼,从而允许该骨骼的子骨骼进行物理结算,而根骨骼将不进行物理结算。DynamicBone模拟的物理结算不会导致骨骼距离发生变化,也就是说,DynamicBone并不适合模拟凝胶、橡胶等各方向形变明显的物体,这样的物理模型更加适用于模拟头发、绳子等这些不容易拉伸但容易形变的物体,运用在衣物上时,则需要看衣物材质是否容易拉伸,如果容易拉伸依然不适合用。

本文以人物头发的处理为例,介绍插件的使用方法:

首先要确保模型中包含头发的骨骼节点,单纯的一个头发模型是不能用的。

该想要控制的节点添加Dynamic Bone组件,Root设为该骨骼节点:

调整其核心属性值:

1.Damping 阻尼:可以理解为阻力,值越大运动幅度越小

2.Elasticity 弹性:可以理解为灵活性,值越小,回弹的力越小

3.Siffness 刚性:可以理解为僵硬程度,值越小,看上去越柔软

4.Inert 惰性:值越大,当物体运动时,其运动幅度越小

具体可以调整属性值查看其运动效果,除了这些核心属性外,还要设置Dynamic Bone Collider,来防止头发运动穿模现象,如下图所示,头发在运动过程中会穿过肩膀模型: 

因此在肩膀处添加Dynamic Bone Collider节点,并根据模型适当调整Collider大小及位置:

并将其添加给头发的Dynamic Bone组件中的Colliders:

查看效果:

  欢迎关注公众号 “当代野生程序猿”

猜你喜欢

转载自blog.csdn.net/qq_42139931/article/details/123426476