Blender 制作碎裂效果并导入unity
Posted on Fri 26 November 2021 in Blender
首先,摆一个地面和要碎裂的物体
注意被碎裂的物体不能有面的穿插,例如互穿的两个cube,ctrl+l并在一块是不行的,可以用boolean的union来做处理。
首先我们来做碎块。
在blender的插件列表中搜索Cell Fracture并启用这个插件。
选中立方体,按f3,输入cell,调出菜单开碎
最简单的设置只要改两个选项,Source Limit 是碎出的块数,Noise是随机扰动
点击OK,一个碎裂物体就生成了,并和原本的叠在一块
删掉原物体,Shift+A添加一个空对象
空对象在场景中显示为两个十字叠起来的坐标轴
将碎块parent到空对象上。
然后我们将所有碎块加上物理模拟。
选中所有碎块(不要包含空对象),点选物理选项卡,再点击Collision和Rigid Body
展开Collision,调整一点摩擦力
然后做这个操作复制刚体到所有碎块上。
这样碎块的物理就设置好了。
现在物理可以运行了,但是会直直的掉下去。所以我们还需要做一个地面。
选中plane,依然是Collision和Rigid Body两件套。随后展开Rigid Body的设置,Type改为Passive。
现在按空格键播放动画,就可以看到掉落碎裂的过程了。
这样一来,效果已经实现,流程也即将结束。
接下来我们把物理模拟烘焙成顶点动画:
完成之后时间轴上出现很多的点。这时即使我们删掉物理模拟,碎块还是会按照轨迹播放。
最后我们需要导出动画到游戏引擎。
首先修改动画时间轴上的End来获得一个合理的帧数
接下来选中空节点和所有碎块,File -> Export -> DAE
不用fbx是因为fbx不支持这种动画,所以用fbx导出到unity会发生很可怕的事情。外网有个哥们做了解释:
另外abc格式也可以,但是unity要装个package(见参考)。
导出的时候选一下Selection Only,不然整个场景都被导出了。
进unity看看:
完事。
参考:
https://blenderartists.org/t/cell-fracture-physics-fbx-export/1227694
https://docs.unity3d.com/Packages/[email protected]/manual/index.html
https://youtu.be/ihY4KkSXfhI