这篇博客介绍了我在近期针对于Unity的DynamicBone插件进行迭代,从而实现近布料模拟的方法。
由于部分涉及到工作内容,因此询问了部门老大后决定本博客将只介绍迭代思路,不涉及到具体实现,也不会放出对应图片。
背景
来上海也有近两个月了,近来也差不多安定了下来,也是时候恢复写博客的习惯了。
最近的任务就是针对于Unity下的DynamicBone
的迭代,让其能够更加适配于我们自己的项目(主要是布料的模拟)。
关于原生的DynamicBone
原生DynamicBone介绍
DynamicBone
是一个Unity的插件,可以用于针对骨骼进行物理模拟。由于开放源码并且工具链集成方便,因此颇受项目青睐 —— 我也是通过直接阅读该插件的源码来逐渐接触Unity开发的。
DynamicBone
开放了Damping
,Elasticity
,Stiffness
,Inert
等物理属性接口,并且开发者可以通过配置DynamicBoneCollider
来配置相应的碰撞体,来进行碰撞结算。
DynamicBone
允许开发者指定对应的根骨骼,从而允许该骨骼的子骨骼进行物理结算,而根骨骼将不进行物理结算。换句话说,这样的物理模型更加适用于例如尾巴、马尾、Ragdoll等带有明显层级结构的物理模拟。
直到我入职为止,DynamicBone
已经更新到了1.1.7版本。需要吐槽的是……在阅读源码之后,我个人认为对应的物理模型和结算逻辑经过作者的多次改动后,似乎已经比较混乱了。例如对应的Force和Gravity结算、外力结算的Integration都不太好阅读。