Unity3D模型动态切割方案

在做项目时,美术那边提了一个需求,他们希望我们程序这边能用U3D来实现人物模型的被子弹击中爆炸的效果,也就是被子弹打中后怪物模型爆炸碎开的效果.

之前他们项目中的做法是,事先把模型切开,切成很多小块然后组装在一起,再在U3D中把每块模型步入刚体和碰撞器.

这次他们觉得这样工作量有点大,每个需要爆炸的模型都要事先切开,然后导入U3D,再处理. 于是把这个在U3D中动态切割模型的任务交给了我.我本能反应是先看看市面上的其他人的解决方案

发现并没有找到有用的方案,然后我开始找相关的插件.找到了 Shatter Toolkit 这个插件,这个插件就是用来切割模型的,而且可以自定义切开后的切口颜色.这样就很好办了.然后我按照插件上的

方法,用在了人物模型中,但是发现却切不开,于是我有弄了一个立方体,发现切开毫无问题.为什么我的人物模型切不开呢? 仔细研究发现,原来人物模型上有骨骼.如果模型带骨骼的话这个插件是切不开的.而且这个插件需要在被切割的模型上加上网格碰撞器,这是非常耗资源的.于是这个插件不可取.只能另找其他方法了.

然后我有陆续找了一下插件发现都是无法切开带骨骼的模型的,研究发现这些插件也是通过 UvMapper 获取模型上的顶点然后分解为小模块再新建出对象加上碰撞器和刚体,这样每个模块又可被分解.至于为什么带骨骼的切不开,当时没找到原因,但是可以确定的是确实是因为骨骼的原因.

于是,切割方案还是用了以前的方案进行.但是如果是普通的模型比如箱子之类的是可以使用Shatter Toolkit 这个插件的.

QQ截图20161107161634.jpg