快捷导航
网站首页
疑难问答
Foreign
手游源码
端游源码
页游源码
手游单机
开启辅助访问
登录
or
注册
永久会员提供整站资源下载
游戏源码
»
源码论坛 BBS
›
游戏引擎
›
游戏引擎资源/文档
›
虚幻4官网翻译文档
›
Collision 模块
返回列表
查看:
279
|
回复:
0
[引擎的各个功能]
Collision 模块
[复制链接]
admin
admin
当前离线
积分
75866
1
主题
342
帖子
7万
积分
管理员
积分
75866
发消息
发表于 2017-4-8 06:52:01
|
显示全部楼层
|
阅读模式
Collision 模块
Unreal Engine 4.9
本页面的内容:
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
停止碰撞检测,但保持更新。这可能会导致粒子
下坠并穿过
复制代码
对象。
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。
Framerate 部分打开后,将 Min Desired Frame Rate 设为低于 30 FPS 的数值(如 25 FPS)。
然后在粒子特效 Collision 模块的 Performance 部分下取消勾选 Drop Detail 选项。
完成 Min Desired Frame Rate 的变更和 Drop Detail 框的取消勾选后,
在 iOS 移动设备端重新搭建或重新部署项目,确认粒子碰撞功能正常。
完整内容索引
2004-2017, Epic Games, Inc. 版权所有。Unreal 及相关的商标是 Epic 在美国和其他国家的注册商标。
使用条款 | 隐私政策
回复
使用道具
举报
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
enginedx注册
本版积分规则
发表回复
回帖后跳转到最后一页
邮件留言:
游戏源码
返回顶部