【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果

如果要想做到如下图的爆裂、炸裂、碎裂效果特效:


自己手写可不容易,因为需要利用《【Unity3D】Mesh》(点击打开链接)将一个物体分解成多个碎片,然后再写一系列的方法。此时可以利用到Unity3D的一个插件Fracturing & Destruction,官网上60美金,但用和谐的我,也给大家上传了一份:http://download.csdn.net/detail/yongh701/9845202

上述例子具体实现方法如下。

一、场景布置

1、基本的几何体设置如下图所示,没啥好说的。


2、之后导入Fracturing & Destruction 1.11.unitypackage组件。


3、之后可以如图【Create Other】->【Ultimate Game Tools】->【Fractured Object】添加一个Fractured Object。


4、对于Fractured Object设置如下图所示,Source Object就是要被碎裂的物体,Start Static勾上是指一开始不碎裂。Chunk Physic Material选择Rock也只有这种可以给你选。Fracture Method有两种,一种是BSP,是严格地按照方框装切割物体,表现的碎裂的方式是物体内部的张力较大,就是你手撕鱿鱼片的感觉,对于普通物体不太真实,但耗资源少。这里选择Voronoi这种方式,同时在Cells in Local XYZ增大倍数,意思在XYZ方向上产生更多的碎片。Interior Material应与这个墙的材质保持一致。


设置完毕,点击Compute Chunks计算碎片。这里的Cells In Local X Y Z设置9x9x9=729块碎片,如果机器配置不行或者Unity3D版本低可能会报错或者死机,修改为4x4x4=64块碎片,重新点击Compute Chunks计算碎片。询问是否将原来的模型隐藏,选择是,然后就会形成一个又无数子模型组成的原模型来替代。如图所示。


5、之后给球【Componet】->【Physics】->【Rigidbody】加上一个刚体属性。并且同时调大球的质量为10,让它足够重去撞碎这堆墙。之后就可以开始脚本的编写。


二、脚本布置

给球加上如下的一个简单脚本Push.cs,就能看到效果。

[csharp]  view plain  copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Push : MonoBehaviour  
  5. {  
  6.   
  7.     void Start()  
  8.     {  
  9.         rigidbody.velocity = new Vector3(0, 0, 50);  
  10.     }  
  11.   
  12. }  
很简单,就一行的力,这里只是让球有一个向墙的、极高的初始速度,足以像子弹一样将墙撞碎。不要用《【Unity3D】用鼠标点击事件、AddForce完成跳跃与二段跳》(点击打开链接)加力的方式,因为根据牛顿第一定律,物体是有惯性的,给物体就算加再大的力,也很难在初始得到如此高的动能,你只是能得到一个很高的加速度罢了,得不到这种效果。

而且这里的速度不能设置得过高,因为如果速度过高,Unity3d会有Bug,认为这个球在瞬间会有极高的位移,出现球穿墙的bug。Unity3d的物理引擎认为就是像你迅速挪动桌布一样,不会对桌面上的物体有任何影响,球也是无法击碎墙的。

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值