虚幻引擎 抓取对象并移动它们(念力控制)

接上集!

角色动画

跳跃优化

在这时我们发现这跳跃有bug,在我们疯狂按下跳跃键时,人物还进行这跳跃的动作,这显然不符合实际情况,所以我们要优化一下

创建变量

在角色蓝图中,创建一个布尔变量Is jump(是否可以跳跃)用来判断角色的跳跃

ctrl加鼠标左键拖动变量,在操作界面上B键加鼠标左键可以快捷键创建蓝图节点branch(分支),将Is Jump连接分支

注意一开始我们是能够跳跃的,所以设置变量,默认值打钩

判断的设置

我们在按下跳跃键的时候,就不能跳跃了。在跳跃的结束时,变量的默认值设置为打钩(能够跳跃),按住alt加鼠标左键快速拖动变量,快捷设置变量

因为现在不想史莱姆二段跳,所以这里有个简单的方法,使用delay(延迟)节点

主角特殊能力

控制物体

检测物品

主要使用通道检测完成此能力,使用按键E来测试,拉出相机组件,获取相机的(get world location)世界位置节点,添加(get world rotation)世界旋转节点后拉出(get forward vector)获取向前向量

之后用获取向前向量节点拉出*(乘)节点,之后右键向量替换引脚改为浮点(单精度)

乘以一个500之后,拉出,添加节点+(加),用世界位置加上乘出来的数,最后连接上End。Start是从哪里开始,End是从哪里结束

优化检测物品

在检测节点后Return Value(返回的值)后连上一个分支节点,判断物品是否为一个,如果是接着下方操作

命中的物品

在检测节点的Out hit后我们拉出,可以看要一个中断命中结果节点的分支节点,这个节点的作用是,更方便看我们使用的哪个actor类型

核心操作

在角色的组件中添加PhysicsHandle(物理柄组件),这是控制物品的关键组件

使用ctrl键将PhysicsHandle组件拖进蓝图界面,拉出组件Grab component at location with rotation(在位置抓取带旋转的组件),在中断命中结果节点,获取Hit Component的世界位置连上Grab component at location with rotation(在位置抓取带旋转的组件)的Location(位置)上

设置抓取对象

创建布尔变量Is_Grab_object?(是否能抓取对象),并在末尾出设置变量为Ture(打钩)

松手物品

我们在E键节点的Released(取消释放)使用分支节点,判断能否抓取物品,如果能就可以用PhysicsHandle组件使用释放组件节点,在后方设置变量为False(不打钩)

移动物品

要想移动物品首先,要逐帧设置物体的位置,所以使用事件Tick(Event tick)节点,用布尔变量Is_Grab_object判断物品是否在控制中,在使用组件中的设置目标位置,New Location(更新的位置)连接的就是上方连接End的节点

提醒

设置主角能控制多远的物品,就是乘多少,数值越大越远

设置主角控制物品的距离,与上方一样

物体的物理特性必须得要开启模拟物理

并且在碰撞设置中碰撞预设要设置成物理Actor

成品欣赏

好玩的点:将物品放在角色的下方,我们就能够随着物品实现上天操作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值