Unreal Engine 4.26/4.27版本Water插件浮力系统失效问题咨询
Unreal Engine 4 Water插件浮力失效问题解决方案
4.27版本官方BP_BuoyancyExample沉底问题修复
该问题为4.27版本Water插件的已知配置错误,不是逻辑Bug,按以下步骤修复即可:
- 打开场景中放置的
BP_BuoyancyExample实例,找到组件列表里的UBuoyancyComponent - 检查组件的碰撞预设,确认
Water碰撞通道的查询响应设置为允许 - 进入Buoyancy Data配置块调整参数:
- 勾选
bAutoCalculateWakePoints,若手动配置采样点,需保证采样点均匀分布在网格体上下层,不能全部集中在底部 - 将
BuoyancyCoefficient参数调整到2.5以上,4.27版本官方示例默认将该参数错误设置为0.1,是浮力失效的核心原因 - 勾选
bApplyDragForcesInWater,手动将WaterBodyComponent字段绑定到场景中的海平面WaterBody实例,避免自动绑定失效
- 勾选
- 若调整后仍无效,打开项目设置->物理->物理引擎,将
FluidFriction参数调整到0.8,关闭项目后删除Saved和Intermediate文件夹重新编译即可 - C++项目可在初始化
UBuoyancyComponent时手动调用SetWaterBodyComponent()绑定场景水体,彻底避免自动绑定失效问题
4.26版本自定义浮力蓝图仅EditorCube可上浮问题修复
该问题核心为自定义静态网格体缺少浮力计算所需的简化碰撞配置,EditorCube为引擎自带预设碰撞资源,因此可正常计算浮力:
- 打开用于浮力对象的自定义静态网格体资源,进入编辑界面
- 切换到碰撞选项卡,点击创建简单碰撞,生成的碰撞盒必须完全包裹网格体,不能存在大面积镂空
- 进入细节面板->物理->Body Setup,勾选
GenerateWeldedCollision,同时设置Mass为合理值:等效密度不要超过100kg/立方米,例如1立方米的立方体质量设置为80kg即可正常上浮 - 回到自定义浮力蓝图,勾选
UBuoyancyComponent的bUseStaticMeshForBounds参数,让浮力模块自动读取静态网格体的碰撞体积计算浮力 - 注意:不要使用复杂网格体的复杂碰撞作为浮力计算的碰撞源,必须使用简化碰撞盒/胶囊体,否则浮力模块会判定体积为0导致对象下沉
内容的提问来源于stack exchange,提问作者weirdgyn
相关产品推荐
相关产品推荐

