打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unreal Engine 4

这篇博客介绍了如何使用UE4.13的ProceduralMeshComponent来实现针对一个模型的实时切割。


背景说明

在游戏潜龙谍影崛起:复仇 中,主角可以针对场景中的大部分物体进行实时切割。在游戏中,玩家需要指定一个切割平面,在主角挥刀后,对应的物体便可以根据这个平面进行切割。

在UE4中可以使用Apex Destruction来实现物体的破碎效果,但由于该破碎效果是离线生成的,换句话说一个DM只能够有一种破碎效果,因此无法达成实时切割的效果。

在UE4.13中,Epic加入了ProceduralMeshComopnent插件,使用这个插件可以进行针对于模型的实时切割操作。

前置准备工作

首先准备好需要进行切割的模型,我这里使用的是UE4示例中的人头模型。值得一提的是,由于要达成实时切割的目的,因此需要启用StaticMesh中的AllowCPUAccess属性。

新建ActorBP,添加Procedural Mesh Component,调用CopyProceduralMeshfromStaticMeshComopnent方法来生成一个Procedural Mesh Component.

模型切割

ProceduralMeshComponentSlice Procedural Mesh函数,这个函数可以将Procedural Mesh进行切割,并且生成另外的一半模型块。

参数介绍:

  • Plane Position: 世界坐标系下该平面的中心位置
  • Plane Normal: 世界坐标系下该平面的发现
  • Create Other Half: 是否将切下来的那一块模型独立出来
  • Cap Option: 切面状态 
    • No Cap: 切面不缝合,模型中空
    • Create New Section for Cap: 切面缝合,使用自定义的材质
    • Use Last Section for Cap: 切面缝合,使用与模型一样的材质
  • Cap Material: 如果Cap OptionCreate New Section for Cap时自定义的材质

效果如下: 

原理分析

UKismetProceduralMeshLibrary::SliceProceduralMesh()函数中,可以看到它实现的方法如下:

SliceProceduralMesh(plane) 
1. create two maps of base vert index to vert index m1,m2 
2. for each vertice{v} 
3.     if (vertice on the positive side of the plane) 
4.         m1vertice 
5.     else 
6.         m2vertice 
7. create two sections s1,s2 
8. for each face{(v1,v2,v3)} 
9.     if (v1,v2,v3on the positive side of the plane ) 
10.         s1v1,v2,v3 
11.     if (v1,v2,v3on the negative side of the plane ) 
12.         s2v1,v2,v3 
13.     else 
14.         s1 positive vertices 
15.         s2 negative vertices 
16.         find clipped verticesvclip1,vclip2,vclip3,vclip4 
17.         triangulate the clipped polygon 
18. create cap geometry for s1,s2 
19. create collision convex shape for s1,s2

简单来说,就是遍历所有的面和点,找到切割平面正向和负向的点,并且补好三角面即可。

运用以及注意事项

  1. 被切割的模型面数不宜太高,一方面是效率考虑,另一方面是切面的表现会有些奇怪。
  2. 被切割的模型的拓扑结构不宜太复杂,否则碰撞体的构建容易表现的很怪异。
  3. 实际运用的时候,可以考虑在切面处生成一个力场将两个section分开一些,否则有可能因为相互的摩擦而影响表现。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学习人体解剖学不可不熟知:人体的轴和面
unity 溶解贴花编辑器
11
最新BSCI-CAP整改问题上传系统中英对照教程
Photos: how a plane gets maintained
人体的方位、轴和断面图示
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服