Unreal Engine 4 动态切割模型实现

Posted shangguanwaner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unreal Engine 4 动态切割模型实现相关的知识,希望对你有一定的参考价值。

Unreal Engine 4 动态切割模型实现

《合金装备:复仇》里面,有一个很有趣的设定,游戏里大部分的场景和物件都可以用主角的刀动态切割。
UE4中的ProceduralMeshComponent这个组件可以很容易的就实现这种功能,下面介绍下实现的方法。

准备模型

首先我们准备一个模型。
准备一个模型

我做了一个简单的圆柱体,用来测试。注意需要切割的地方,为了保证细节,多放点顶点。
为了能够动态切割,我们要勾选这个模型的Allow CPUAccess选项。
勾选AllowCPU Access

新建蓝图

新建一个Actor蓝图,为它添加两个组件,一个是StaticMeshComponent,一个是ProceduralMeshComponent,在Construct Script中,将StaticMesh的模型数据拷贝到ProceduralMesh中去。
拷贝模型数据

调整ProceduralMesh参数

出于优化的目的,ProceduralMeshComponent默认勾选了UseComplexAs SimpleCollision这个属性,为了实现我们切割下来的能正常的进行物理模拟,需要把这个属性给取消勾选。
这里写图片描述

实现切割

这里写图片描述
SliceProceduralMesh实现模型的切割。说下几个参数:
* PlanePosition是切割平面的位置
* PlaneNormal 是切割平面的法线,也就是朝向
* Create Other Half 切割下来的部分,是否创建新的ProceduralMesh
* Cap Option No Cap,切面不缝合,Create New Section For Cap; 缝合,使用自定义的材质来贴补缝合的面; Use Last Section for Cap,使用模型的材质来贴补缝合的面。
具体效果如下:
这里写图片描述

以上是关于Unreal Engine 4 动态切割模型实现的主要内容,如果未能解决你的问题,请参考以下文章

Unreal Engine 4 Based Materials

虚幻引擎(Unreal Engine)4.13 版正式发布

[图形学] Real Shading in Unreal Engine 4

Unreal Engine 4 —— 异步加载关卡的实现方法及思考

Unreal Engine 4 基于Kajiya-Kay的材质迭代

Unreal Engine 4 Tips