动态骨骼简介:
Dynamic Bone 是 Unity 的动态骨骼插件。 该插件允许开发者指定对应的根骨骼,使得该骨骼的子骨骼可以进行物理结算,而根骨骼则不会进行物理结算。 DynamicBone模拟的物理沉降不会导致骨距发生变化。 也就是说UI界面,DynamicBone不适合模拟各个方向变形明显的物体,比如凝胶、橡胶。 这样的物理模型比较适合模拟头发、绳子等不易拉扯的东西。 可伸缩但容易变形的物品,用在衣服上时,需要检查衣服的材质是否容易伸缩,如果容易伸缩,还是不适合使用。
本文以人物毛发的处理为例unity 模型旋转,介绍插件的使用方法:
首先,确保模型包含头发的骨骼节点。 不能使用简单的头发模型。
将Dynamic Bone组件添加到你要控制的节点,设置Root为骨骼节点:
调整其核心属性值:
1、damping阻尼:可以理解为阻力unity 模型旋转,数值越大,运动幅度越小
2.Elasticity:可以理解为柔韧性,数值越小,回弹力越小
3.Siffness rigidity:可以理解为刚度,数值越小,看起来越软
4.Inert:数值越大开发学习,物体运动时的运动幅度越小
具体可以通过调整属性值来查看其运动效果。 除了这些核心属性外,您还需要设置 Dynamic Bone Collider 以防止头发穿过模型。 如下图所示,头发在运动过程中会穿过肩膀模型:
因此,在肩部添加一个Dynamic Bone Collider节点,并根据模型适当调整Collider的大小和位置:
并将其添加到 Hair 的 Dynamic Bone 组件中的 Colliders:
查看效果: