查看: 591|回复: 10

[引擎各个功能] 【Collision 模块 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-25 13:32:07 | 显示全部楼层 |阅读模式


本页面的内容:

      
Collision 模块
Collision
iOS 移动设备上的粒子碰撞
     Collision 模块
这些模块处理粒子与其他 actor 之间的碰撞。

Collision
使发射器处理粒子碰撞的参数。它包含下列属性:


属性
描述


Collision
Damping Factor确定碰撞后粒子“减慢”程度的矢量 distribution。基于粒子生成的 EmitterTime 获取该数值,并将其保存在粒子中。Damping Factor Rotation确定碰撞后粒子旋转“减慢”程度的矢量 distribution。基于粒子生成的 EmitterTime 获取该数值,并将其保存在粒子中。Max Collisions确定一个粒子所拥有最大碰撞数的浮点 distribution。基于粒子生成的 EmitterTime 获取该数值。Collision Completion Option此列举说明达到最大碰撞数后粒子将出现的情况。其可为下列之一:

选项
描述

EPCC_Kill达到 MaxCollisions 时销毁粒子。(这是默认行为。)EPCC_Freeze就地冻结粒子。EPCC_HaltCollisions停止碰撞检测,但保持更新。这可能会导致粒子 下坠并穿过</code> 对象。EPCC_FreezeTranslation停止粒子平移,但保持其他所有更新。EPCC_FreeRotation停止粒子旋转,但保持其他所有更新。EPCC_FreeMovement停止粒子平移/旋转,但保持其他所有更新。Apply Physics确定粒子和碰撞对象之间是否应用物理的布尔值。
当前情况为单向:粒子到对象。粒子本身并未应用物理 - 它只会产生一个应用于碰撞对象上的冲量。
Particle Mass确定粒子质量的浮点 distribution - 在 bApplyPhysics 为 true 时使用。基于粒子生成的 EmitterTime 获取该数值。Dir Scalar一个浮点值,用于调整粒子边界,防止出现相互穿插或较大间隙。Pawns Do Not Decrement Count如为 true,与 Pawns 之间的碰撞仍将存在效果,但不计入 MaxCollisions 的次数。这将使粒子在碰撞后从 pawn 上弹开,而不会停留在空中。Only Vertical Normals Decrement Count如为 true,无垂直碰撞法线的碰撞仍存在效果,但不计入 MaxCollisions 的次数。这将使粒子在碰撞后从墙上弹开,落到地上。Vertical Fudge Factor用于确定垂直与否的浮点值。真正垂直的条件是 Hit.Normal.Z == 1.0f。这将使 [1.0-VerticalFudgeFactor..1.0] 范围内的 Z 组件被算作垂直碰撞。Delay Amount粒子碰撞检查的延迟量。利用 EmitterTime 获取该数值。在更新中,粒子标记 IgnoreCollisions 将被设置,直至粒子 RelativeTime 超过 Delay Amount。
Performance
Drop Detail如为 true,且 WorldSettings 的 Drop Detail 属性也为 true,模块将被无视。Collide Only if Visible如为 true,只有粒子系统被渲染的情况下才会产生碰撞。Max Collision Distance粒子碰撞产生的最大距离。
Collision 模块将为粒子荷载数据添加两个矢量(UsedDampingFactor 和 UsedDampingFactorRotation)以及一个整数(UsedMaxCollisions)。这些值用于跟踪每个粒子的碰撞信息。

以下伪代码解释了碰撞粒子的更新过程。
确定粒子的位置。这为必备条件,因为在更新调用之前将不会计算实际位置。在线检测中确定所用的适当范围。if (SingleLineCheck indicates collision){    if (UsedMaxCollisions--  0)  // Still collisions available    {
Adjust the velocity and rotation based on the collision
if (Applying physics)
{
     Add an appropriate impulse to the hit object.
     (The Mass is grabbed from the distribution relative to the

  particle time.)
}    }    else    {
Out of collisions for this particle
Perform the appropriate action to take based on the CollisionCompletionOption    }}
iOS 移动设备上的粒子碰撞
结合 VFX 使用 iOS 移动设备端的 Particle Collision 模块时,需将 Min Desired Frame Rate 调至 30 FPS 以下。否则,粒子和世界场景中的对象无法产生碰撞的可能性较大。 因为一旦虚幻引擎 4(UE4)项目的帧率低于 30 FPS,UE4 将禁用粒子碰撞,以保证帧率高于 30 FPS。iOS 项目默认锁定 30 FPS,意味着粒子碰撞从开始便会被禁用。 为避免这种情况在您的 UE4 iOS 项目中发生,您需要前往 Project Settings > General Settings > Framerate。

【虚幻4翻译文档-Collision 模块 | Unreal Engine】[虚幻4中文文档]

【虚幻4翻译文档-Collision 模块 | Unreal Engine】[虚幻4中文文档]


Framerate 部分打开后,将 Min Desired Frame Rate 设为低于 30 FPS 的数值(如 25 FPS)。然后在粒子特效 Collision 模块的 Performance 部分下取消勾选 Drop Detail 选项。




完成 Min Desired Frame Rate 的变更和 Drop Detail 框的取消勾选后, 在 iOS 移动设备端重新搭建或重新部署项目,确认粒子碰撞功能正常。
回复

使用道具 举报

0

主题

856

帖子

2824

积分

vip会员

Rank: 1

积分
2824
发表于 2016-7-2 18:40:24 来自手机 | 显示全部楼层
资源都让你发了。
回复 支持 反对

使用道具 举报

0

主题

880

帖子

2936

积分

vip会员

Rank: 1

积分
2936
发表于 2016-7-3 15:04:09 来自手机 | 显示全部楼层
搬运工 辛苦了
回复 支持 反对

使用道具 举报

0

主题

870

帖子

2871

积分

vip会员

Rank: 1

积分
2871
发表于 2016-7-4 06:13:44 来自手机 | 显示全部楼层
大水比一个,路过支持一下
回复 支持 反对

使用道具 举报

0

主题

824

帖子

2714

积分

vip会员

Rank: 1

积分
2714
发表于 2016-7-4 17:15:05 来自手机 | 显示全部楼层
看看有近期需要的
回复 支持 反对

使用道具 举报

0

主题

897

帖子

2951

积分

vip会员

Rank: 1

积分
2951
发表于 2016-7-10 17:43:09 来自手机 | 显示全部楼层
看看这个好不好啊
回复 支持 反对

使用道具 举报

0

主题

877

帖子

2891

积分

vip会员

Rank: 1

积分
2891
发表于 2016-7-16 16:57:11 | 显示全部楼层
我吭哧瘪肚 终于下载下来了,但是不会用- -
回复 支持 反对

使用道具 举报

0

主题

898

帖子

2949

积分

vip会员

Rank: 1

积分
2949
发表于 2016-7-17 01:37:27 来自手机 | 显示全部楼层
我现在有的是钱,我要下了!
回复 支持 反对

使用道具 举报

0

主题

930

帖子

3044

积分

vip会员

Rank: 1

积分
3044
发表于 2016-7-18 23:57:24 来自手机 | 显示全部楼层
下来看看,多谢楼主分享了。
回复 支持 反对

使用道具 举报

0

主题

851

帖子

2784

积分

vip会员

Rank: 1

积分
2784
发表于 2016-7-23 18:11:04 来自手机 | 显示全部楼层
感谢分享,下载看看
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部