ue4 用武器切割物体.

2 篇文章 0 订阅

我们这里使用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 材质生成切割面,和使用原有材质生成切割面。

 

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

 

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值