破坏效果相关设定基本都可以在可破坏网格的属性界面进行调整,当前UE4版本中的碰撞面板只能产生深度为1的Voronoi破碎效果,一般情况下足够使用,如果需要更复杂的破碎效果,如敲破墙壁,需要借助Apex来制作后导入引擎(可以搜索官网),破碎相关的属性有几个概念比较重要。
1.支撑(Support):一个可破碎的物体在实际的物理世界中不会一受力就全部瓦解,因为物体与世界以及物体内部之间有支撑作用,支撑作用就是用来模拟这个效果的。
2.碎屑(Debris):一些过于小的碎片对于游戏模拟是没有意义的,可以让他们在一定条件下自行消失。
3.深度(Depth):相当于破碎时的层级,一般物体的不分破坏、复杂的支撑结构都需要借助多深度来实现。
一、启用破碎插件,在设置/插件,中搜索 Destruct,选择 Apex Destruction,启用,并重新启动项目。
二、该插件可以针对所有的静态网格物体进行创建可破碎网格体,选择一个静态网格体,右键选择创建可破坏网格体。示例为玻璃
滑动爆炸当量 用来看物体破碎飞溅效果。
细节面板参数:
Damage:
(常用) Damage Threshold:产生损伤的阈值,超过该值造成破裂。
(常用) Damage Spread:伤害扩散速度,伤害在物体上传递的速度,伤害在一定范围内产生作用,距离伤害产生点距离为0地方将受到所有伤害,而达到DamageRadio的距离,伤害逐渐衰减为0。
(常用) Enable Impact Damage:开启碰撞伤害,该参数控制物体如果与其他物体发生碰撞的时候会接收到伤害,
Impact Damage:碰撞时接受伤害的指数,对物体造成伤害的还有冲击力,该参数控制物体受到的伤害=该参数与冲击力的乘积。
Default Impact Damage Depth:碰撞伤害产生的破坏深度
Custom Impact Resistance:自定义冲击阻力
Impact Resistance:设置自定义冲击阻力,数值越低该物体对 碰撞过来 的物体产生的阻力越小,碰撞体更容易穿过该物体。
Damage Cap:承受伤害最大上限,用来避免冲击力破碎时产生的效果过大。
Impact Velocity Threshold:在物体重叠生成时,物理引擎会检测到物体之间巨大的碰撞力,就会造成破裂效果,但是实际上两个物体的相对速度是很低的,通过设定该值就是为了屏蔽两个物体速度小于该值时产生的碰撞伤害的发生。
Max Chunk Speed:当此值大于0时,碎片的运行速度将会以此为上线。
Fracture Impulse Scale:定义物品破碎石碎片在法线方向的受力比例,这个力将会把碎片推离。
Debris:
注意:需要开启碎屑选项,在Hierarchy Depth中的Enable Depth 并且碎屑的深度不能为-1 ,并且Flags面板下选择对应效果开启。
(常用) Debris Lifetime Min:碎屑最短生命周期,当碎屑达到生命周期时将会被系统删除。
(常用) Debris Lifetime Max:碎屑最长生命周期。
Debris Max Separation Min:碎屑消亡距离最小值,当碎屑达到消亡距离时将会被系统删除。
Debris Max Separation Max:碎屑消亡距离最大值。
每一个单独的碎屑的声明周期和消亡距离都在对应的最小值和最大值之间。
ValidBounds[min,max]
规定一个范围,当碎屑离开这个范围时将被删除
Flags:
(常用)Accumulate Damage:累积伤害,物体记录受到的伤害,当累积的伤害总值超过 Damage Threshold 设定的 伤害值 时,物体就会破碎。
Asset Defined Support:开启使用时,标记为Is Suppor Chunk 的块将会有支撑效果。
World Support:开启时,标记为Is Suppor Chunk 的块与世界接触的部分将会获得支撑。
(常用) Debris Time Out:启用碎屑超时设定,启用后碎屑将会在到达生命周期时被删除。
Debris Max Separation:启用碎屑消亡距离设定,去用后碎屑将会在到达消亡距离时被删除。
Crumble Smallest Chunks:开启后,系统会对最小的碎片进行瓦解。如果设置有对应的粒子系统则会使用粒子效果,如果没有设置则直接清除该碎片。
Accurate Raycasts:使用射线检测所有对物体发生碰撞的碎片进行搜索,主要用于物体的实际形状和碰撞形态相差比较大的情况下,对破碎点和法线方向进行精度修正。
Use Valid Bounds:启用碎片的有效范围,当碎片超出这个范围时,将会被删除。
Form Extended Structures:对于多个静态的可破坏物体,如果同时都有设置这个参数,将会互相产生支撑作用。
Hierarchy Depth:
Support Depth:支撑深度,高于这个深度的碎片将会拥有非常惊喜的支撑效果,而低于这个深度的碎片将不会拥有支撑效果,这个设定将会增进运算的复杂度。
Minimum Fracture Dpth:低于这个深度的碎片不会被破坏,这样能实现更好的支撑效果,当这个值大于最大破碎深度时,物体将不会破碎。
(常用) Enable Debis:开启碎屑,一些破碎深度很深,也就是很碎的碎片将被视为碎屑。
Debirs Depth:碎片被认定为碎屑的深度。
Essential LOD Depth:只有高于这个深度的碎片才会被视为"重要"的,默认为0表示破碎深度为0,即破碎前的物体。
Depth Parameters:一个存储EImpactDamageOverride类型的数组,数组序列对应破碎深度,可以用于对碰撞破碎的伤害传递进行重载。
Effects:
Fracture Effects[]:特效设置,每一个元素的Index都对应相应的破碎深度,可以设置粒子效果及声音。
破裂设置中:
Voronoi:
Cell Site Count:破碎成多少块。
Genetal:
Random Seed:破碎随机程度。
3.设置完成后点击 破裂网格体。
4.在使用中,要破坏一个物体就必须通过蓝图产生伤害或者在设置中设定碰撞伤害,使用节点Apply Damage 、 Apply Radius Damage,如果在蓝图中搜索没有对应的节点,将情景关联选项勾选去掉。
示例1:物理碰撞开启
运行后,只要物体存在物理碰撞,并且碰撞的伤害值大于设定的Damage Threshold 值 物体就会破碎
示例2:蓝图产生伤害控制物体破碎
我是在关卡蓝图中进行编辑。
1.将破碎物体拖拽至场景并且将引用添加至蓝图中
Apply Radius Damage:
目标:破碎物
Base Damage:产生伤害时的伤害值
Hurt Origin:伤害产生点
Damage Radius:伤害范围
Impulse Strength :冲击力,此值会影响破碎飞溅效果。
因为开启了累积伤害,可以持续按键看效果,物体会逐渐破碎。如果没有开启累积伤害物体不会破碎。
2.增大冲击力增大伤害
3.自由落体也可以造成破碎效果(开启破碎碰撞)。
注意:如果场景中有多个物体破碎,破碎个数大于2000就会造成前面破碎的物体消失。我将一个立方体破碎个数更改为500,使用6个立方体来进行自由落体产生破碎。
效果
正常存在的
消失的:
深度影响:
单纯增加Support Depth:支撑深度,就会存在不完全破碎效果
增加 Minimum Fracture Dpth 深度效果: