unreal切割物体_unreal uscenecomponent 移动物体 - CSDN
  • Unreal Engine 4 动态切割模型实现《合金装备:复仇》里面,有一个很有趣的设定,游戏里大部分的场景和物件都可以用主角的刀动态切割。 UE4中的ProceduralMeshComponent这个组件可以很容易的就实现这种功能,下面...

    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,使用模型的材质来贴补缝合的面。
    具体效果如下:
    这里写图片描述

    展开全文
  • ue4 用武器切割物体.

    2019-07-01 16:37:25
    切割物体嘛,所以这里我们需要一把武器和人物的武器攻击动画 武器我们可以从官方商城的免费资源获得: 人物攻击动画我们可以从下面这个网站获得,这里面有各种人物动画和模型,完全免费,业界良心啊,就是可能...

    我们这里使用UE4自带的第三人称的模板开始我们的游戏。

    切割物体嘛,所以这里我们需要一把武器和人物的武器攻击动画

    武器我们可以从官方商城的免费资源获得:

     

    人物攻击动画我们可以从下面这个网站获得,这里面有各种人物动画和模型,完全免费,业界良心啊,就是可能网站比较卡:

    https://www.mixamo.com

    随便找一个你喜欢的攻击动画,下载下来,这里我选这个: Sword And Shield Slash on ely_k_atienza

    然后将动画重定向到官方人物身上(关于如何重定向动画可以看这里:https://www.youtube.com/watch?v=xy9aLbZLdeA&list=PLfWCacrXuIS-EZGldfemhkkfQwPFhAYXd&index=3 附送免费chrome vpn插件: https://www.windmillvpn.net/

     

    首先我们设置人物:

     

    打开官方人物的骨骼,然后预览我们的攻击动画。在手部骨骼上加入武器槽位和我们需要预览的武器,调整武器位置直到动画表现良好为止。

    之后我们需要在我们的攻击动画中,加入真正攻击开始与结束的通知,同时可以修改动画为根节点动画,防止播放动画时,还能移动:

    然后使用攻击动画创建动画蒙太奇

     

    修改ThridPersonCharacter蓝图,给人物加入武器:

    需要修改武器的碰撞属性,将碰撞预设值设置为OverlapAll,也建议将骨架网格体的碰撞也设置为OverlapAll,防止肢体对物理模拟物体碰撞导致物体突然飞了。。。

     

    修改项目中的输入绑定,添加攻击绑定按键:

    然后在ThridPersonCharacter蓝图中,加入攻击按键的响应:播放攻击动画蒙太奇,并在完成和被打断时,设置isAttacking变量为false,并清空已重叠过的切割组件。

    同时修改ThirdPerson_AnimBP 中的动画图标,加入播放蒙太奇的插槽:

    做完上面的一系列操作,我们就可以看到按攻击键是,播放攻击动画的效果了。

     

     

    然后我们需要设置进行切割的物体:

    切割物体,我们需要用到一个组件:ProceduralMesh(也即是程序化的网格体生成组件),该组件可以让我们根据需要自己生成需要的网格体。其中有一个便捷的方法就是可以对当前程序化生成的网格体进行切分操作

    我们创建一个派生自Actor的蓝图,随便起个名字,这里我就用SplitActor表示,然后添加一个ProceduralMesh组件作为根组件

    这里我们需要一个StaticMeshComponent用来生成ProceduralMesh用的,生成完以后就不再需要了。

    我们可以在构建脚本中设置如下:

     

    然后我们设置ProceduralMesh开启物理模拟,同时将Use Complex as Simple Collision设置为false(因为当设置为true时,物理模拟不会生效,具体请看 http://api.unrealengine.com/CHN/Engine/Physics/SimpleVsComplex/index.html)。

    ProceduralMesh只接收碰撞凸包,不接受盒体,胶囊体,球体简化碰撞,所以我们需要检查一下用来切割的mesh的碰撞信息,如果Convex Elements是空的,表示没有设置凸包碰撞,同时如果需要在游戏运行中切割网格体,则需要将网格体的 Allow CPUAccess 设置为true

    然后我们设置武器攻击时对物体进行切割的一些设置:

    在ThirdPersonCharacter 中,添加武器的BeginOverlap函数,为了表现切割效果,加入了一定的冲力:

    其中最主要的就是用到了下面这个函数

    如果CreateOtherHalf不是true,那么只会生成一半网格体,而不是切割成两部分。

    Cap Option控制切割面的生成信息。分别是没有切割面,用cap Material 材质生成切割面,和使用原有材质生成切割面。

     

    基本是执行完上面的设置,差不多就可以看到切割物体的效果了

     

    展开全文
  • ...这篇博客介绍了如何使用UE4.13的ProceduralMeshComponent来实现...在游戏潜龙谍影崛起:复仇 中,主角可以针对场景中的大部分物体进行实时切割。在游戏中,玩家需要指定一个切割平面,在主角挥刀后,对应的

    http://blog.csdn.net/noahzuo/article/details/52757153


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


    背景说明

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

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

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

    前置准备工作

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

    AllowCPUAccess

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

    CreateMesh

    模型切割

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

    Slicing 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时自定义的材质

    效果如下: 
    Slicing

    原理分析

    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分开一些,否则有可能因为相互的摩擦而影响表现。

    展开全文
  • ProceduralMesh切割教程 这篇教程会介绍一下如何使用Slice Procedural Mesh这个蓝图的使用,是使用ProceduralMesh这个组件。 效果就是能够切割这个组件的静态模型。 先看一下效果图: 这里讲一下,不是切...

    ProceduralMesh切割教程

    这篇教程会介绍一下如何使用Slice Procedural Mesh这个蓝图的使用,是使用ProceduralMesh这个组件。

    效果就是能够切割这个组件的静态模型。

    先看一下效果图:

    1

    2

    3

    这里讲一下,不是切人物,是切静态模型,由于蓝图限制,这只是一个障眼法!

    1. 创建一个第三人称模板(这里就不截图了)
    2. 创建蓝图,添加如图的三个组件,ProceduralMesh是用于切割的组件,SkeletalMesh是人物,骗人用的,StaticMesh是静态模型,要在构造函数内将模型赋值给ProceduralMesh,因为这个切割组件不能直接添加模型(这个组件还有别的用法)。

    蓝图

    3.构造函数,这里我后来想了一下,人物和切割组件没必要放在一起,只要将切割组件拉远,不被切割刀碰到,被切割时替换过来就好,叠在一起会出一些问题,这里暂时不修改了。

    构造

    4.创建静态模型,人物要有一个静态模型被切割,所以要创建一下静态模型,选择一个动画,放到喜欢的动作,点击MakeStaticMesh,就能得到一个静态模型了。

    创建静态模型

    5.在得到的静态模型中的Details中搜索CPU,把这个选项打上勾。

    cpu

    6.在蓝图中选择切割组件,右边的Details取消勾选Use Complex as Simple Collision

    取消勾选

    7.首次切割函数,这里就是获取切割的位置和切割的方向,切完之后要生成另外一半,并且添加一些位移,之后模拟物理,记得删除人物的模型。

    切割1

    切割2

    8.在第三人称人物的蓝图内添加一个Plane,并添加一个方向。

    Plane

    9.在Plane上添加触发器,具体如图。
    人物切割
    完成以上操作就能对人物第一次切割了,之后人物就不能动了,因为已经被删除了,但是之后还可以对切割后的物体继续切割,主要也是用Slice蓝图,只不过要动态获取到Procedural Mesh这个属性。

    如果有疑问,欢迎提问补充!

    2019/5/28 11:27:36

    参考:

    1. http://www.v5xy.com/?p=604
    2. https://www.bilibili.com/video/av38403646?from=search&seid=6630578326368647217
    展开全文
  • UE4中删除多个子物体 clear children
  • 第一步:首先找到要隐藏的物体贴图 第二部:新建一个材质 双击打开。 按数字1并同时点击鼠标右键会出现0节点 最后连接,把贴图添加到要隐藏的位置点。 ...
  • 虽然有人建议UE4使用C++创建VR项目,能避免一些坑爹的错误,但是我用C++创建,竟然问题更多,还存在创建不了的情况,也不知道是不是我的操作问题,快疯了。 于是我还是选择了蓝图创建VR项目,但是... ...
  • 这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们: alk3ovation, Allegorithmic (Allegorithmic), Alwin Tom (alwintom), ...
  • UE4实现向鼠标点击处发射射线
  • 转载:https://www.tomlooman.com/the-many-uses-of-custom-depth-in-unreal-4/ 随着物理渲染系统的发布,虚幻引擎4同时引进了一个新的深度缓存功能,它叫作“自定义深度”,可以用于诸如编辑器里的选择...
  • <div class="mw-indicators mw-body-content"> 中文 光照的常见问题和解决 From Epic Wiki <div id="jump-to-nav" class="mw-jump">... Jump to: .....
  • 解决地图过大时物体旋转时抖动问题 在大地图中物体旋转抖动是因为物体距离世界原点过远,因为float精度不足造成角度计算误差,因此需要把世界原点设置到摄像机附近或者跟随移动。 ...
  • 和 mask 裁剪图片说拜拜,用上高性能的 shader 。文章底部获取完整代码!效果预览:使用方法:创建一个空节点添加用户脚本组件mesh-texture-mask添加图片添加修改多...
  • UE4 Lightmass 全局光照

    2019-07-27 21:02:49
    Unreal Engine 4.9 照亮环境 SHARE: 本页面的内容: 静态灯光和固定灯光的特性 仅对固定光照起效的特性 仅对静态光照起效的特性 使用 Lightmass 来...
  • 使用UE4 C++开发游戏

    2020-07-17 17:52:51
    这本书详细描述了使用C++在UE4中开发的方方面面,是不错的入门书籍
  • 简介 此词汇索引表源自《游戏引擎架构》的中英索引,支持搜寻及排序,以方便读者查阅。遇到游戏相关的术语也可利用本表查找其中英翻译。欢迎提供意见反馈。 中英双语索引表 Search: 英文 ...5
  • MY BLOG DIRECTORY: YivanLee:专题概述及目录 INTRODUCTION: 我们有时候需要对模型的数据进行重建来完成一些需求,比如在模型上挖洞,做瓶子中的水,在模型面数很低的情况下对模型的结构进行改变,这时...
  • android游戏地图编辑器

    2013-12-17 23:05:57
    概念 地图编辑器读取和使用游戏资源,并按照游戏程序规约输出相应格式的地图...地图资源管理包括地图物体编辑、地图物体属性设置和资源数据输出。这里的地图物体是指用于表示地表、树木、房屋、精灵等摆放在游戏地
  • 坚持 成长 每日一篇项目源码http://download.csdn.net/detail/u014410695/9173379这里只对源码进行记录,不对项目过程进行分析FireFruit.cs功能介绍:从左右发射水果,给每一个水果设置初始速度using UnityEngine;...
  • 像素化是将平面上的2D图像转化为一个个小正方形,与此类似,RecastNavigation的体素话过程是把空间几何体转换为一个个小正方体的组合(与游戏:我的世界相似) 体素化过程如下: 一.... 对于任何一个在欧几里得坐标系...
1 2 3 4 5
收藏数 89
精华内容 35
关键字:

unreal切割物体